Что такое переднее слияние в планировании ввода-вывода и как настроить этот параметр?

Мой Linux использует алгоритм Deadline для планирования ввода-вывода. Одним из параметров является параметр front_merges под /sys/block/sda/queue/iosched/front_merges. По умолчанию установлено значение 1, что означает вероятность фронтального слияния. Можно установить его на 0, чтобы получить прирост производительности, если не ожидается, что произойдет фронтальное слияние.

  1. Что такое фронтальные слияния? Пожалуйста, кто-нибудь может изобразить это?
  2. Как узнать или проверить, происходит ли фронтальное слияние в моей системе или нет?

person Ely    schedule 06.02.2016    source источник


Ответы (1)


Когда, например, вы читаете файл, вы делаете это от начала до конца. Таким образом, выгодно объединять запросы в одни и те же или соседние блоки. Это называется обратным слиянием, потому что новый запрос добавляется в конце существующего. Это всегда включено с планировщиком Крайний срок.

Гораздо реже вы читаете блоки в обратном порядке и добавляете новый запрос перед существующим.

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

Я не знаю никакого способа профилировать это, кроме модификации и перекомпиляции ядра. Interestingly, till по крайней мере, RHEL 5.2, front_merges по умолчанию отключен. В новее Версии RHEL теперь включены по умолчанию. Я бы просто оставил это так.

person a3f    schedule 06.02.2016