好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

系统计数器与硬件分析

系统计数器与硬件分析

操作系统监控器,主要监控操作系统级别上的系统性能表现,这里分析最常见的 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  并未降低,则是由于内存不足。

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

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

 

分类:  性能测试思想

作者: Leo_wl

    

出处: http://HdhCmsTestcnblogs测试数据/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于系统计数器与硬件分析的详细内容...

  阅读:42次