Может ли кто-нибудь помочь с информацией о том, почему у меня такая высокая нагрузка на сервер, но общая загрузка ЦП составляет менее 50% и много свободной оперативной памяти?
Я использую 60 экземпляров ffmpeg на Ryzen 1700X.
Вот пример:
top - 23:06:56 up 14 days, 9:18, 1 user, load average: 37.60, 29.48, 27.77
Tasks: 300 total, 4 running, 296 sleeping, 0 stopped, 0 zombie
%Cpu(s): 49.4 us, 2.9 sy, 24.2 ni, 22.3 id, 0.0 wa, 0.0 hi, 1.2 si, 0.0 st
KiB Mem : 65973428 total, 56648208 free, 6166708 used, 3158512 buff/cache
KiB Swap: 33521660 total, 33521660 free, 0 used. 58950204 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
26716 root 20 0 1785484 109948 15040 S 30.2 0.2 8:05.60 ffmpeg
26466 root 20 0 1785384 110252 15212 S 29.9 0.2 7:55.21 ffmpeg
23944 root 20 0 1784344 95248 14968 S 27.9 0.1 11:42.94 ffmpeg
26714 root 20 0 1786092 110624 15152 S 27.9 0.2 7:41.62 ffmpeg
22213 root 20 0 1784096 109416 15208 S 27.2 0.2 15:58.07 ffmpeg
24430 root 20 0 1785028 109392 15180 S 26.9 0.2 12:51.34 ffmpeg
23199 root 20 0 1783992 95164 15092 S 26.2 0.1 13:50.43 ffmpeg
26220 root 20 0 1785880 110148 15192 S 26.2 0.2 8:00.28 ffmpeg
и вот результат mpstat -P ALL
root@Ubuntu-1604-xenial-64-minimal ~ # mpstat -P ALL
Linux 4.8.0-58-generic (Ubuntu-1604-xenial-64-minimal) 07/27/2017 _x86_64_ (16 CPU)
11:08:49 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
11:08:49 PM all 35.80 16.81 2.27 0.00 0.00 1.03 0.00 0.00 0.00 44.09
11:08:49 PM 0 34.66 12.75 3.47 0.00 0.00 10.27 0.00 0.00 0.00 38.85
11:08:49 PM 1 31.05 15.86 3.41 0.00 0.00 0.96 0.00 0.00 0.00 48.72
11:08:49 PM 2 38.62 16.16 2.55 0.00 0.00 0.60 0.00 0.00 0.00 42.07
11:08:49 PM 3 33.36 17.36 2.49 0.00 0.00 0.57 0.00 0.00 0.00 46.21
11:08:49 PM 4 39.13 16.26 2.47 0.00 0.00 0.49 0.00 0.00 0.00 41.65
11:08:49 PM 5 33.42 17.36 2.47 0.00 0.00 0.56 0.00 0.00 0.00 46.19
11:08:49 PM 6 39.25 16.22 2.43 0.00 0.00 0.47 0.00 0.00 0.00 41.63
11:08:49 PM 7 33.42 17.23 2.46 0.00 0.00 0.55 0.00 0.00 0.00 46.34
11:08:49 PM 8 38.73 17.16 1.89 0.00 0.00 0.28 0.00 0.00 0.00 41.94
11:08:49 PM 9 33.78 17.71 1.77 0.00 0.00 0.26 0.00 0.00 0.00 46.48
11:08:49 PM 10 38.76 17.25 1.88 0.00 0.00 0.27 0.00 0.00 0.00 41.84
11:08:49 PM 11 33.75 17.77 1.77 0.00 0.00 0.26 0.00 0.00 0.00 46.44
11:08:49 PM 12 38.68 17.15 1.88 0.00 0.00 0.27 0.00 0.00 0.00 42.02
11:08:49 PM 13 33.73 17.70 1.76 0.00 0.00 0.26 0.00 0.00 0.00 46.55
11:08:49 PM 14 38.67 17.18 1.88 0.00 0.00 0.27 0.00 0.00 0.00 41.99
11:08:49 PM 15 33.72 17.73 1.76 0.00 0.00 0.26 0.00 0.00 0.00 46.53
Меня немного беспокоит, что нагрузка возрастет до 35+, это 8-ядерный 16-поточный процессор, но колебание около 35 кажется немного высоким. Общая пропускная способность составляет около 30 Мбит / с (30 видеопотоков кодируются до 2 меньших битрейтов, следовательно, 60 процессов ffmpeg), а выходная пропускная способность составляет около 100 Мбит / с, у сервера есть порт 1 Гбит / с.
Кто-нибудь знает, почему такая высокая нагрузка на систему с высокими характеристиками с большим количеством свободных ресурсов?
Процессор Ryzen 1700X имеет 16 потоков, поэтому одновременно он может запускать максимум 16 процессов. 60 экземпляров ffmpeg оставляет не более 44 ожидающих своей очереди. Поскольку процессы также ждут завершения ввода-вывода, количество других вещей, средняя загрузка которых составляет 37,60, кажется нормальным.
Если вы хотите понять, насколько загружен ваш процессор в данный момент, используя верхнее значение, просуммируйте процентные значения, кроме id
(холостой ход). Ваш вывод:
%Cpu(s): 49.4 us, 2.9 sy, 24.2 ni, 22.3 id, 0.0 wa, 0.0 hi, 1.2 si, 0.0 st
соответствует 77,7%, а не 50%.