能测试知多少--系统计数器与硬件分析

性能计数器(Performance Counter),也叫性能监视器。一个人健康状况如何,我们通过对其做各项体检获得相关的状况指标,如血压、心跳,肺活量等。那么在做性能测试过程中,整个系统的软硬件进行监控也必不可少,监控所获得的数据也是我们分析系统性能的主要依据。

  在整个系统中,对于不同的软件和硬件,我们对其监控的指标也不一样,就像一个公司中的所有人员,其每个人的职责不同,评判和考核的标准也是不一样的。下面将从系统的各个方面进行分析。

  操作系统性能计数器

  操作系统监控器,主要监控操作系统级别上的系统性能表现,这里分析最常见的windows操作系统与Linux操作系统。

  window 操作系统的主要性能计数器

  Windows操作系统的性能监控:

  Window系统下的计数器比较多,主要技术器如下:

字体:        | 上一篇 下一篇 | 打印  | 我要投稿 

  Linux/UNIX 操作系统的主要性能计数器

  Linux系统的命令和UXIN的有些差别,在UNIX系统下的主要计数器监控命令是vmstat、iostat、top、sar、sag(图形方式,需要XServer 支持);而在linux中,没有isostat命令。另外他们的输出结果也稍有差别。

  上面罗列了windows与linux系统下的性能计数器,分析一个操作系统的性能,应该查看哪些指标。那么操作系统的载体是系统硬件。那么硬件的性能直接影响着操作系统的性能。下面就简单分析一下系统的硬件。CPU、内存、磁盘。

  CPU分析

  CPU的性能对于计算机整体的性能起着主导作用。对于早期对计算机甚至直呼其CPU的型号,如 386 、486、奔三,奔四。

  那么我们CPU性能最直接的评估就是查看其CPU工作频率,就是CPU的时钟频率,单位为是Hz。随着CPU的发展,主频由MHz现在的GHz

  (1GHz=1000MHz=1000000KHz=1000000000Hz)

  处理器除了主频指标外,还有另外两个密切相关的概念:倍频与外频。外频是cpu的基准频率,单位是MHz。外频是 CPU与主板之间同步运行的速度,而且目前的绝大部分计算机系统中外频与是内存与主板之间的同步运行速度,在这种方式下,可以理解为CPU的外频直接与内 存相连通。实现两都的同步运行状态;倍频即主频与外频之间的倍数。

  主频 = 外频 * 倍数

  如何真对CPU进行分析?

  1)查看System\%Total Processor Time 性能计数器的计数值。

  该计数值用于体现服务器整体的处理利用率,对于多处理器来讲,该数值体现的是所有CPU的平均利用率。如果该数值大于持续大于90% ,表示CPU有可能存在平静。

  2)查看每个CPU的Processor\%User Time

  Processor\%User Time是指系统的非核心消耗的CPU时间,如果该值较大,可以考虑通过算法优化来降低该值。如果该服务器是数据库服务 器,Processor\%User Time值大的原因很可能是数据库的排序或是函数操作消耗了过多的CUP时间,此时可以考虑对数据库进行优化。

  3)查看Processor\%Processor Time 和 System\Processor Queue Length

  查看System\Processor Queue Length 计算器,当该计数器的值大于CUP数量的总数加1时,说明CPU产生了赌塞。但产生赌塞时,Processor\%Processor Time的值不一定很大,此时就必须查看CPU赌塞的原因。

  4)查看%DPC Time

  %DPC Time 是另一个需要关注的内容,该计数值越低越好。在多CPU系统中,如果该值大于50% 并且Processor\%Processor Time值非常高,则考虑加一个网卡来提高性能。

  磁盘I/O分析

  硬盘应该是计算机硬件中发展最慢的设备,很多常见瓶颈都是由于硬盘的读/写速度慢导致的。提高硬盘读/写性能无非是 提高转速、提高单碟容量,增加缓存和更新接口,因为传统的硬盘是物理旋转读写数据,所以转速的提高相当困难;而提高单碟容量也存在一写的技术瓶颈,1TB 的单碟的容量想要突破还也需要时间。

  对于传统的温氏硬盘到现在速度也只能达到120MB/s的读取速度,这个速度还真对大文件的读写,而对于服务器大量 4KB的小文件读/写速度,会惊人的下跌至1MB不到,而对应的IOPS(每秒磁盘的读/写次数)会低得可怜,大量的数据都在排队从硬盘上读取到内存中, 再利用内存的超大带宽完成操作。这也是为什么内存大的系统比较快的原因。但内存的速度虽然比硬盘快得多,也有其致命的缺点,一旦断电,内存中的数据将全部 丢失。

 IOPS(Input/Output Per Second)每秒磁盘的输入/输出量(或读/写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位。

  另一个重要指标是数据吞吐量(Throughput),指单位时间内可以成功传输的数据数量。对于大量顺序读/写应用,则更关注吞吐量指标。

  传统的温氏硬盘完成一个I/O请求所花费的时间包括 寻道时间、旋转延迟和数据传输时间三部分。

  * 寻道时间,是指将读写磁头移动至正确的磁道上所需要的时间。目前磁盘的平均寻道时间一般在3~15ms

  * 旋转延迟,是指盘片旋转将请求数据所在扇区移至读/写磁头下方所需要的时间。7200转速的磁盘,平均旋转言辞大于为60 * 1000/7200/2=4.17ms

  * 数据传输时间,是指完成传输所请求的数据所需要的时间。目前SATA II 可达到300MB/s的接口数据传输速率。数据传输时间通常远小于前两部分时间。

  如何分析磁盘I/O

  1)与 Processor/Privileged Time 合并进行分析。

  如果在Physical Disk 计算器,只有%Disk Time 值较大,其它值都比较适中,则硬盘可能会是瓶颈。若几个值都比较大,且数值持续超过80% ,内里可能是内存泄漏。

  2)根据Disk sec/Transfer 进行分析

  一般来说,定义Transfer 数值小于15毫秒为优秀,介于15~20毫秒之间为良好,30~60毫秒之间为可以接受,超过60毫秒则需要考虑更换硬盘或硬盘的RAID方式。(注意:各种不同的RAID其计算方式也不完全相同)

  固态硬盘SSD是一种电子装置,避免了传统硬盘在寻道和旋转上的时间花费,存储单元寻址开销大大降低,因些IOPS可以非常高。

  内存分析

  为什么固态硬盘的无法做到内存的存取速度呢?这是因为ROM固态硬盘和RAM内存的实现原理不同导致的。

  内存的发展速度已经达到了第五代DDR内存(一般用于显卡上),而我们通常主板上的使用的都是第三代DDR内存,内存的主要性指标是在读写/带宽上,而影响带宽上的指标主要是内存通道及内存频率。

  现在常见的内存一般型号为DDR3 1333MHz ,我们可以通过更换更高频率或更低时序的方式来提升内存的带宽。(内存时序是描述内存条性能的一种参数)

  内存频率比较好理解,现在“发烧”级别的内存频率可以做到2400MHz,相对于1333MHz的默认频率几乎有了一倍的提升,这种频率的提升,可以换来带宽从16GB到24GB的提升,如果再能降低时序,那么结果会进一步提升。(关于内存时序概念请参考其它文献)。

 另外一个提升策略就是通道,简单来说就是让多根内存并行和内存控制器进行交互,从而成倍地提升吞吐能力。对于内存比较了解的朋友,双通道、三通道甚至四通道这些名词应该不会陌生。

  内存分析指标

  1)查看Memory\Available Mbytes指标。

  这个计数器是描述系统可用内存的直接指标,在对系统进行操作系统级别的内存分析时,首先通过这个指标建立一个初步的印象,了解性能测试过程中系统是否仍然有足够的内存可用。

  如果这个指标的数据比较小,系统可能出现了内存方面的问题。

  2)Pages/sec、Pages Read/sec 和Page Faults/sec指标

  操作系统经常会利用磁盘交换的方式提高系统可用的内存量或内存的使用效率。这三个指标直接反映了操作系统进行磁盘交换的频度。

  如果Pages/sec 的计数器持续高于几百,很可能会有内存方面的问题产生,但Pages/sec的值很大不一定表明内存有问题,而可能是运行使用内存映射文件的程序所导致。 Page Faults/sec 值表示每秒发生页面失效的次数,页面失效次数越多,说明操作系统向内存读取的次数越多。些时还需要查看Pages Read/sec 的计数值,该计数器的阀值为5,如果计数值超过5,则可以判断内存存在问题。

  3)根据Physical Disk计数器的值分析性能瓶颈

  Physical Disk 计数器的分析包括对Pages Read/sec和 %Disk Time及Average Disk Queue Length 的分析。如果Pages Read/sec 很低,同时%Disk Time和Average Disk Queue Length 的值很高,则可能有磁盘瓶颈。但是,如果队列长度增加的同时 Page Read/sec 并未降低,则是由于内存不足。

  ------------------------------

  由于篇幅问题,进程分析,网络分析被遗漏,后面有必要的话会进行补充。

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-16 01:25:03

