假设cpu平均负载取决于运行状态(R状态)+进程等待I/O (D状态)的进程数。但是今天我注意到服务器的平均负载很高,运行的进程数为1,没有进程等待I/O。
我也检查了线程的运行和I/O进程,这是最小的。能不能有人从这个较高的负荷平均数正在产生的地方输入。
系统有4核心cpu与ubuntu操作系统。
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交换:总计6287356,使用1259140,免费5028216。2754608缓存Mem
所以我在这里寻找精确的公式来计算系统的平均负荷。提前谢谢。
发布于 2017-09-28 06:15:57
Load是暂停等待系统调用的当前三个节点的数目。
试着跑
ps -eafT
您可能会发现您的单个进程可以有数十个线程。
系统的负载基本上是当时调度承诺的衡量标准。你有多少核心的工作可以安排。如果您有那么多的pids或线程完全饱和调度器,您将看到数量的核心负载。
你的平均负荷很容易达到比这更高的水平。一旦你达到饱和,你就不会像可能被添加的那样做那么多的“工作”,而且你可以有一个“堆叠”的任务。在负载再次下降之前,系统必须仔细处理积压的系统。
发布于 2017-09-28 06:08:38
首先,问题是什么,是否存在用户的响应时间问题?
平均负载为30或40意味着多个进程正在运行或I/O等待。
你的分析是不够的。从以6万毫秒为单位的Linux性能分析开始
简短版本:
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
https://serverfault.com/questions/875945
复制相似问题