Як зареєструвати завантаження процесора?


30

Як зареєструвати завантаження процесора у файл, щоб дослідити проблему?

Відповіді:


42

Це дуже добре працює:

 while true; do uptime >> uptime.log; sleep 1; done
  • Це записуватиме завантаження вашого процесора щосекунди та додає його до файлу uptime.log.

    Потім ви можете імпортувати цей файл у Gnumeric або таблицю OpenOffice, щоб створити хороший графік (виберіть "розділений пробілами" при імпорті).

Як помітив Скайн, цього буде недостатньо для діагностики проблеми. Отже, додатково запустіть це (або використовуйте його відповідь для цієї частини):

while true; do (echo "%CPU %MEM ARGS $(date)" && ps -e -o pcpu,pmem,args --sort=pcpu | cut -d" " -f1-5 | tail) >> ps.log; sleep 5; done
  • Це додасть у файл 10 найпопулярніших процесорів, які голодують на процесор ps.logкожні п'ять секунд.

    Зауважте, що це не повне завантаження судна інформацією top. Це лише 10 перших, і саме їх використання процесора, використання пам'яті та перший аргумент (тобто їх команда без додаткових аргументів, як у /usr/bin/firefox)

Після використання електронної таблиці для створення графіка, щоб побачити, коли завантаження процесора пройшло на даху, ви можете шукати цей файл найближчим часом, щоб побачити, який процес його спричинив.

Ось як виглядатимуть ці файли:

uptime.log

~$ cat uptime.log 
 22:57:42 up 1 day,  4:38,  4 users,  load average: 1.00, 1.26, 1.21
 22:57:43 up 1 day,  4:38,  4 users,  load average: 0.92, 1.24, 1.21
 22:57:44 up 1 day,  4:38,  4 users,  load average: 0.92, 1.24, 1.21
 22:57:45 up 1 day,  4:38,  4 users,  load average: 0.92, 1.24, 1.21
 ...

ps.log

%CPU %MEM ARGS Mo 17. Jan 23:09:47 CET 2011
 0.7  0.9 /usr/bin/compiz
 0.8  0.5 /usr/lib/gnome-panel/clock-applet
 1.1  1.7 /opt/google/chrome/chrome
 1.2  0.3 /usr/bin/pulseaudio
 1.8  4.0 /opt/google/chrome/chrome
 2.6  1.5 /opt/google/chrome/chrome
 2.6  3.2 /usr/bin/google-chrome
 3.6  2.6 /opt/google/chrome/chrome
 4.9  1.5 /usr/bin/X
 5.7  1.6 /opt/google/chrome/chrome
%CPU %MEM ARGS Mo 17. Jan 23:09:48 CET 2011
 0.7  0.9 /usr/bin/compiz
 0.8  0.5 /usr/lib/gnome-panel/clock-applet
 1.0  1.7 /opt/google/chrome/chrome
 1.2  0.3 /usr/bin/pulseaudio
 1.8  4.0 /opt/google/chrome/chrome
 2.6  1.5 /opt/google/chrome/chrome
 2.6  3.2 /usr/bin/google-chrome
 3.6  2.6 /opt/google/chrome/chrome
 4.9  1.5 /usr/bin/X
 5.7  1.6 /opt/google/chrome/chrome
 ...

3
Чи справді це друкує правильне використання процесора ?? Я спробував це на центсі, і лише використання пам'яті було правильним :(
Менелаос Бакопулос,

Як я можу змусити цю команду продовжувати працювати на моєму VPS навіть після закриття з'єднання Putty?
Лукас Бустаманте

1
Якщо використання CPU, про яке повідомляється, psє безглуздим, спробуйте запустити його як root.
Стефано Палацо

Як я можу змусити цю команду продовжувати працювати на моєму VPS навіть після закриття з'єднання Putty ????
Мостафа

10

Ви можете запустити topкоманду в пакетному режимі, скориставшись -bопцією, а потім скинути її у файл.

Після запуску ПК відкрийте термінал, запустіть

top -b > ~/cpu.txt

Потім, коли ваш ПК замерзне, просто відкрийте (можливо, величезний) текстовий файл і перевірте останній запис на детальну інформацію про те, що було запущено перед збоєм. Насправді файл буде настільки нерозумно великим, що вам краще запустити tail -250 ~/cpu.txtа.

Також перевірте /var/log/kern.log на випадок, коли проблема пов’язана з обладнанням (малоймовірно, якщо це відбувається лише після оновлення, але все-таки варто перевірити).



0

Для тих, кому потрібно виконати цю команду після закінчення сеансу шпаклівки (клієнт SSH). ви можете використовувати команду screen(або встановити її за допомогою apt-get)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.