13.2.3 系统性能分析标准
性能调优的主要目的是使系统能够有效地利用各种资源,最大地发挥应用程序和系统之间的性能融合,使应用高效、稳定地运行。但是,衡量系统资源利用率好坏的标准没有一个严格的定义,针对不同的系统和应用也没有一个统一的说法,因此,这里提供的标准其实是一个经验值。表13-1给出了判定系统资源利用状况的一般准则。
表13-1 判定系统资源利用状况的一般准则
其中:
·user%:表示CPU处在用户模式下的时间百分比。
·sys%:表示CPU处在系统模式下的时间百分比。
·iowait%:表示CPU等待输入输出完成时间的百分比。
·Swap In:即si,表示虚拟内存的页导入,即从SWAP DISK交换到RAM。
·Swap Out:即so,表示虚拟内存的页导出,即从RAM交换到SWAP DISK。
以上讲解了3个常用的系统性能分析工具,其实Linux下的性能分析工具还有很多,例如uptime可以检查CPU的平均负载,free可以查看系统内存的使用状况,ps,top可以配合监控系统的进程运行状态,netstat可以监测网络流量状况,等等,这些命令的使用方法前面已经讲述很多,故不在这里讲解。
系统性能优化是个涉及面广、烦琐、长久的工作,寻找出现性能问题的根源往往是最难的部分,一旦找到出现问题的原因,性能问题也就迎刃而解。因此,解决问题的思路变得非常重要。
例如,有Linux系统下的一个网站系统,用户反映网站访问速度很慢,且有时无法访问。
针对这个问题,第1步要做的是检测网络,可以通过ping命令检查网站的域名解析是否正常,同时,ping服务器地址的延时是否过大等,通过这种方式,首先排除网络可能出现的问题。如果网络没有问题,接着进入第2步,对Linux系统的内存使用状况进行检查。因为网站响应速度慢,一般跟内存关联比较大,所以可通过free,vmstat等命令判断内存资源是否紧缺。如果内存资源不存在问题,进入第3步,检查系统CPU的负载状况。可以通过sar,vmstat和top等命令的输出综合判断CPU是否存在过载问题。如果CPU没有问题,继续进入第4步,检查系统的磁盘I/O是否存在瓶颈。可以通过iostat,vmstat等命令检查磁盘的读写性能,如果磁盘的读写也没有问题,Linux系统自身的性能问题就基本排除了,最后要做的是检查程序本身是否存在问题。通过这样的思路,层层检测,步步排查,性能问题就“无处藏身”,查找出现性能问题的环节也就变得非常简单了。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。