我们正在尝试禁用将RAM交换到由AWS的Elasticache管理的Redis实例的磁盘 - 但无法找到合适的属性来执行此操作。
我们也找不到SSH方法并关闭kernerl交换,你能帮忙吗?
答案 0 :(得分:0)
无法通过SSH连接到Elasticache。
您确定您遇到Redis交换到磁盘或主机内存不足而崩溃的问题(我已经看到这种情况发生在默认配置中)?如果是这样,指导意见是将大约25%的系统内存留给主机进程 - http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/redis-memory-management.html
答案 1 :(得分:0)
虽然不能直接回答有关禁用交换的问题,但我们一直在努力与Redis交换Elasticache。我们最终为解决交换做了以下事情:
我们已经使用上面几周了,到目前为止它一直运作良好。再过几周,我们就会知道它有多好,因为我们的默认TTL为30天,缓存项目的数量仍然在增加。
祝你好运!<强>更新强>
我们关闭了在所有键上使用SCAN的作业。我们发现它导致交换缓慢上升(每隔一天大约500k)。一旦我们关闭它,交换就开始萎缩。设置保留内存和我们知道可以过期的刷新对象的组合运行良好。当redis开始耗尽房间时,它会驱逐任何过期的缓存对象,为新条目腾出空间。我们注意到的唯一影响是CPU使用量的小幅增加,这不会造成任何麻烦。
答案 2 :(得分:0)
我有一个类似的问题,即使我们使用Allkeys-LRU算法,AWS中的Elasticache(Redis)突然开始使用交换空间。在过去的几周里,这台机器在消耗整个内存的过程中一直没有使用交换功能,直到一个清晨改变为止。
我使用了命令
redis-cli -h elasticache.service-name memory DOCTOR
输出为->
- 高分配器碎片:此实例的分配器外部碎片大于1.1。这个问题通常是由于 要么到一个大的峰值内存(检查是否有峰值内存条目 报告中的上述内容),或者可能是由导致 分配器使内存碎片很多。您可以尝试启用 “ activedefrag”配置选项。
使用命令检查
redis-cli -h elasticache.service-name memory STATS
我看到碎片整理值很高(1.4)
我查看了AWS控制台上的Elasticache-Redis参数,并将碎片整理设置设为true(因为它设置为false)。