Используя команду `ps`, что означает столбец`% cpu` при наличии процессора с несколькими ядрами? - PullRequest
0 голосов
/ 29 апреля 2020

См. Информацию о моей архитектуре процессора:

root@jai [~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                16
On-line CPU(s) list:   0-15
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             16
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 86
Model name:            Intel(R) Xeon(R) CPU D-1541 @ 2.10GHz
Stepping:              3
CPU MHz:               2099.998
BogoMIPS:              4199.99
Hypervisor vendor:     KVM
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              4096K
L3 cache:              16384K
NUMA node0 CPU(s):     0-15

Производительность моего сайта была низкой, иногда работала с перебоями, не загружая страницы полностью один раз, а затем, через несколько секунд, нормально загружала все страницы , Абсолютно прерывистое и то же самое происходило с разных компьютеров и телефонов из разных мест. Я подозреваю, что проблема была вызвана превышением моего процессора для обработки трафика c и обработки, которую я выполнял в тот момент. Поэтому я выполнил следующую команду, когда у меня возникла проблема. Смотрите результаты:

root@cup [~]# ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | more
  PID  PPID CMD                         %MEM %CPU
26468  1499 php-fpm: pool m_jaimemontoya_n  1.0 57.3
26463  1499 php-fpm: pool m_jaimemontoya_n  0.7 42.3
26553  1499 php-fpm: pool m_jaimemontoya_n  0.6 38.5
26502  1499 php-fpm: pool m_jaimemontoya_n  0.2 35.6
26190  1499 php-fpm: pool m_jaimemontoya_n  0.3 29.4
18242  1499 php-fpm: pool m_jaimemontoya_n  1.1 22.8
19045  1499 php-fpm: pool m_jaimemontoya_n  1.0 20.6
18437  1499 php-fpm: pool m_jaimemontoya_n  0.6 20.2
18269  1499 php-fpm: pool m_jaimemontoya_n  1.1 18.5
18289  1499 php-fpm: pool m_jaimemontoya_n  0.9 13.1
19042  1499 php-fpm: pool m_jaimemontoya_n  1.1 11.9
26906     1 /usr/sbin/exim -Mc 1jTsTl-0  0.0  7.0
 8546  8014 /usr/sbin/mysqld --basedir=  1.1  6.7
26872     1 /usr/sbin/exim -Mc 1jTsTl-0  0.0  6.0
26877     1 /usr/sbin/exim -Mc 1jTsTl-0  0.0  6.0
26869     1 /usr/sbin/exim -Mc 1jTsTl-0  0.0  5.0
26875 21851 /usr/sbin/exim -qG           0.0  5.0
26885     1 /usr/sbin/exim -Mc 1jTsTl-0  0.0  5.0
26891     1 /usr/sbin/exim -Mc 1jTsTl-0  0.0  5.0
26895     1 /usr/sbin/exim -Mc 1jTsTl-0  0.0  5.0
26888     1 /usr/sbin/exim -Mc 1jTsTl-0  0.0  4.0
26903     1 /usr/sbin/exim -Mc 1jTsTl-0  0.0  4.0
26880 26875 /usr/sbin/exim -qG           0.0  3.0
26881 26869 /usr/sbin/exim -Mc 1jTsTl-0  0.0  3.0
26882 26872 /usr/sbin/exim -Mc 1jTsTl-0  0.0  3.0
26899 26888 /usr/sbin/exim -Mc 1jTsTl-0  0.0  3.0
17419  1499 php-fpm: pool jaimemontoya_com  0.0  2.5
26814     1 /usr/sbin/exim -Mc 1jTsTj-0  0.0  2.5
26849     1 /usr/sbin/exim -Mc 1jTsTk-0  0.0  2.5
21290  1499 php-fpm: pool jaimemontoya_com  0.0  2.1
14959  1499 php-fpm: pool jaimemontoya_com  0.0  2.0
16122  1499 php-fpm: pool jaimemontoya_com  0.0  2.0
17085  1499 php-fpm: pool jaimemontoya_com  0.0  2.0
22367  1499 php-fpm: pool jaimemontoya_com  0.0  2.0
26826     1 /usr/sbin/exim -Mc 1jTsTk-0  0.0  2.0
26859 26849 /usr/sbin/exim -Mc 1jTsTk-0  0.0  2.0
26884 26877 /usr/sbin/exim -Mc 1jTsTl-0  0.0  2.0
26902 26895 /usr/sbin/exim -Mc 1jTsTl-0  0.0  2.0
18723  1499 php-fpm: pool jaimemontoya_com  0.0  1.7
21456  1499 php-fpm: pool jaimemontoya_com  0.0  1.7
21975  1499 php-fpm: pool jaimemontoya_com  0.0  1.7
13578  1499 php-fpm: pool jaimemontoya_com  0.0  1.6

Я пытаюсь понять, как интерпретировать столбец %CPU. Если я добавлю следующие значения, я получу 404,2 как общее:

57.3+42.3+38.5+35.6+29.4+22.8+20.6+20.2+18.5+13.1+11.9+7.0+6.7+6.0+5.0+5.0+5.0+5.0+5.0+4.0+4.0+3.0+3.0+3.0+2.5+2.5+2.5+2.1+2.0+2.0+2.0+2.0+2.0+2.0+2.0+2.0+1.7+1.7+1.7+1.6

Учитывая, что у меня 16 процессоров, как я могу интерпретировать тот 404.2, который получается после сложения всех значений в %CPU столбец для всех процессов? У меня есть сервер с 30 ГБ оперативной памяти с процессором 8 Core / 16 Thread. Спасибо.

ПРИМЕЧАНИЕ. В прошлом я часто получал это предупреждение в журналах сервера: WARNING: [pool m_jaimemontoya_com] server reached max_children setting (5), consider raising it Поэтому я поднял его до 32. По этой причине вы видите более 5 обработанных для php-fpm работает одновременно.

ОБНОВЛЕНИЕ 1:

Используя man lscpu, я вижу это:

COLUMNS
       CPU    The logical CPU number of a CPU as used by the Linux kernel.
...