能测试知多少--系统计数器与硬件分析的相关文章

电脑硬件分析Ultimate Boot CD v4.1.1 下载_常用工具

Ultimate Boot CD是一款可以引导系统的电脑硬件分析.检测.维护工具合集的光盘镜像文件.提供硬盘分析.管理.内存管理.基于Linux的系统恢复.杀毒.硬件检测.NTFS分区读取.PC启动引导和Freesco等等功能,是一款不错的电脑维护工具. 更新:http://www.ultimatebootcd.com/history.html官网: http://www.ultimatebootcd.com 官方下载:ftp://192.231.203.131/diagnostics/ubcd

Linux 系统时钟(date) 硬件时钟(hwclock)

/********************************************************************* * Linux 系统时钟(date) 硬件时钟(hwclock) * 说明: * 今天测试发现系统时钟通过date命令设置好后,开机之后又回到了没有设置 * 的状态,那真是一个纳闷,查了资料才知道Linux时钟分为系统.硬件时钟. * * 2016-5-8 深圳 南山平山村 曾剑锋 *************************************

Linux中解决系统时钟和硬件时钟不一致的问题

在使用linux的过程中,可能遇到系统时候和硬件时钟不一致,即date,hwclock --show看到的时钟不一致. Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟.系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置.当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作. Linux中的所有命令(包括函数)都是采用的系统时钟设置

Win8系统关闭显卡硬件加速的方法

  Win8系统关闭显卡硬件加速的方法 1.在Win8系统中打开运行对话框,然后输入REGEDIT,打开注册表; 2.接着定位到:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlVideo{C2016678-61EF-4A63-AEDC-F0E05E68A311}000 (视显卡不同而会不同的); 3.查找Acceleration.Level这一键值,如果其值为0,那么表明其完全启用了显卡加速,在这里我们把值修改为5,表示完全禁用显卡加速; 键值说

Linux 系统下查看硬件信息命令大全

Linux 系统下查看硬件信息命令大全 有许多命令可以用来查看 Linux 系统上的硬件信息.有些命令只能够打印出像 CPU 和内存这一特定的硬件组件信息,另外一些命令可以查看多种硬件组件的信息. 这个教程可以带大家快速了解一下查看各种硬件设备的信息和配置详情的最常用的命令. lscpu lscpu命令能够查看 CPU 和处理单元的信息.该命令没有任何其他选项或者别的功能. lscpu 运行该命令会看到下面输出: lspci lspci是另一个命令行工具,可以用来列出所有的 PCI 总线,还有与

Linux系统中的硬件问题如何排查?

这篇教程的诞生过程实在相当纠结.很长时间以来我一直在考虑要不要写这么一篇东西,最主要的原因在于对硬件相关问题进行故障排查可能是计算机管理领域最棘手的工作.即使是经验相当丰富的用户有时也会遇上自己搞不定的状况,并在试图解决那些微妙.古怪.难以捉摸甚至无法确定的软硬件冲突困境时碰上钉子.想在网络上寻找答案?我们找到的很可能是上万个无关主题,最终在空荡荡的论坛上孤独徘徊.耗尽余生. 不过就个人来说,我自认为算是个自负的极客.对技术难题和写作手法都有相当的信心.今天我打算尽量与大家分享一些实用的技巧与处

stm32-基于STM32和18B20的温控系统代码和硬件电路

问题描述 基于STM32和18B20的温控系统代码和硬件电路 求大神 给一个方案 基于STM32和18B20的温控系统代码和硬件电路 控制一个加热电阻 温度维持在50℃. 急需~!不胜感激~~!

AIX系统怎么查看硬件信息

问题描述 AIX系统怎么查看硬件信息,比如内存,CPU,硬盘,网卡等. 解决方案 查看内存使用命令# lsdev -Cc memory或者 #bootinfo -r查看物理内存prtconf就可以查看系统所有的信息 cpu 内存 硬盘等.. 显示每一个CPU的频率#pmcycles -m查看机器型号,SN#uname -Mu百度上找找吧解决方案二:这个百度一下就有很多答案了http://bbs.doit.com.cn/thread-116698-1-1.htmlhttp://www.aixchi

蝉知企业门户系统 6.2 发布,新增随机区块的功能

大家好,蝉知企业门户系统6.2正式发布了. 蝉知企业门户系统是由业内资深开发团队开发的一款专向企业营销使用的企业门户系统,企业使用蝉知系统可以非常方便地搭建一个专业的企业营销网站,进行宣传,开展业务,服务客户.蝉知系统内置了文章.产品.论坛.评论.会员.博客.帮助等功能,同时还可以和微信进行集成绑定.功能丰富实用,后台操作简洁方便. 本次升级新增了随机内容区块等功能,优化内置主题,同时优化了大量细节,欢迎大家下载使用. 一.修改记录 实现随机内容区块 优化内置主题 导航可以设置展开的方式 将登录