Большой размер ввода-вывода и задержки на SSD во время Elasticsearch OpenIndex

Я провожу тест для Elasticsearch на SSD. Один из сценариев - протестировать OpenIndex размером ~5 ГБ. Это занимает около 1 секунды на индекс (что, как мне кажется, слишком медленно для SSD). При наблюдении за этим с помощью https://github.com/brendangregg/perf-tools/blob/master/iosnoop: мы обнаружили значительное количество больших операций ввода-вывода с высокими задержками, например:

STARTs          ENDs            COMM         PID    TYPE DEV      BLOCK        BYTES     LATms
270762.058155   270762.070424   java         4876   R    8,16     86507520     516096    12.27
270762.058221   270762.071750   java         4876   R    8,16     86508528     516096    13.53
270762.058293   270762.072666   java         4876   R    8,16     86509536     516096    14.37
270762.058353   270762.073593   java         4876   R    8,16     86510544     516096    15.24
270762.058410   270762.074456   java         4876   R    8,16     86511552     516096    16.05
270762.058467   270762.075358   java         4876   R    8,16     86512560     516096    16.89
270762.058525   270762.076251   java         4876   R    8,16     86513568     516096    17.73

но при трассировке с помощью strace сообщаемый максимальный размер составляет всего около 20 КБ, а максимальное время системного вызова составляет всего около 4 мс (что звучит правильно для SSD). Что я здесь пропустил? любой способ предотвратить высокий блок IO (или что может быть причиной этого?)

Дополнительная информация: мы запускаем https://github.com/brendangregg/perf-tools/blob/master/iolatency и также обнаружили, что довольно много операций укладываются в интервал задержки от 16 мс до 64 мс https://pastebin.com/PdJGVm38

0 ответов

Другие вопросы по тегам