服务器平均负载较高分析

京漂大叔 2023-03-23 PM 2889℃ 0条

网址打开慢,首先确定本地网络环境正常,没有问题;
然后连接服务器,通过update命令查看负载均衡较高。
通过top,查看占用cpu较高的进程,通过pwdx 命令找到业务进程路径,分析导致占用cpu的原因
pwdx pid(top查看的进程pid)

分析Apache日志文件并找到发送字节最多的前20个IP地址
cat /var/log/httpd/access_log | awk '{print $1, $10}' | sort -k2rn | head -n 20

分析apache错误日志前20个IP地址
cat 20230317_other_error.log | grep -oE "b([0-9]{1,3}.){3}[0-9]{1,3}b" | sort | uniq -c | sort -rn | head -n 20

负载过高问题处理
1、%us过高 :
表示有用户态进程占用了过多的CPU,通过top命令可以很清楚的看到是哪个进程,如果这不是预期的行为,可以通过kill命令杀死相应的进程或者重启它
2、%sy过高 :
如果只是偶尔过高的话,不用担心,但如果是持续走高的话,就需要重视,有可能是某些进程的系统调用太频繁,比如进程不停的往控制台输出日志,但如果用户态的进程都没有问题,那可能是内核里面的代码出现了问题,尤其是代码写的不好的驱动模块
3、%ni过高 :
说明有人用nice程序运行了比较耗CPU的进程。如果niceness值大于0的话,就没什么好担心的,因为它的优先级比默认优先级要低,不会影响CPU性能,但最好还是确认一下该进程不会抢占系统的其它资源,如内存、磁盘I/O等,避免对系统整体性能造成影响。
如果niceness值小于0的话,表示该进程优先级高且占用CPU资源多,需要确保该进程占用的CPU资源是符合预期的,如果不是,可以用top命令把它找出来并kill掉或者重启。
4、%wa过高 :
意味着系统中有进程在做大量的I/O操作,或者在读写速度比较慢的I/O设备,比如频繁的读写磁盘,这时可以通过iotop命令来查看是哪些进程占I/O,然后再针对不同的进程做相应的处理。
还有一种情况就是系统在频繁的使用交换分区,这时需要解决的就是内存的问题,而不是I/O的问题。
5、%hi或者%si过高 :
%hi过高一般是硬件出问题了,%si过高一般是内核里面的代码出问题了
6、%st 过高 :
正如上面介绍介绍的那样,%st过高表示当前虚拟机得不到足够的CPU资源。这时可以考虑将当前虚拟机搬迁到其它的主机上,或者想办法降低当前主机的负载,比如关掉一些其它的虚拟机。

标签: pwdx, to'p, 负载

非特殊说明,文章均为原创。

评论啦~