Подтвердить что ты не робот

Получение использования ресурсов процесса Linux (процессор, диск, сеть)

Я хочу использовать /proc для поиска ресурса конкретного процесса каждую секунду. Ресурсы включают cputime, использование диска и использование сети. Я посмотрел /proc/pid/stat, но я не уверен, получаю ли я необходимые данные. Я хочу использовать все 3 ресурса, и я хочу отслеживать их каждую секунду.

4b9b3361

Ответ 1

В некоторых более новых ядрах есть файл /proc/<pid_of_process>/io. Это где IO статистика. Это не документировано в man proc, но вы можете сами попытаться выяснить числа.

Надеюсь, это поможет. Алекс.

Ответ 2

getrusage() выполняет CPU, память и диск и т.д.

man 2 getrusage

Я не знаю о сети.

Ответ 3

Кассовые взгляды.

Он получил диск процессора и сеть все на одном экране. Это не процесс, но это лучше, чем смотреть на 3 отдельных инструмента.

Ответ 4

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

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

Все документально подтверждено в man proc

Ответ 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