Я получил отчет от пользователя Redis, и я не уверен, что ответить, так как я не эксперт в области Linux и его планировщика, однако нам (как проекту Redis) нужно особенно разбираться в подобных проблемах. в будущем, как и в случае с Redis Cluster, у нас будет много экземпляров Redis, запущенных одновременно в одном окне. Поэтому я прошу помощи здесь.
Проблема:
- Ядро: «Linux redis1 2.6.32-305-ec2 # 9-Ubuntu SMP четверг 15 апреля 08:05:38 UTC 2010 x86_64 GNU / Linux»
- много свободной оперативной памяти, никакие другие процессы не выполняют значительных операций ввода-вывода.
- Важно , работает на большом экземпляре EC2, а не на реальном сервере. Я никогда не видел ничего подобного в не виртуализированной среде. Экземпляр EC2 представлял собой: «Экземпляр большой емкости с большим объемом памяти 17,1 ГБ, 6,5 ЭБУ (2 виртуальных ядра по 3,25 вычислительных блока EC2 каждое), 420 ГБ локального хранилища экземпляров, 64-разрядная платформа» .
По сути, после перезапуска большого экземпляра Redis система будет работать так медленно, что вы больше не сможете печатать на оболочке. Когда Redis загружает экземпляр, он использует 100% ЦП (загружает данные максимально быстро) и последовательно читает файл dump.rdb. Ввод / вывод не особенно высок, поскольку загрузка связана с процессором, а не с вводом / выводом.
Почему на самом деле коробка с двумя процессорами и большим количеством оперативной памяти, без перестановок на диске, должна в основном перестать работать с этой рабочей нагрузкой?
У меня сложилось впечатление, что это во многом связано с тем фактом, что это экземпляр EC2, что связано с используемой технологией виртуализации, поскольку я постоянно загружаю наборы данных Redis 24 ГБ в свою коробку без каких-либо проблем (даже с другими экземплярами Redis). работает с высокой нагрузкой).
Спасибо за любую подсказку!
Salvatore
Изменить : добавив некоторые отзывы, которые я получил из твиттера:
от @ezmobius: @antirez первым делом, попробуйте его из / mnt или локальных эфемерных дисков, чтобы увидеть, является ли его EBS ненадежным, 2-й, чтобы убедиться, что это не «штраф за первую запись» (google it), и если это так сначала вам нужно dd 0 на диске.
from @dvirsky: @antirez Я запускаю много экземпляров redis именно на таких узлах ec2. Я заметил некоторое замедление на bgsave, но не это явление.