ant*_*rez 14 linux performance amazon-ec2 redis
我收到了一个 Redis 用户的报告,我不知道该回复什么,因为我不是 Linux 及其调度程序领域的专家,但是我们(作为 Redis 项目)需要特别解决此类问题未来与 Redis Cluster 一样,我们将在一个盒子中同时运行许多 Redis 实例。所以我在这里寻求帮助。
问题:
基本上,一旦您重新启动大型 Redis 实例,系统就会变得很慢,您无法再在 shell 上键入内容。当 Redis 加载一个实例时,它会使用 100% 的 CPU(它以尽可能快的速度加载数据)并顺序读取 dump.rdb 文件。I/O 并不是特别高,因为负载受 CPU 限制,而不是 I/O 限制。
为什么一个有两个 CPU 和大量 RAM 的盒子,磁盘上没有交换的东西,到底为什么应该停止处理这个工作负载?
我的印象是这与它是一个 EC2 实例有很大关系,因此与使用的虚拟化技术有关,因为我一直在我的盒子中加载 Redis 24 GB 数据集而没有任何问题(即使使用其他 Redis 实例)高负载运行)。
感谢您的任何提示!
萨尔瓦多
编辑:添加一些我从 twitter 收到的反馈:
来自@ezmobius:@antirez 首先要做的是从 /mnt 或本地临时驱动器尝试它,看看它的 EBS 片状,第二是确保它不是“第一次写入惩罚”(谷歌它),如果是然后您需要先在磁盘上添加 0。
来自@dvirsky:@antirez 我正在这样的 ec2 节点上运行许多 redis 实例。我注意到 bgsave 的速度有所放缓,但没有注意到这种现象。
小智 4
“top”的输出可能会提供一些线索。左上角附近有一个字段标记为“被盗百分比”,它反映了转移到同一物理盒子上其他来宾的硬件 CPU 数量。当虚拟机管理程序决定将更多 CPU 分配给另一个来宾时,尤其是当我执行一些长时间运行的 CPU 密集型任务时,我已经看到了此类速度减慢的情况。
不确定这是否是您的问题,但值得检查。