关于load average的大小问题

  今天查看服务器,利用top命令发现其loadaverage 偏大,问了下运维的同学,其一般正常值 在1以内,按理最大不超过其cpu个数。

        其load average有三个数,分别表示最近1分钟,5分钟,15分钟的系统平均负载。

        其查看cpu个数,可以在文件cat /proc/cpuinfo中进行查看。查看其proseeor,或者是用如下命令进行查看

        grep -c 'model name' /proc/cpuinfo  。

       当发现其负载超过1那么就说明流量访问很大了,应该不正常,此时要看下你的并发数,看下关闭链接,等待关闭的链接,及已经建立的链接的参数:其命令如下:

              netstat -n|grep 80 | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}',这里会显示出各个指示的链接数

            运行这个命令后发现其close_wait很大,运维的同事说因为这个很大造成其负载过大,且cpu使用率过大。

           运用以下命令netstat -n|grep CLOSE_WAIT|awk '{print $5}'|sort |uniq -c |sort -rn |head -n20

              这条命令是统计close_wait的ip有多少,其造成等待个数的前20个如下:

       

            发现其48上有不少等待,这个调用接口造成的,然后修改接口调用,将第二次调用从缓存中取,重启后恢复正常。

猜你喜欢

转载自blog.csdn.net/kwame211/article/details/81006701