Linux инструмент для сбора показателей уровня процесса в режиме реального времени?
Я хочу отслеживать показатели, используемые конкретным процессом в режиме реального времени, например, процессор, память и т. Д.
Я оценил различные инструменты, но не нашел ни одного, соответствующего моим потребностям.
pidstat
захватывает все, что я хочу, он дает мне хорошее использование памяти на процесс, но сообщает о большем использовании процессора (даже больше, чем общее потребление процессора машиной)sar
больше похожеpidstat
но просто сбросьте все данные в файл.ps
больше похож на инструмент для создания снимков, но не дает мне статистику в реальном времени
Я ищу инструмент, который может дать мне использование процессора для процесса в режиме реального времени.
3 ответа
Это некоторые из лучших инструментов мониторинга процессов командной строки для Linux.
1. Top - Мониторинг процессов в Linux
2. VmStat - Статистика виртуальной памяти
3. Lsof - список открытых файлов
4. Tcpdump - анализатор сетевых пакетов
5. NETstat - Сетевая статистика
6. Htop - Linux Process Monitoring
7. Iotop - Мониторинг дискового ввода-вывода Linux
8. Iostat - Статистика ввода / вывода
9. IPTraf - мониторинг IP LAN в реальном времени
10. Psacct или Acct - мониторинг активности пользователей
Если вам нужен графический интерфейс, я предлагаю
1. Системный монитор Gnome
2. GKrellM
3. Нагиос
4. Monitorix
5. Индикатор загрузки системы
Я не знаю инструмента, который бы выполнял мониторинг конкретного процесса с интервалом; но что-то подобное не составит труда написать; Вот несколько фактов:
/proc/<pid>/stat
предоставит много информации о статистике процесса./proc/<pid>/cmdline
обеспечит командную строку процессов./proc/<pid>/environ
обеспечит переменные окружения, о которых знает процесс./proc/<pid>/io
для статистики IO./proc/<pid>/statm
для использования памяти./proc/<pid>/status
который обеспечиваетstat
а такжеstatm
в удобочитаемом формате./proc/<pid>/sched
даст вам различные характеристики процессора и нагрузки на основе процесса.
Вы можете читать больше с man proc
; Вы могли бы легко написать демон, который извлекает эту информацию с интервалом, а затем сохраняет ее где-то централизованно, например, с помощью graphite
или Эластичный стек.
Все, что вам нужно знать о доступных инструментах на каждом уровне: