задержка на posix читает () - PullRequest
3 голосов
/ 11 марта 2011

у нас очень чувствительное к задержке приложение, в том смысле, что скачки задержек при чтениях очень и очень плохие.

Я протестировал XFS и ext4, и запись O_ASYNC в файл, а затем fdatasync () в конце может привести к 1 или более секундам всплесков задержки чтения!

Затем я попытался O_SYNCи я получил гораздо более стабильные задержки чтения, но запись в файл очень медленная.

Итак, я попытался записать O_ASYNC и синхронизировать каждые 5 мегабайт, записанных в файл, и его быстрая и задержка чтения также достаточно стабильны.

Однако через 30 минут я все еще могу получитьпрочитайте, что занимает секунду или больше.

Если вы создавали приложения, чувствительные к задержкам, в Linux, как вы справились с работой с файловой системой или просто не использовали ее вообще и монтировали устройство в качестве устройства RAW?

1 Ответ

0 голосов
/ 16 октября 2011

Файловая система всегда добавляет небольшую задержку, поэтому для действительно чувствительных к задержкам приложений я бы рассмотрел возможность обхода файловой системы с помощью необработанного устройства или открытия файла с помощью O_DIRECT в обход кэшей ОС.

Другие приемы задержки в хранилище SSD:

  • использовать присущий параллелизм в современных твердотельных накопителях при чтении / записи из нескольких потоков. Задержка не уменьшится, но если реальная проблема заключается в IOPS, это помогает.
  • Проверьте выравнивание файловой системы на SSD. Если это сделано неправильно, вы наполовину снижаете производительность и удваиваете время ожидания.
  • Проверьте алгоритмы планирования диска. Планировщик Linux «noop», как правило, лучше всего подходит для хранилищ на основе SSD.
  • Используйте лучшее оборудование SSD, например, Твердотельные накопители на основе PCIe, которые обычно обеспечивают намного меньшую задержку

Это сказало: время чтения с секунды просто не звучит правильно. Либо нагрузка / использование настолько высоки, что аппаратное обеспечение просто не справляется с этим, и лучшее / лучшее оборудование будет лучшим решением, либо что-то еще будет ужасно неправильным.

...