LINUX.ORG.RU
ФорумAdmin

ionice не работает

 ,


0

2

Хочу запустить php скрипт, который удаляет много файлов с наинизшим приоритетом(что бы не вешал сервер). Делаю

sudo -u www-data ionice -c3 php /var/www/html/delete.php

По идее должен запуститься с приоритетом idle, но сервер по прежнему затыкается через каждые 20-30 сек. Почему tar нормально работает, когда архивирует сайт с десятками тысяч файлов? Как бы сделать также?

http://xgu.ru/wiki/man:ionice Idle. Процесс, имеющий класс idle, сможет получить доступ к диску только тогда, когда другие программы не хотят к нему обращаться. Потери производительности ввода/вывода от таких процессов при нормальной работе системы должны быть нулевыми. Для этого класса не задаются никакие дополнительные приоритеты.

★★★★

на графике видно скачек в момент выполнения скрипта https://prnt.sc/judiy3
Желтый цвет это CPU iowait

gobot ★★★★ ()

Процесс, имеющий класс idle, сможет получить доступ к диску только тогда, когда другие программы не хотят к нему обращаться

Это не спасает, когда проблемы, например, в генетике ФС :) Процесс ждёт, пока диск освободится, система начинает работу с диском и отбирает диск, пока не закончит. А закончить она в запущенных случаях может не скоро.

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

KRoN73 ★★★★★ ()

Есть ещё один часто не очевидный момент: ionice работает корректно в паре с CFQ планировщиком. Иногда отсутсвие эффекта от ionice говорит лишь о том, что на сервере используется другой планировщик, к примеру deadline, который игнорит любые приоритеты)

lucentcode ★★★★★ ()
Ответ на: комментарий от gobot

В Debian 9 по умолчанию из коробки юзается CFQ, с ним ionice должен работать как требуется, если с ним проблемы и возникают, то из-за особенностей некоторых ФС, упомянутых KRoN73.

Но на всякий случай, если вы не уверены насчёт того, какой планировщик у вас юзается, можете проверить, у меня к примеру так

cat /sys/block/sda/queue/scheduler
noop deadline cfq [bfq-sq]

Используемый, это тот что в квадратных скобках.

lucentcode ★★★★★ ()
Последнее исправление: lucentcode (всего исправлений: 1)
Ответ на: комментарий от lucentcode

из коробки юзается CFQ, с ним ionice должен работать как требуется

Он перестал быть волшебной пулей лет 7-9 назад :)

А когда-то это было реально какое-то чудо:

CFQ IO Schedule и /proc/sys/... Или как уменьшить тормоза при интенсивной работе с диском

Блин, было время, когда системы на HDD (при чём это касается и Linux, и Windows) с холода летали на порядок лучше, плавнее, отзывчивее, чем сегодня с HDD.

Вот, только обрывки остались таких демок (хотя они не передают офигенную плавность GUI того времени):

https://youtu.be/1iKhZzzBjlI

KRoN73 ★★★★★ ()

затыкается через каждые 20-30 сек

Это не похоже на твои настройки dirty_expire_centisecs ?

Вообще, из того, что ты написал, трудно догадаться о причинах явления, но на всякий случай попробуй вот это средство: nocache (теперь уже есть и в репах некоторых дистров), если будет эффект - отпишись.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.