Почему 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

  • не может 'ls' / mnt каталог
  • Как запретить изменять владельца модифицируемых файлов?
  • Описание необычного пути
  • Как я могу создать каталог «черная дыра» / dev / null?
  • любые большие преимущества размера inode? (ext4)
  • Как оценить, стоит ли использовать дедупликацию?
  • Linux - оболочка для контроля доступа к файлу приложения?
  • Создается ли раздел, созданный dd (и кэшем), мгновенно доступный для записи
  • создать «виртуальный каталог» с установленным устройством
  • Какова самая высокопроизводительная файловая система Linux для хранения большого количества небольших файлов (HDD, а не SSD)?
  • Является ли btrfs подходящей резервной файловой системой?
  • Linux и Unix - лучшая ОС в мире.