性能测试——处理器分析方法
来源:互联网 发布:编程判断字母大小写 编辑:程序博客网 时间:2024/05/17 21:17
处理器分析方法
处理器(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 1006570 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其他进程。
线程太多
机器配置差
- 性能测试——处理器分析方法
- 性能测试——瓶颈分析方法
- 性能测试—瓶颈分析方法
- setStyle方法性能分析测试
- 性能分析:处理器、磁盘I/O、进程、网络分析方法
- NIOS II 处理器性能测试
- 处理器分析方法
- 处理器性能颈瓶分析
- 性能测试之——内存分析
- 性能测试案例分析——连接池性能优化
- Web 性能测试需求分析方法-1
- 性能测试需求指标分析方法
- 性能测试之操作系统计数器分析方法
- sql测试及性能分析方法
- 性能测试之----瓶颈分析方法
- 性能测试分析方法及要点
- 性能测试方法——推荐阅读
- NIOS II 处理器性能测试(转)
- ASP.NET MVC随想
- sklearn源码解析:ensemble模型 零碎记录;如何看sklearn代码,以tree的feature_importance为例
- PAT寻找大富翁
- 《剑指offer》-扑克牌顺子
- 【代码笔记】iOS-页面调的时候隐藏工具条
- 性能测试——处理器分析方法
- [JQ权威指南]getScript函数获取数据
- nodejs内置模块os-操作系统模块
- eclipse开发opencv官方教程
- PAT堆栈模拟队列
- 网页常用JS代码
- HDU2039(基础题)
- 2016年,我们为什么要学习C++
- 1 介绍