性能测试——处理器分析方法
2016-07-12 08:57
369 查看
处理器分析方法
处理器(CPU)也可能是系统的瓶颈,如下是针对处理器进行分析的步骤:查看System\%Total Processor Time性能计数器的计数值
该计数值用于体现服务器整体的处理器使用率,对多处理器系统来说,该值体现了所有CPU的平均使用率。该值的数值持续超过90%,则说明整个系统面临着处理器方面的瓶颈,需要通过增加处理器来提高性能。
PS:由于操作系统本身的特性,在某些多CPU系统中,该数据本身并不大,但若CPU之间的负载情况极为不均衡,也应该视作系统产生了处理器方面的瓶颈。
查看每个CPU的Processor\%ProcessorTime和Processor\%UserTimes和Processor\%PrivilegedTime
Processor\%User Time是指系统的非核心操作系统消耗的CPU时间,如果该值较大,可以考虑是否通过算法优化等方法来降低该值。如果该服务器是数据库服务器,Processor\%User
Time值大的原因很可能是数据库的排序或函数操作消耗了过多的CPU时间,此时可以考虑对数据库系统进行优化。
研究系统处理器瓶颈
查看System\Processor Queue Length计数器的值,当该计数器的值大于CPU数量的总数加1时,说明处理器阻塞。处理器的%Process
Time值很高时,一般都伴随着处理器阻塞,但产生处理器阻塞时,Processor\%Process Time计数器的值并不一定很大,此时就需要查看处理器阻塞的原因。
%DPC Time该值越低越好,在多处理器系统中,如果该值大于50%并且Processor\%Process
Time值非常高,则考虑加入一个网卡来提高性能
Linux/UNIX处理器分析方法
处理器(CPU)也可能是系统的瓶颈,如下是针对处理器进行分析的步骤:查看Processor\%Idle Time性能计数器的值
该计数器描述的是CPU总的空闲时间。如果该值持续低于10%,表明瓶颈是CPU。可以考增加一个处理器或换一个更快的处理器。
PS:该计数器的值可以通过top命令输出结果。
查看Processor\%User Time
和 System\%User Time、System\CPU context switches
Processor\%User Time是指系统非内核操作消耗的CPU时间。一般来说如果系统中使用了大量的算法和复杂的计算操作,该值会比较大。
System\%User Time系统上所有处理器执行非内核操作的平均时间的百分比,该值反映了用于有用作业上的时间的比率
System\CPU context switches是CPU上下文切换。在vmstat的结果中显示为CS。
例如:CPU 100
6570 User Time,%-%05
Idle Time;大量的上下文切换是可以接受的。
PS:查看processor信息用top命令,system用vmstat应用
可运行队列
每个可运行队列不应该超过1-3个线程(每处理器)。
PS:Vmstat中一些参数介绍:
r CPU
,被
IO ,被处理过的中断数
cs,用户占用的百分比
sys CPU
,所有可运行的线程被
IOCPU
,完全空闲的百分比
PS:mpstat输出多个处理器数据:
对CPU使用率过高的进程中的所有线程进行排序的命令:
ps H -e -o pid,tid,pcpu,cmd --sort=pcpu |grep xxx
单线程CPU使用过高可能有哪些原因?
产生死循环首先查一下出问题进程的pid: ps -ef | grep icdn
然后top命令查看线程信息:top
-H -p PID号
接下来,我们用gdb来attach目标进程:gdb
icdn PID号(与2一样)
gdb已经列出了各线程正在执行的函数,记住行首标号
执行
thread 行首标号: thread 线程id
然后执行:bt
最后:detach()
调试完指定进程后,可以运行detach命令来让GDB释放该进程,该进程得以继续运行。当回车时,detach不会重复。当执行完detach后,进程和GDB不再相关,GDB可以attach其他进程。
线程太多
机器配置差
相关文章推荐
- Openjudge-NOI题库-和数
- 【代码笔记】iOS-页面调的时候隐藏工具条
- Linux下安装卸载ftp的方法
- 【代码笔记】iOS-页面调的时候隐藏工具条
- PAT寻找大富翁
- flask web开发
- 数据库表设计的原则攻略
- MATLAB对于文本文件(txt)数据读取的技巧总结
- ASP.NET MVC随想
- [JQ权威指南]getScript函数获取数据
- Java 集合 fail-fast机制 [ 转载 ]
- jetty,加载war包过程
- bootstrap media 对象
- 安卓日记——神器AndroidAutoLayout
- 实例讲解虚拟机3种网络模式(桥接、nat、Host-only)
- [转]关于MSSQLServer的排序规则
- 用CSS美化你的HTML
- Order by 和 group by 的联合使用 并对某一字段中的不同结果进行重命名和自由排序
- oracle中schema指的是什么?
- 3种方式的省市级联