Мониторинг% процессорного времени, количества дескрипторов, личных байтов, количества потоков для процесса в Linux - PullRequest
1 голос
/ 30 марта 2012

Как отслеживать следующие показатели для процесса в Linux?Я использую suse linux enterprise 11 SP1 64 бит.

  1. % процессорного времени
  2. Количество дескрипторов
  3. Частных байтов
  4. Количество потоков

Это какой-нибудь инструмент, доступный для Linux для этой цели?

Ответы [ 3 ]

1 голос
/ 30 марта 2012

возможно:

ps --no-headers -p $pid -o "pcpu,nlwp"
grep Private /proc/$pid/smaps | awk '{ sum += $2 } END { print sum }'
ls /proc/$pid/fd | wc -l

ps дает вам время использования процессора и подсчет потоков, grep дает вам сумму приватной памяти в килобайтах (* 1024 для получения байтов), а ls дает вамчисло открытых файловых дескрипторов.

ps имеет другие опции, чтобы дать вам информацию о памяти.Это не даст вам особого использования личной памяти, но, возможно, вам подойдут rss, size или vsz.

0 голосов
/ 27 декабря 2013

1.Для количества дескрипторов или количества дескрипторов файлов вы можете использовать команду lsof как:

lsof -p (process id)

Для получения дополнительной информации см. ссылка .

2.Для подсчета потоков используйте:

ps uH p <PID_OF_U_PROCESS> | wc -l

Здесь также подсчитывается заголовок, поэтому (output-1) - это то, что вы ищете.

3. Для процессорного времени, памяти и т. Д. Вы можете использовать "top". Он дает информацию об использовании процессора, памяти и т. Д. Для каждого процесса. 4. Я не уверен, что вы подразумеваете под частными байтами, извините.

Для мониторинга этих показателей в linus вы можете использовать некоторые инструменты, такие как SeaLion , Munin и т. Д., Которые предназначены для этой цели , Если вы используете для простой цели, SeaLion кажется идеальным. Он очень прост в настройке на нескольких серверах и является бесплатным.

0 голосов
/ 30 марта 2012

Если вам нужны необработанные данные, следующий ответ на StackOverflow ответит на ваш вопрос: Как рассчитать использование процессором процесса PID в Linux из C? / proc / [pid] / stat перечисляет некоторую полезную информацию о процессе linux.

Если вы просто хотите проверить среднее время процессора для процесса, вы можете использовать ps (см. Man-страницу!) Или что-то вроде: ps -eo "% p% y% x% C% c" - сортировка c

Также полезным инструментом является top ... просто введите "top" в командной строке, и вы получите информацию о процессоре, памяти, ...

Попробуйте man-страницы или Google для получения дополнительной информации о top и ps

...