Мы запускаем ElasticSearch на нескольких экземплярах Azure D12v2 на Centos7.
При индексировании данных скорость ввода-вывода машин кажется довольно низкой, колеблясь от 3 до 15 МБ в секунду, что явно медленно для SSD-хранилища.
-- Taken from IOTOP --
Total DISK READ : 0.00 B/s | Total DISK WRITE : 3.01 M/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 2.68 M/s
-- Taken from IOTOP --
Total DISK READ : 0.00 B/s | Total DISK WRITE : 6.93 M/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 8.54 M/s
Кто-нибудь, кто использует этот тип виртуальной машины, сталкивается с такой же проблемой? Если да, то как это исправить? Я что-то упустил и эти скорости чтения / записи "нормальный "?
Выполнение тех же тестов на физических машинах с механические приводы был лучший результат.
===== РЕДАКТИРОВАТЬ =====
Я изменил экземпляры на DS12v2, но была достигнута аналогичная производительность (с некоторыми случайными скачками от 30 до 50 МБ / с)
Возможно, вам придется обратиться в службу поддержки Azure. Однако вы также можете проверить, используете ли вы подходящий планировщик. Для такой платформы вы должны использовать планировщик «noop» или «deadline». Чтобы узнать, какой планировщик вы используете, попробуйте следующую команду:
cat /sys/block/sda/queue/scheduler
(Ваш диск может быть не sda, поэтому измените его для своих нужд)
Это выведет несколько параметров планировщика, и в скобках будет тот, который вы сейчас используете. Вы можете временно изменить это, выполнив желаемый планировщик через echo
:
echo noop > /sys/block/sda/queue/scheduler
Вы также можете указать scheduler=noop
в качестве аргумента ядра при загрузке, если его необходимо изменить после тестирования. Это делается путем редактирования /etc/sysconfig/grub.cfg
и добавление scheduler=noop
к аргументам вашего ядра.