各项硬件使用剖析(一)
各项硬件的资源,如CPU、内存、硬盘输入输出、网络带宽等等。在实际查看架构之前,先强调一个观念,不管是使用系统上哪一种资源,当使用率持续超过80%时,系统的性能一定会急速下滑,而不会显示线性关系,如下图所示:

 响应时间

               使用率        80%
           资源使用率与系统响应时间的关系
注:从《操作系统》的知识来理解,如果在多用户环境中cup的使用率大于80%,进程就会在运行队列中花费大量的等待时间,响应时间和吞吐量就会下降。
3.1,内存Memory
      通常系统中所发生的问题是由于内存不足所导致,这是较常见的。所以我们应该先监视内存,确认我们的服务器有足够的内存。若要执行 windows 2000 上的 iis 5.0(如MOD的web服务),一个专用web 服务器所需 ram 的最小容量是 128mb,但最好是 256mb 到 1gb。因为「iis 文件缓存」默认是使用最多一半可用的内存,因此备有的内存越多,「iis 文件缓存」就越多。 

  附注:windows 2000 advanced server 最多可支持 8gb 的 ram,但是「iis文件缓存」将不会利用 4gb 以上的 ram。
     所有在Windows系统执行的应用程序都以为自已最起码有2GB的连续内存(称之为虚拟内存),当应用程序的线程在存取内存时,操作系统会将其映射(mapping)到某块物理内存,若物理内存不足,操作系统就把物理内存中某些较少用到的区块写至硬盘,以空出该物理内存给当前需要的程序。
Available MBytes 可用物理内存数  
     说明:Available MBytes 是计算机上运行进程可用的物理内存数量,以兆字节为单位。通过计算清零、空闲和待命内存列表的内存空间总数而得到。空闲内存可以马上使用; 清零内存是由零值填满的内存页,用来防止后续进程获得旧进程使用的数据; 待命内存是从进程工作集(其物理内存)中删除然后进入磁盘的内存,但是该内存仍然可以收回。该计数器仅显示最后一次观察到的值; 不是平均值。
     技 术 :一般要保留10%的可用内存。最低最低不能<4M,此值过小可能是内存不足或内存泄漏;
     原 因 :因为IIS默认最多会使用50%的可用内存供文件缓存使用,所以要保留10%的可用内存(以供尖峰时间使用)。
     知识点:物理内存、虚拟内存、IIS文件缓存、清0内存(程序常发生的错误)、待命内存。

       
Page Faults/sec、Pages Input/sec、Page Reads/sec
    注(重要):导致严重的延迟原因:是因为硬件分页错误。
     说 明: Page Faults/sec 是指处理器处理错误页的综合速率。用错误页数/秒来计算。当处理器请求一个不在其工作集(在物理内存中的空间)内的代码或数据时出现的页错误。这个计数器包括硬错误(那些需要磁盘访问的)和软错误(在物理内存的其它地方找到的错误页)。许多处理器可以在有大量软错误的情况下继续操作。但是,硬错误可以导致明显的拖延。
Pages Input/sec 指为解决页错误从磁盘上读取的页数。(当处理需要不在其工作集或物理内存的任何地方的代码或数据,而需要从磁盘上检索时出现硬页错误)。
  Page Reads/sec 是指为解析硬页错误而读取磁盘的次数。(当处理请求的硬 页错误不在工作集和物理内存其它地方中的代码或数据,而必须从磁盘上检索时 就会出现硬页错误)。如果 Page Reads/Sec 比率持续保持为 5,表示可能内存不足(阈值为>5.越小越好)。

     可能引起页面错误的操作:应用程序向内存请求一个分页,但系统无法在所需的位置上找到它,就构成了一个页面错误。
     技 术:
         总述:可能涉及到

1,由于页交换而导致内存不足;

