1 服务器的性能监控和分析
1.1 Linux服务器的性能指标监控和分析
1.1.1 通过vmstat深挖服务器的性能问题
1.1.2 如何通过mpstat 分析服务器的性能指标
1.1.3 从lsof中能看到什么
1.1.4 如何通过free看懂内存的真实使用
1.1.5 网络流量如何监控
1.1.6 nmon对Linux服务器的整体性能监控
1.2 Windows服务器的性能指标监控和分析
1.2.1 Windows性能监视器
1.2.2 Windows性能监视器下的性能分析
一个系统或者网站在功能开发完成后一般最终都需要部署到服务器上运行,那么服务器的性能监控和分析就显得非常重要了,选用什么配置的服务器、如何对服务器进行调优、如何从服务器监控中发现程序的性能问题、
如何判断服务器的瓶颈在哪里等 就成为了服务器性能监控和分析时重点需要去解决的问题了。
1.1 Linux服务器的性能指标监控和分析 1.1.1 通过vmstat深挖服务器的性能问题
vmstat差不多是性能测试时在linux服务器上执行最多的命令,使用该命令往往能辅助我们进行很多的性能问题定位。
我们先来看一下执行vmstat 命令后,获取到的服务器的资源使用的监控数据有哪些。
我们在执行vmstat 的时候,后面加了两个参数,其中参数1代表每隔1秒获取一次服务器的资源使用数据,10代表总共获取10次。
指标
含义
r
r是第一列的监控数据,代表了目前实际在运行的指令队列(也就是有多少任务需要CPU来进行执行),从数据来看,这台服务器目前CPU的资源比较空闲,如果发现这个数据超过了服务器CPU的核数,就可能会出现CPU瓶颈了(在判断时,还需要结合CPU使用的百分比一起来看,也就是上图中最后5列的数据指标),一般该数据超出了CPU核数的3个时,就比较高了,超出了5个就很高了,如果都已经超过了10时,那就很不正常了,服务器的状态就很危险了。如果运行队列超过CPU核数过多,表示CPU很繁忙,通常会造成CPU的使用率很高。
b
b是第二列的监控数据,表示目前因为等待资源而阻塞运行的指令个数,比如因为等待I/O、内存交换、CPU等资源而造成了阻塞,该值如果过高了的话,就需要检查服务器上I/O、内存,CPU等资源是不是出现了瓶颈。
swpd
swpd是第三列的监控数据,表示虚拟内存(swap)已使用的大小(swap指的是服务器的物理运行内存不够用的时候,会把物理内存中的部分空间释放出来,以供需要运行的程序去使用,而那些释放出来的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间会被临时保存到Swap中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中,swap分区一般使用的都是磁盘的空间,磁盘的I/O读写一般会比物理内存慢很多,如果存在大量的swap读写交换,将会非常影响程序运行的性能),也就是切换到内存交换区的内存数量(单位为k),此处需要注意,并不是swpd的值大于0,就是服务器的物理内存已经不够用了,通常还需要结合si和so这两个数据指标来一起分析,如果si和so 还维持在0左右,那服务器的物理内存还是够用的。
free
free是第四列的监控数据,表示空闲的物理内存的大小,就是还有多少物理内存没有被使用(单位为k),这个free的数据是不包含buff和cache这两列的数据值在内的。
buff
buff 是第五列的监控数据,表示作为Linux/Unix系统的缓存的内存大小(单位为k),一般对块设备的读写才需要缓冲,一般内存很大的服务器,这个值一般都会比较大,操作系统也会自动根据服务器的物理内存去调整缓冲区的内存使用大小,以提高读写的速度。
cache