Я хочу использовать /proc для поиска ресурса конкретного процесса каждую секунду. Ресурсы включают cputime, использование диска и использование сети. Я посмотрел /proc/pid/stat, но я не уверен, получаю ли я необходимые данные. Я хочу использовать все 3 ресурса, и я хочу отслеживать их каждую секунду.
Получение использования ресурсов процесса Linux (процессор, диск, сеть)
Ответ 1
В некоторых более новых ядрах есть файл /proc/<pid_of_process>/io
. Это где IO статистика.
Это не документировано в man proc, но вы можете сами попытаться выяснить числа.
Надеюсь, это поможет. Алекс.
Ответ 2
getrusage()
выполняет CPU, память и диск и т.д.
man 2 getrusage
Я не знаю о сети.
Ответ 3
Кассовые взгляды.
Он получил диск процессора и сеть все на одном экране. Это не процесс, но это лучше, чем смотреть на 3 отдельных инструмента.
Ответ 4
Не думайте, что есть способ получить информацию о диске и сети на основе каждого процесса.
Самое лучшее, что вы можете получить, это глобальный диск и сеть, а также время процессора на процессор.
Все документально подтверждено в man proc
Ответ 5
netstat -an
ac
Распечатывает статистику о времени подключения пользователей
Ответ 6
Лучший способ подойти к таким задачам - найти исходный код инструментов, которые выполняют аналогичный мониторинг и отчетность. Хотя нет гарантии, что они используют /proc напрямую, они приведут вас к эффективному решению этой проблемы. Для вашего случая приходят на ум верхние (1), iotop (8) и nethogs (8).
Ответ 7
Вы можете использовать SAR
-x статистика отчета для данного процесса.
Смотрите это для получения более подробной информации: http://www.linuxcommand.org/man_pages/sar1.html
Пример: sar -u -r -b 1 -X PID | grep -v Средний | grep -v Linux