Я использую тест для 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