2,由于页交换而导致磁盘瓶颈;  当这些值很低时,服务器应该可以很快地响应请求;当这些值较高时,是因为你花了太多的内存在缓存处理上,而没有留足够的内存供系统的其它部份使用。可以增加内存或降低缓存的ram大小来解决;
         详细:
              page Faults/sec:只表明数据不能在内存的指定工作集中立即使用;
              page Input/sec: page input/sec > page reads/sec; 
              page Reads/sec: 阈值为>5.越小越好,大数值表示磁盘读而不是缓存读;
Page/sec:指为解析硬页错误从磁盘读取或写入磁盘的页数(是Pages Input/sec 和 Pages Output/sec 的总和)。其值推荐00-20如果服务器没有足够的内存处理其工作负荷,此数值将一直很高。如果大于80,表示有问题(太多的读写数据操作要访问磁盘,可考虑增加内存或优化读写数据的算法),如果值比较低,说明Web 服务器响应请求比较快,否则可能是服务器系统内存短缺引起( 也可能是缓存太大,导致系统内存太少)。

3.2,Processor
随着用户请求从网站获得快速的响应时间,以及在这些网站上不断增加的动态内容,需要利用到快速、有效的处理器用量。当一个或多个进程几乎耗尽所有处理器时,就会发生瓶颈,这会迫使准备好执行的进程线程必须在队列中等待处理器时间。
(web方面) windows 2000 及 iis 5.0 的最大性能增益来自于解决内存问题。在决定改变web 服务器上处理器的个数之前,请先排除内存问题,再监视下列「性能计数器」。
% Processor Time 指处理器执行非闲置线程时间的百分比;通俗一点讲就是CPU 使用率。这是监视处理器活动的主要指示器。它通过在每个范例间隔中衡量处理器用于执行闲置处理线程的时间,并且用100%减去该值得出。(每台处理器有一个闲置线程,该线程在没有其它线程可以运行时消耗周期)。可将其视为范例间隔用于做有用工作的百分比。
正常值<90,此值过大表示处理器的性能已经不能应付程序的要求,要换更快的处理器。该数值持续超过 90%,则表示此测试负载对于目前的硬件过于沉重。排除内存因素,如果该计数器的值比较大,而同时网卡和硬盘的值比较低,那么可以确定CPU 瓶颈。

Processor Queue Length:是指处理列队中的线程数。显示在由 Web服务器所有处理器共享的队列中等待执行的线程数。如果处理器列队中总是有2个以上的线程通常表示处理器堵塞。
参考值:小于2。处理器瓶颈会导致该值持续大于 2。


3.3, Physical Disk:
    因为 MOD的WEB(iis 5.0) 会将记录文件写入磁盘上,所以在一般磁盘活动中,甚至会有高达 100 % 的客户端缓存存取次数。一般来说,如果有记录以外的大量磁盘读取活动,即表示系统上有其它区域需要调整。例如,硬件分页错误会导致大量的磁盘活动,但它们表示 ram 不足。 

%Disk Time %:  指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。如果三个计数器都比较大,那么硬盘不是瓶颈。如果只有%Disk Time比较大,另外两个都比较适中,硬盘可能会是瓶颈。在记录该计数器之前,请在Windows 2000 的命令行窗口中运行diskperf -yD。正常值<10,此值过大表示耗费太多时间来访问磁盘,可考虑增加内存、更换更快的硬盘、优化读写数据的算法。若数值持续超过80 (此时处理器及网络连接并没有饱和),则可能是内存泄漏。

Pages per second :  每秒钟检索的页数。该数字应少于每秒一页。


如果这三个计数器(processor: % processor time, network interface connection: 

bytes total/secphysicaldisk: % disk time)的值都很高,则硬盘不会引起站点的瓶颈。

补充:
  Avg. Disk Queue Length 指读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。正常值<0.5,此值过大表示磁盘IO太慢,要更换更快的硬盘。
  Disk Transfers/sec 指在此盘上读取/写入操作速率。正常值<(Disk Bytes/sec)/3,此值过大表示系统要求的IO速度已接近硬盘的最大速度,要更换更快的硬盘。
    磁盘使用情况计数器和内存计数器(磁盘瓶颈or内存不足?):
