引言
在昨天之前,一直没有仔细注意到自己电脑在开启一定多的服务之后,负载量到了多少.但是因为遇到了这么一个情况,在开启网易云音乐之后,因为软件的原因导致内存溢出,将系统的内存占用光了,电脑卡死.最开始一直没查出来是什么原因,后来使用到了这么几个工具top,和vmstat才查明白.当然性能分析工具不光在私人电脑上用得到,在服务器运维方面其实也有很大用处,还是很有必要学习的.
top工具
在终端直接使用输入top回车
如上图,第一行内容正式系统当前的负载情况,可以再通过uptime看一下.
命令显示如上图,对应的后面的三个load average数值代表的是在过去的1分钟,5分钟,15分钟内进程队列中的平均进程数量.
在top命令的输出图中,需要注意的是load average的输出值,这三个值的大小一般不能大于系统的逻辑CPU数量,比如输出中本系统有4个逻辑CPU,如果load average的三个值长期大于4,说明负载挺严重.当然一般电脑应该都够用,这里需要考虑的是服务器上的情况.
如果cpu还有不少空闲,这个时候可以结合vmstat来判断我们的系统是否过于繁忙,如果确定很繁忙,就需要考虑是否要更换CPU或者增加内存了.
vmstat监控系统的整体性能
vmstat是一个相当全面的性能分析工具,通过它可以查看到系统当前的进程状态,内存使用状态,虚拟内存的使用情况,磁盘I/O,中断,上下文切换,CPU的使用情况等性能信息,建议熟练此命令.
以下是正常情况下的
其中
procs
r:等待运行的进程数
b:处于非中断睡眠状态的进程数
memeory
swap:虚拟内存使用情况(单位KB)
free:空闲的内存
buff:被用来做缓存的内存数量.
swap
si:从磁盘交换到内存的交换页数量.
so:从内存交换到磁盘的交换页数量.
io
bi:发送到块设备的块数(单位:块/秒)
bo:从块设备接收到的块数.
system
in:每秒中断的次数,包括时钟中断.
cs:每秒的环境(上下文)切换次数.
cpu
按照CPU的总使用百分比来显示
us:CPU使用时间.
sy:CPU系统使用时间.
id:闲置时间.
标准情况下r和b的值应该为:r<5,b≈0(服务器上,以下也是).
如果user%+sys%<70%则表示系统性能较好,如果user%+sys%>=85%或者以上,这表示系统性能比较糟糕,这时就要对系统进行全面的检查了.
其中
user%表示CPU处在用户模式下的时间百分比.
sys%表示CPU处于系统模式下的时间百分比.