LINUX.ORG.RU

df -h подбирает информацию из /proc?

 , ,


0

1

Есть скрипт для мониторинга, который подбирает информацию подобным образом:

echo -n $(df -mP ${1} ...)

, где ${1} - mountpoint. Раньше таймаут стоял у скрипта - 60сек. Но неудобно, т.к удалишь что-то в торрентах и надо знать, сколько освободилось места. Вроде как в понельке вывожу информацию о свободном месте, а в консольку лезу набирать df -h. Вот и думаю, откуда df собирает информацию. Или опрашивает диск напрямую или из /proc. Если первое - плохо т.к буду по 12 раз в минуту дергать диск :(

★★★

Ответ на: комментарий от NDfan

Что-то частота сильно избыточна для непрерывного мониторинга домашней-то техники. Не?

Я в шапке топика описал конкретную ситуацию, мне больше нечего добавить

В суперблок она лезет, вестимо. Можно по strace пачки statfs видеть, да и народ говорит.

echo -n $(( $(stat -f -c '%a * %S / 1024 / 1024 / 1024' ${1} ) ))

Я так понимаю, что это полный эквивалент

echo -n $(df -mP ${1} ...)

Т.е все они ходят в девайс и там запрашивают информацию и этой информации нет в /proc, верно? Т.е опрашивать его раз в 5 сек - в целом вредно для девайса. Всё правильно понял?

serg002 ★★★
() автор топика

Вообще, у меня есть подозрение, что это не вредно для девайса. Он же это всё не лезет просчитывать. Эта инфа есть в контроллере, а ядро всего-навсего у него эту инфу опрашивает. Кто может подтвердить?

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

Эта инфа есть в контроллере, а ядро всего-навсего у него эту инфу опрашивает. Кто может подтвердить?

Не могу подтвердить. Вызов statfs вообще не обращается к диску. Можете потрассировать blk_account_io_strat и убедиться, что чтения не происходит.

i586 ★★★★★
()

Как он может лезть к диску, если он работает из под обычного пользователя? К тому же, дисковый кеш, лезть в обход его напрямую к секторам накопителя вобще черевато.

Дёргает syscall, а уж что там ядро делает, это отдельный вопрос. Но, как я понимаю, это не важно. На обычных ФС ядро не должно в работе читать эту информацию с диска, а «верить» данных в своих структурах.

dh в /proc лезет, только если нужна информация по всем смонтированым ФС, чтобы прочитать их список.

mky ★★★★★
()