Physical Disk\ % Disk Time 

Physical Disk\ Avg.Disk Queue Length 

例如,包括 Page Reads/sec 和 % Disk Time 及 Avg.Disk Queue Length。如果页面读取操作速率很低,同时 % Disk Time 和 Avg.Disk Queue Length的值很高,则可能有磁盘瓶径。但是,如果队列长度增加的同时页面读取速率并未降低,则内存不足。

   3.4, 网络容量、等待时间及带宽  
  测试目标:在系统试运行之后,需要及时准确地了解网络上正在发生什么事;什么应用在运行,如何运行;多少PC正在访问LAN或WAN;哪些应用程序导致系统瓶颈或资源竞争
作用
1,分析关键应用程序的性能
2,定位问题的根源是在客户端、服务器、应用程序还是网络
3,哪些应用程序占用大量带宽
  基本上,网络是客户端向服务器传送请求的线路。它花在您的服务器上来回传递这些请求及响应的时间,对用户能察觉的服务器性能来说是个最大限制因素之一。这种请求-响应的循环时间就称为等待时间,等待时间对于web 服务器管理员来说几乎是无法控制的。例如,您对 internet 上速度缓慢的路由器,或是客户端及服务器之间的物理距离所能作的处理实在不多。
   在主要是由静态内容组成的站点上,网络带宽最有可能是性能瓶颈的来源。即使是一般的服务器也可能用满一条 t3 连接 (45mbps) 或 100mbps fast ethernet 连接。测量有效带宽最简单的方法是判定您的服务器是以哪个速度传送及接收资料的。
Network Interface Bytes Total/sec: 为发送和接收字节的速率,包括帧字符在内。判定网络连接是否存在瓶颈。若要在传送量中留些空间供尖峰时间用,则不应常使用超过 50% 的容量。如果这个数字十分接近连接的容量,而处理器及内存的使用都很适中,则此连接也会是个问题。

参考值:该计数器的值和目前网络的带宽相除,结果应该小于50%。
如果您正在计算机上执行的其他服务也使用网络连接,请监视「web service: maximum connections」及「web service: total connection attempts」计数器,以检查您的web服务器是否能够尽可能地使用它需要的连接数目。请记得将这些数字与内存及处理器使用量作比较,如此才能确定连接就是问题,而不是其它组件有问题。
Connection Attempts/sec:Web服务尝试连接的频率。
Maximun Connections:“最大连接数”是和Web服务同时建立起来的最大连接数。

