Почему Write выглядит приоритетным по сравнению с Read в файловой системе? (или наоборот)

Я проверяю, является ли планировщик ввода / вывода файловой системы linux приоритетом операции записи над операцией чтения. Версия linux – 3.10.0-327.el7.x86_64

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

disk_dir=/mnt/ssd nohup fio --name=${disk_dir}/seqread --ioengine=sync --iodepth=1 --rw=read --bs=4096k --direct=0 --size=10240M --numjobs=1 --runtime=600 --group_reporting & nohup fio --name=${disk_dir}/seqwrite --ioengine=sync --iodepth=1 --rw=write --bs=4096k --direct=0 --size=10240M --numjobs=1 --runtime=600 --group_reporting & 

Я измерил использование полосы пропускания дискового ввода-вывода с помощью dstat и обнаружил, что операции чтения и записи не происходят одновременно.

  Disk Read Write ... |3072k 241M| 13k 4211B| 0 0 |3737 2062 ... |3072k 258M| 13k 4308B| 0 0 |3532 2676 ... |3584k 260M| 16k 4793B| 0 0 |3404 2057 ... |3072k 261M| 13k 4211B| 0 0 |3438 2565 ... ... (After Write operations all finished) ... ... | 449M 40k| 13k 4211B| 0 0 |4752 5130 ... | 449M 42k| 13k 4308B| 0 0 |4973 5861 ... | 428M 0 | 16k 4793B| 0 0 |4630 4990 ... | 382M 0 | 13k 4211B| 0 0 |4306 5206 

Операция «Чтение или запись» ожидает, что еще один будет завершен!

Результаты с разными планировщиками в Linux были одинаковыми.

 noop, deadline: They prioritize Write. cfq: It prioritizes Read. 

Я что-то упускаю? Является ли сам эксперимент неправильным? Может ли кто-нибудь дать мне представление об этом?

благодаря

One Solution collect form web for “Почему Write выглядит приоритетным по сравнению с Read в файловой системе? (или наоборот)”

Планировщики ввода-вывода намного сложнее, чем вы предполагаете. Например, выбор cfq – это только вершина айсберга – есть тонны параметров настройки, см. https://www.kernel.org/doc/Documentation/block/cfq-iosched.txt

Также обратите внимание на то, что вы не используете блок-устройство напрямую, но над некоторой файловой системой выбор fs (и его параметров настройки) также будет фактором.

Так что будьте осторожны, ваш настрой может быть намного хуже в конце.

Но для этого конкретного примера вы можете попробовать установить deadline с помощью write_starved чтобы настроить его на меньшую write_starved написания.

https://www.kernel.org/doc/Documentation/block/deadline-iosched.txt

  • Резервный массив дисков NTFS
  • Безопасно ли использовать GParted при загрузке?
  • Поиск разреженных файлов?
  • Поиск файловой системы
  • файловая система uid и gid в Linux
  • Член группы не может отображать файлы в каталоге, сделанные группой
  • Можно ли разрешить выполнение файлов из cifs mount в bash?
  • Как право собственности на файл влияет на разные системы?
  • Ускорьте резервное копирование в случае, когда раздел имеет много свободного места
  • Почему «ls *» занимает гораздо больше времени, чем «ls»?
  • Можно ли загрузить файл ссылки из веб-каталога?
  • Linux и Unix - лучшая ОС в мире.