Linux инструмент для сбора показателей уровня процесса в режиме реального времени?

Я хочу отслеживать показатели, используемые конкретным процессом в режиме реального времени, например, процессор, память и т. Д.

Я оценил различные инструменты, но не нашел ни одного, соответствующего моим потребностям.

  1. pidstat захватывает все, что я хочу, он дает мне хорошее использование памяти на процесс, но сообщает о большем использовании процессора (даже больше, чем общее потребление процессора машиной)

  2. sar больше похоже pidstat но просто сбросьте все данные в файл.

  3. 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 или Эластичный стек.

Все, что вам нужно знать о доступных инструментах на каждом уровне:

http://www.brendangregg.com/linuxperf.html

Другие вопросы по тегам