Назад | Перейти на главную страницу

Вверху показана загрузка 2,5: как узнать, какие процессы ждут ЦП?

У меня есть Linux-бокс, на котором размещен сайт с довольно низким трафиком. Это «маленький» экземпляр Amazon EC2, работающий под управлением Ubuntu 10.04. Когда я бегаю на нем «наверху», я обычно вижу нагрузку от 2 до 3, что, по моему опыту, довольно много. Однако на самом деле, похоже, на самом деле не так много всего происходит - процессор почти всегда простаивает, и, просмотрев файл apache2 access.log, я вижу, что проходит не так много запросов. Как мне выяснить, какие процессы ждут ЦП, чтобы я мог попытаться понять, почему метрика нагрузки такая высокая?

Используя top, вы можете видеть, какие потоки работают, а какие спят. Это должно позволить вам хотя бы знать, что истощает ваши ресурсы, если мы говорим об узком месте ЦП.

[xxx@absynthe proc]$ top -H

Должен появиться такой экран:

top - 17:54:38 up 37 min,  2 users,  load average: 0.03, 0.06, 0.07
Tasks: 338 total,   2 running, 336 sleeping,   0 stopped,   0 zombie
Cpu(s):  4.1%us,  2.3%sy,  0.0%ni, 92.1%id,  1.5%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3852932k total,  1596468k used,  2256464k free,    47108k buffers
Swap:  5963768k total,        0k used,  5963768k free,   681728k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                           
 1853 root      20   0  196m  38m  15m S  9.7  1.0   1:57.58 Xorg                                                                                                                                              
 2186 xxx       -6   0  564m 8828 7216 S  3.9  0.2   0:43.69 pulseaudio                                                                                                                                        
 2611 xxx       20   0 1095m 235m  27m S  3.9  6.3   2:29.52 firefox                                                                                                                                           
 2179 xxx        9 -11  564m 8828 7216 S  1.9  0.2   0:38.34 pulseaudio                                                                                                                                        
 2671 xxx       20   0 1087m  43m  18m S  1.9  1.2   0:06.06 plugin-containe                                                                                                                                   
 2820 xxx       20   0 1275m  67m  23m S  1.9  1.8   0:13.13 souphttpsrc13:s                                                                                                                                   
 2824 xxx       20   0  315m  13m 9492 S  1.9  0.4   0:02.35 gnome-terminal                                                                                                                                    
 3114 xxx       20   0 15088 1300  820 R  1.9  0.0   0:00.02 top                                                                                                                                               
    1 root      20   0 19236 1440 1152 S  0.0  0.0   0:01.07 init                                                                                                                                              
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                                                                                                          
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                                                                                                       
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.17 ksoftirqd/0                                                                                                                                       
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0                                                                                                                                        
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/1                                                                                                                                       

Столбец с именем S (восьмой справа) показывает S для спящих потоков и R для запущенных потоков. Вы можете выбрать порядок сортировки, нажав F (заглавная) и выбрав поле «Статус процесса». Затем вы можете изменить порядок сортировки, нажав R (заглавная), чтобы сначала увидеть запущенные потоки.

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

Надеюсь это поможет.

РЕДАКТИРОВАТЬ:

Если вы хотите узнать, испытываете ли вы какие-либо узкие места ввода-вывода, вы можете ввести следующую команду: vmstat -s и ищите тики ЦП с ожиданием ввода-вывода. Если при выполнении команды с интервалом в пару секунд значение сильно возрастает, возможно, вы столкнулись с узким местом ввода-вывода. В этом случае вам может быть лучше использовать iotop, чтобы увидеть, какие процессы используют больше ресурсов ввода-вывода.

Индикатор загрузки вызван не только высокой загрузкой процессора. Процессы могут ждать по другим причинам, таким как дисковый и сетевой ввод-вывод.

На небольших инстансах Amazon EC2 дисковый ввод-вывод очень плох, особенно / dev / sda2.

Вы можете запустить iotop (apt-get install iotop в debian / ubuntu), чтобы увидеть, какой процесс использует ввод-вывод.

Команда

top -i

будут перечислены только процессы, которые вносят вклад в нагрузку. Это должно помочь вам узнать, какие процессы ждут ЦП.