偶然发现,在宝塔面板中,我的服务器负载居然是100% 但是cpu 和内存其实并不高
通过命令查看主机
uptime 中load average 居然高达14.03 看来负载是真的高了
通过vmstat 看看具体问题
procs:
r 表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数,说明CPU不足。
b 表示等待资源的进程数,比如正在等待I/O、或者内存交换等。
memory:算是正常
swap:
si 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够或者内存泄露了,要查找耗内存进程解决掉。
so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。
一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示内存不足。
IO:
bi 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte
bo 块设备每秒发送的块数量
设置的bi+bo参考值为1000,如果超过1000,而且wa值较大,则表示系统磁盘IO有问题,应该考虑提高磁盘的读写性能。
图上还好
system:
in 每秒CPU的中断次数,包括时间中断。(较高)
cs 每秒上下文切换次数(较高)
这两个值越大,内核消耗的CPU就越多
cpu:
us 用户进程消耗的CPU时间百分比,us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,就需要考虑优化程序或算法
sy 内核进程消耗的CPU时间百分比,sy值如果太高,说明内核消耗CPU资源很多,例如是IO操作频繁。
id CPU处于空闲状态的时间百分比。(cpu空闲)
wa io等待所占用的时间百分比,wa值越高,说明IO等待越严重,根据经验,wa的参考值为20%,如果wa超过20%,说明IO等待严重,引起IO等待的
原因可能是磁盘大量随机读写造成的,也可能是磁盘或者磁盘控制器的带宽瓶颈造成的(主要是块操作)
通过上面的分析,发现主要是cpu每秒中断次数以及上下文切换较高
查看iostat
sda盘 有些拖后腿了所以iowait 有些高,不过还能接受
看看系统里面有没有D状态的 进程
ps -aux |grep D
为啥又这么xrdp 都处于D状态?
果断关闭试试?
终于正常了,但是那个xrdp 是啥服务呢?