各项硬件使用剖析(一)---让你一眼就能区分瓶颈是Memory、processor ORdisk!的更多相关文章

  1. windows linux—unix 跨平台通信集成控制系统----系统硬件信息获取

    控制集成系统需要了解系统的各项硬件信息,之前我们设计的时候,习惯使用c函数来搞,后来可能发现程序的移植性收到了一些影响,比如unix内核的一些c函数在linux下面是没有的: 比如 苹果达尔文内核的如 ...

  2. 使用Prometheus监控Linux系统各项指标

    首先在Linux系统上安装一个探测器node explorer, 下载地址https://prometheus.io/docs/guides/node-exporter/ 这个探测器会定期将linux ...

  3. ubuntu查看硬件信息

    1,外部探针probe sudo apt-get install hwinfo 执行hwinfo获取系统信息 --short

  4. linux0.11内核源码剖析:第一篇 内存管理、memory.c【转】

    转自:http://www.cnblogs.com/v-July-v/archive/2011/01/06/1983695.html linux0.11内核源码剖析第一篇:memory.c July  ...

  5. Linux之RHEL6的开机流程分析

    开机——很多人觉得很简单的事情,只要按下电源开关,然后系统就会自然启动,没有什么需要学习的.其实不然,如果系统没有什么问题,可以正常登陆的时候,当然开机很简单.但更多的时候,我们需要知道当机子不能正常 ...

  6. Linux快速入门01-基础概念

    4年多前,刚到上海时报过一个关于Oracle的培训班,在那里接触到了Linux,不过一直都没真正去试着使用它.现在经过慢慢的成长,越来越觉得,Linux是每一个服务端工程师必须掌握的系统,即使是现在最 ...

  7. Oracle优化的几个简单步骤

    数据库优化的讨论可以说是一个永恒的主题.资深的Oracle优化人员通常会要求提出性能问题的人对数据库做一个statspack,贴出数据库配置等等.还有的人认为要抓出执行最慢的语句来进行优化.但实际情况 ...

  8. 开机流程与主引导分区(MBR)——鸟哥私房菜

    在前篇随笔中,已经谈到了CMOS与BIOS,CMOS是记录各项硬件参数(包括系统时间.设备的I/O地址.CPU的电压和频率等)且嵌入到主板上面的存储器,BIOS是一个写入到主板上的韧体(韧体是写入到硬 ...

  9. linux内核启动流程[转]

    启动流程一览 既然启动是很严肃的一件事,那我们就来了解一下整个启动的过程吧! 好让大家比较容易发现启动过程里面可能会发生问题的地方,以及出现问题后的解决之道! 不过,由於启动的过程中,那个启动管理程序 ...

随机推荐

  1. Mybatis结合Spring注解自己主动扫描源代码分析

    作为一个想做架构师的程序猿,必须是一个优秀的程序猿.在引入某一个框架的时候,必需要研究源代码,将新的开源框架的风险变为可控性. 1.Spring结合Mybatis最经常使用的配置. <!--理论 ...

  2. ajax传对象或者数组到后端

    ajax是无法直接传送对象或者数组,有些人自己处理的话,能够把数据依照自己的标准连接成一个字符串,然后到后端处理.可是数据的不确定性.导致有可能会出错.并且麻烦 事实上有开源的包,能够直接解释成jso ...

  3. Struts简单介绍

    一.在介绍struts之前,先来了解一下什么是MVC框架吧. 1.MVC介绍 MVC全名是Model View Controller.是模型(model)-视图(view)-控制器(controlle ...

  4. oc21--super

    // // Phone.h #import <Foundation/Foundation.h> typedef enum { kFlahlightStatusOpen, kFlahligh ...

  5. JavaScript和Java的区别

    一个是编译型语言(客户端平台必须有仿真器或解释器),一个是解析型语言(不经过编译,直接将文本格式的字符代码发送给浏览器解释执行). 虽然JavaScript与Java有紧密的联系,但却是两个公司开发的 ...

  6. 杂项-JAVA:MVP

    ylbtech-杂项-JAVA:MVP 简称:MVP 全称:Model-View-Presenter :MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Pres ...

  7. Dijkstra算法原理及证明(转)

    Dijkstra算法及其证明 算法: 设G是带权图,图中的顶点多于一个,且所有的权都为正数.本算法确定从顶点S到G中其他各个顶点的距离和最短通路.在本算法中P表示带永久标记的顶点的集合.顶点A的前驱是 ...

  8. 大数据学习之路------借助HDP SANDBOX开始学习

    一开始... 一开始知道大数据这个概念的时候,只是感觉很高大上,引起了我的兴趣.当时也不知道,这个东西是做什么的,有什么用,当然现在看来也是很模糊的样子,但是的确比一开始强了不少. 所以学习的过程可能 ...

  9. NOIP2011 day2 第一题 计算系数

    计算系数 NOIP2011 day2 第一题 描述 给定一个多项式(ax+by)^k,请求出多项式展开后x^n*y^m项的系数. 输入格式 共一行,包含5 个整数,分别为 a ,b ,k ,n ,m, ...

  10. AtCoder Beginner Contest 054

    1. A - One Card Poker 水题,直接输出大小. 2. B - Template Matching 暴力,每个位置枚举,比较. 3. C - One-stroke Path n的大小只 ...