Как определить, какой процесс заполнил дисковое пространство

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

Грепировал любой материал в / var / log / *, проверял crontab, почтовую очередь … Единственное, что я нашел, это следить за системным echos в syslog, при этом свободное пространство становится критическим через минуту (заполняется около 80 ГБ за 30 минут). Нет демонов или нет.

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

Это первый раз, когда это произошло через год или около того. Время ожидания было низким, проблема не повторилась в ближайшие дни.

спасибо

Вы можете использовать atop для отладки таких вещей. atop может работать в реальном времени, но более критически для вашего случая, он может отображать и анализировать снимки из прошлого, записанного в журналах. Он регистрирует множество разных показателей, поэтому вам, вероятно, не останется думать «черт, я бы хотел, чтобы я записал это» после факта. 🙂

В Debian вы можете установить его с помощью apt-get install atop . Затем вы можете запустить и включить его при загрузке с помощью диспетчера инициализации. Например, в systemd было бы systemctl enable atop && systemctl start atop . Теперь atop начнет ведение журнала – обычно это для /var/log/atop/<date> .

Вы можете просмотреть исторические журналы, используя atop -r <log file> , идя вперед по времени с t , и назад с помощью T Вы можете найти больше команд, нажав кнопку ? ключ.

Вы должны искать приложение, много записывающее на диск. Это можно увидеть в столбце WRDISK. Вы также можете сортировать по использованию диска, нажав D

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

Также добавьте некоторые проверки на использование диска, в частности, для поиска файлов с файлами с удаленными, но все еще открытыми файлами вдоль строк lsof $partition_var_lives_on | grep deleted >> somefile lsof $partition_var_lives_on | grep deleted >> somefile . (Также посмотрите, как журналы вращаются, если это что-то обычное, там легко может быть ошибка.)