server average load exact formula

I was in assumption cpu average load is calculated depend on number of process in running state (R state) + process waiting for I/O ( D state). But today I noticed that server is showing high load average and number of running process is 1 and there is no process waiting for I/O.

I checked threads count also for running and I/O process that is minimum. Can someone give input from where this higher load average number is generating.

System is having 4 core cpu with ubuntu OS.

top - 21:10:01 up 4 days, 23:29,  0 users,  load average: 32.31, 43.25, 19.64
Threads: 2077 total,   1 running, 2076 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.9 us,  2.0 sy,  0.1 ni, 92.0 id,  0.6 wa,  0.4 hi,  0.0 si,  0.0 st
KiB Mem:  16434332 total, 15447756 used,   986576 free,  1593972 buffers

KiB Swap: 6287356 total, 1259140 used, 5028216 free. 2754608 cached Mem

so here I am here looking for exact formula to calculate system average load. Thanks in advance.

-1
задан 28 September 2017 в 16:16
2 ответа

Загрузка - это количество текущих потоков, которые приостановлены в ожидании системных вызовов.

Попробуйте запустить

ps -eafT

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

Нагрузка на систему, по сути, является мерой выполнения обязательств по расписанию на тот момент. У вас есть доступное количество ядер для расписания. Если у вас есть такое количество pid-пакетов или потоков, полностью загружающих планировщик, вы увидите нагрузку на количество ядер.

Средняя нагрузка может резко возрасти намного выше этого значения. Когда вы достигнете насыщения, вы не будете выполнять столько «работы», сколько может быть добавлено, и у вас может возникнуть «скопление» задач. Система должна пройти через накопившееся количество системных вызовов, прежде чем loadavg может снова упасть.

2
ответ дан 5 December 2019 в 19:22

Во-первых, в чем проблема, есть ли проблемы со временем отклика для пользователей?

Средняя загрузка 30 или 40 означает, что выполнялось несколько процессов или ожидался ввод-вывод.

Ваш анализ недостаточен. Начните с Анализ производительности Linux за 60 000 миллисекунд

Краткая версия:

uptime
dmesg | tail
vmstat 1
mpstat -P ALL 1
pidstat 1
iostat -xz 1
free -m
sar -n DEV 1
sar -n TCP,ETCP 1
top
0
ответ дан 5 December 2019 в 19:22

Теги

Похожие вопросы