Большой размер ввода-вывода и задержки на SSD во время Elasticsearch OpenIndex - PullRequest
0 голосов
/ 09 февраля 2020

Я использую тест для Elasticsearch на SSD. Одним из сценариев ios является тестирование 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). Я что-то пропустил здесь? любой способ предотвратить высокий блок ввода-вывода (или что может быть причиной этого?)

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

...