8

Я ищу приложение или строку кода, которая позволила бы мне наблюдать за процессом, сохранять информацию в ряде переменных, а затем помещать собранную информацию в файл.

Я пытался с вариациями top но не повезло. У меня несколько виртуальных серверов CentOS, виртуальная машина - 2 ГБ ОЗУ, 2 процессора.

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

Я собираюсь провести стресс-тестирование сервера, и мне хотелось бы получить данные для составления статистики.

4 ответа4

11

Стандартного ps достаточно.

while true; do ps o pcpu,rsz -p $pid | tail -n1 >>usage.log; sleep $interval; done

результат:

0.0  3352
0.3 31640
0.4 36924
0.5 36052
...

Первое поле - загрузка процессора в%, второе - использование физической памяти в килобайтах.

1

Если вам нужна точная синхронизация и вы хотите использовать процессор в процентах:

watch --precise -n 1 'top -b -n 1 -p [PID] | tail -n 1 | awk "{print \$9}" >> [PID].log'
1

Я бы предложил sadc / sar.

0

Вы пытаетесь наблюдать, сколько процессорного времени требует конкретный процесс.

Я собирался предложить инструмент статистики процессора для CentOS? но это распространяется на всю систему, а не на один процесс.

Любой процесс покажет время процессора в выводе ps:

$ ps -ef | egrep blah
root     13988 11152  0 Dec16 ?        00:00:05 sshd: xxx [priv]
xxx      14024 13988  0 Dec16 ?        00:06:00 sshd: xxx@pts/0
xxx      14032 14024  0 Dec16 pts/0    07:00:00 -bash
root      1194   679  0 Apr24 ?        2-05:15:14 [kswapd0]
root      1195   679  0 Apr24 ?        2-06:35:49 [kswapd1]
  • 00:00:00 - часы / минуты / секунды процессора. Это будет накапливаться.
  • Вам понадобятся разрешения, чтобы увидеть это, если пользователь не вы.
  • Как только это значение превысит день, формат изменится; выше это 2 дня. Ваша процедура разбора должна справиться с этим.

На этом этапе проанализируйте вывод с помощью Python, поработайте над какой-нибудь математикой даты, и все будет отлично.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .