У нас есть постоянная работа, которая du
сводит воедино ряд подкаталогов, выявляет худших нарушителей и использует результаты, чтобы найти, есть ли вещи, которые быстро растут, чтобы обнаружить потенциальные проблемы. Мы используем diff
против снимков, чтобы сравнить их.
Существует каталог верхнего уровня с несколькими (несколькими сотнями) подкаталогами, каждый из которых может содержать 10 тысяч файлов в каждом (или более).
« du -s
» В этом контексте может быть очень агрессивным в отношении ввода-вывода, в результате чего наш сервер освобождает кеш-память, а затем возникают огромные всплески ввода-вывода, которые являются нежелательным побочным эффектом.
Какую стратегию можно использовать для получения тех же данных без нежелательных побочных эффектов?
источник
Ответы:
Посмотрите на
ionice
. Отman ionice
:Для запуска
du
с классом ввода-вывода "idle", который имеет самый низкий доступный приоритет, вы можете сделать что-то вроде этого:Это должно остановить
du
вмешательство в другие процессы ввода / вывода. Вы также можете рассмотреть возможность аренды программы, чтобы снизить приоритет процессора, например:Вы также можете сделать как во время инициализации:
источник
renice
вместоnice
. Для того, чтобы начатьdu
с обеими ionice и приятным, вы можете приковать обе программы:nice -n19 ionice -c3 du
.nice
Сам по себе также влияет на приоритет планировщика ввода-вывода, а не только на процессор.nice
влияет только на точность процессора (что может косвенно влиять на ввод-вывод, но не должно влиять на приоритет планировщика ввода-вывода). Где вы видите это поведение? Это где-то задокументировано?nice
, и она говорит только о квантах базового времени процессора. Ты хоть представляешь, где в книге это было? Мне было бы интересно читать авторитетный источник , что государства, он не упоминается вman nice
,man 2 nice
,man 2 setpriority
,info nice
илиinfo 'nice invocation'
, насколько я могу сказать, что это странно , потому что некоторые из них идут в совсем немного подробнее о том , какnice
работы вызова и что это делает.Если у вас есть тонны файлов в одном каталоге, это может быть причиной скачков ввода-вывода, так как многие файловые системы плохо обрабатывают большие файловые деревья в одном каталоге. Разделение его на несколько подкаталогов может помочь в этом. Если у вас есть более 10 тыс. Файлов в одном каталоге, и это вызывает проблемы, вам, вероятно, следует разделить его.
Что касается отслеживания использования диска, вы могли бы сначала взглянуть
df
, если значение использования там быстро не возрастало, то и подкаталоги не росли, и вы можетеdu
вообще пропустить .Другой альтернативой может быть система дисковых квот, которая постоянно отслеживает использование, если ваша файловая система поддерживает это.
источник
df
это не сработает - проблема в том, что у нас есть сценарии очистки, поэтому мы можем не видеть никаких изменений, но пропустили раннее предупреждение для автоматической работы, которая активно захватывает дисковое пространство. Мы используем zabbix для мониторинга общего использования диска, но знание отдельных каталогов, в которых все идет немного по-другому, довольно важно.В дополнение к этому
ionice
вы можете попытаться сделать доступ к диску более эффективным. Это можно попробовать, выполнивво-первых (возможно, и через
ionice
). Это не будет работать, если есть слишком много файлов. Сколько это слишком много, зависит от количества свободной оперативной памяти.источник