当前位置: 技术问答>linux和unix
如何分析服务器程序的性能瓶颈
来源: 互联网 发布时间:2016-09-13
本文导语: 这一段时间一直在做数据处理,由于数据量很大,感觉效率不是很满意。想要做一下效率分析,看了一下相关资料,都说用iostat,vmstat命令等进行性能分析,可是虽然明白了各个参数的含义,可是到底打到一个什么阈...
这一段时间一直在做数据处理,由于数据量很大,感觉效率不是很满意。想要做一下效率分析,看了一下相关资料,都说用iostat,vmstat命令等进行性能分析,可是虽然明白了各个参数的含义,可是到底打到一个什么阈值才说明性能有问题呢?例如,用iostat显示iowait,达到一个什么值说明目前io等待严重影响效率,怎么可以直观理解百分比对实际程序的英雄呢?
|
I/O一般都是用平均访问时间来计算的。这就要进行综合调试了。举个例子:
假设某系统(装了一个磁盘)的CPU的占用率为2%,MEM占用率为90%,磁盘的平均访问时间为50ms。
为了提高效率,新增加一个磁盘,同时将数据从原来的磁盘平均放置在两个磁盘上(使得能进行并发访问)。
再看相关指标,如果发现CPU的占用率升到20%,MEM的占用率降到50%,磁盘的平均访问时间提高到30ms。
这样就基本可以判断系统的瓶颈是出现在磁盘的I/O上,系统基本都在等待磁盘的访问。
当然,这个例子中也可以用增加内存的方式来改善,但你监控时会发现:
刚开始CPU的占用率会比较高,而内存的占用率会相对低.因为是通过加内存的方式进行改善,所以这段时间很可能相对比较长。
过了一段时间后(假设系统仍然存在大量的磁盘读写),就会发现CPU降低,MEM达到90%的情况。
|
一般来说某一个指标的使用率超过85%就要严格跟踪,超过95%就肯定严重影响效率了。
|
这方面也是一直想了解的
我感觉根据不同的服务类型
Memory
Network
CPU
Disk
Disk I/O
等这些影响服务器性能的主要因素重-次也不同
所以阈值也相应的应该根据实际情况而定
这种东西真难把握 希望有个高手能相信讲解一下自身的经验 我也想学习一下
我感觉根据不同的服务类型
Memory
Network
CPU
Disk
Disk I/O
等这些影响服务器性能的主要因素重-次也不同
所以阈值也相应的应该根据实际情况而定
这种东西真难把握 希望有个高手能相信讲解一下自身的经验 我也想学习一下
|
可能有问题的情况:
uptime的load average大于3
vmstat如果po大于3
swap使用率居高不下
sar查看到的%rcache达不到%90
CPU使用率大于75%
凡事无绝对,具体问题具体分析。
uptime的load average大于3
vmstat如果po大于3
swap使用率居高不下
sar查看到的%rcache达不到%90
CPU使用率大于75%
凡事无绝对,具体问题具体分析。