引言
所谓系统性能是指系统资源被利用的程度。而影响系统性能的因素有很多,但是我们知道最关键的系统资源是CPU、内存、磁盘I/O和网络。从而我们知道对系统性能影响最大的四个因素也就是它们:
①CPU(处理器)
CPU资源主要是处理器速度及处理器数目。
②Memory(内存)
Memory资源主要是RAM速率、RAM大小、缓存、VMM性能。③磁盘I/O(磁盘输入、输出)
磁盘I/O资源主要是disk转速、disk数目、I/O adpter的数目device driver和firmware新能。
④Network(网络)
Network资源主要是网卡性能、网络结构、网络应用软件的性能。在此我们只是对影响性能的四大因素做了简要的介绍。怎样利用工具或命令监控服务器的这四项指标,找出正在影响我们服务器性能的根源,从而改善影响服务器性能的因素,来提高服务器的运行性能,我们将在下面的内容进行逐一详细介绍。
1 CPU监控分析方法
在CPU监控分析方法中经常使用的命令有topas或vmstat,工具可以使用nmon工具。通过以上工具或命令,如果结果显示在一段时间内CPU占用率为100%,或即使没有达到100%,而是长时间高占用率,那我们如何把该进程找出来呢?
在vmstat报告中包含五大项分别是kthr(内核线程状态)、Memory(内存).page(页面故障和页面调度活动)、faults(每秒的陷阱和中断率的平均值)、cpu(cpu时间的占用率百分比),其中kthr的两列和cpu的四列非常有判断价值。
1.1 Kthr列的数据是在采样时间段内对队列中的内核线程数进行计算得到的平均值。
r列表示可运行的内核线程平均数目,包括正在运行的线程和等待CPU的线程。如果这个数字大于CPU的数目,那么至少有一个线程要等待CPU。等待cpu的线程越多,对性能的影响越大。
b列表示等待队列中的内核线程平均数,包括正在等待文件系统I/O的线程,或由于内存装入控制而被挂起的线程,如果block的值长时间连续非零,那就需要对cpu的运行状况做进一步的分析。
1.2 cpu列表示在改时间间隔内使用cpu时间的百分比。
us列显示了用户模式所消耗的cpu时间。当在用户模式下执行时,进程在它自己的应用程序代码中执行,不需要内核资源来进行计算、管理内存或设置变量。
Sy列详细显示了cpu在系统模式下执行一个线程所花时间的百分比,包括内核进程和其它需要访问内核资源的进程所消耗的cpu资源。如果一个进程需要内核资源,它必须执行一个系统调用,并因此被切换到系统模式从而可以使用该资源。例如,对一个文件的读或写操作需要内核资源来打开文件、寻找指定的位t和读写数据。
id列显示了没有未决本地磁盘I/O时cpu空闲或等待时间的百分比。
wa列详细显示了有未决本地磁盘I/O时cpu空闲的时间百分比。wa的值如果超过25%,就表明磁盘子系统可能没有被正确平衡,或者可能是磁盘工作负荷很重。
通过以上的详细介绍,可以了解vmstat可以监控系统,并形成报告,那么如何来确定哪个进程引起的cpu瓶颈呢,该如何查找问题的根源,可以通过下面几个实用的命令来帮助我们好的问题的所在。
1.2.,阶段性运行方法##ps sux(显示使用cpu,memory最多的进程)
#ps -eflsort +3 -rlhead -15(以第4列为基准降序排序,只显示前15个进程)
1.2.2持续运行一段时间的方法
使用tprof命令
#tprof-:sleep 60(找出进程的哪部分使用cpu)
除了上述方法外也可以通过一些简单的方法判断cpu是否存在瓶颈,例如使用vmstat命令,在single-user系统里,us+sy>90%,则表示cpu bound。或在mufti-user系统里,us+sy >80%,则表示cpubound。
总的来说,如果us+sy时间低于90%,则不认为该单用户系统epu受限制。但是,如果在一个多用户系统中us+sy时间超过80%,其中的进程将要花时间在运行队列中等待,响应时间和吞吐量会受到损害i对于这样的系统,我们应提高警惕。对于cpu性能可能存在瓶颈的系统,我们可以用tprof命令找出占用cpu时间最多的进程,用nice或renice命令调整用户进程优先级。
2 Memory监控分析方法
影响服务器运行系能的另一个重要因素是内存,检测内存使用的工具比较多,常用的命令有vmstat、svmon、lsps、topas等。Svmon主要用来观察进程是否存在内存泄露,执行Isps可以观察分页空间的使用情况,topas命令每秒刷新一次,能全面的观察到epu、memory、I/0和各进程使用资源的情况。下面详细介绍如何使用vmstat监测内存的使用情况。
在上面我们介绍了vmstat执行结果中的kthr列和cpu列,现在将关注memory列和page列。Vmstat命令概况了系统中所有进程使用的活动的虚拟内存,同时还有空闲列表上实际内存页的数量。在执行结果中memory列和口age列报告了关于内存的运行状况。下面对于memory列和page列的进行一下简单的介绍。
Memory列主要是关于使用虚拟内存和实内存的信息。如果虚拟页已经被访问的话,虚拟页可以被认为是活动的。一页为4096个
字节。其中avm列为活动的虚拟页面,即被分配在分页空间中的页面总数。需要注意这列高值并不代表性能差。Fre列为空闲列表RAM页面大小,需要注意的是大部分实内存都用文件系统数据的高速缓存。对于较小的空闲列表,也是正常的。
Page列主要是关于页面故障和页面调度活动,这些是间隔的平均值,以秒为单位给出。其中re表示页面调度程序输入/输出列表,pi表示从分页空间调入页面,po表示调出到分页空间的页面,fr表示自由的页面,sr表示被页面替换算法扫描的页面,cv表示被页面算法使用的时钟周期。
在了解memory和page各列数值表示的内容意义上,可以利用其结果对memory瓶颈进行初步的判断。正常情况下,r<5,b接近于0,fr的值和sr的值接近相同。fre最小值是120,如果fre的值<120,并持续一段时间,则表示有持续的paging in和paging out,即thrashing。Po/fr>1/h,则表示系统接近thrashing(h的值是来源于schedo一0 v_repage_hi命令)。Fr/sr=high,则表示系统缺少内存。如果pi和po的值持续非0,而不是偶尔为非O,则可能是memory bound。需要注意的是iostat命令中%iowait的值高,也表示系统缺少memory。
3 磁盘I/O监控分析方法
对于磁盘YO监控我们通常使用iostat命令,在iostat命令的输出结果中有%iowait、%idle、%tin_act这三个指标,它们可以给我们提供可靠的信息。下面对这三列值得具体含义做一些具体解析。%iowait表示中央处理器空闲但系统中尚有为解决的磁盘I/O请求的时间百分比。如果iowait时间的百分比很高,表明该磁盘输入输出(I/O)可能是导致系统运行速度缓慢的主要原因。
%idh表示中央处理器空闲且系统中没有未解决的磁盘I/O请求的时间百分比。
%tm_act表示物理磁盘繁忙程度的百分比,如果tin_act的值很高,表明物理磁盘存在I/0瓶颈。
我们了解了以上3个指标的具体含义,那么该指标到什么程度会影响到系统性能呢?我们继续做进一步的介绍,如果%tm_act>40%,则该磁盘处于busy状态;如果%iowait接近于O,仍可能是磁盘I/O bottleneck。这只会发生在系统在进行大量的paging,作paging的磁盘过于繁忙:如果%idle的值很高,且%iowait>25%表示不存在cpu bound,但可能是磁盘I/0 bound;%tm_act值高而磁盘传送率低,有可能是由于破裂的逻辑卷,文件系统或单个文件。
如果发现影响系统性能的因素来自磁盘I/O,那么定位到那些文件、逻辑卷、硬盘处于繁忙状态,就需要通过执行filemon命令了。
在系统I/O处于繁忙状态时运行下面的命令:
#filemon-u-O all_o/tmp/fmon.txt:sleep 30;trestop
30秒后会生成记录跟踪信息的文件/tmp/fmon.txt。从该文件中可以找出:
①最为繁忙的虚拟内存段、逻辑卷和物理卷;
②对页空间的读写次数,确认磁盘I/O是由于应用程序操作还是频繁换页操作。
③最为活跃的文件或逻辑卷,如果它们存放在繁忙的物理卷上,可以考虑将数据移至相对空闲的磁盘上,这样有助于提高性能。
4 Network监控分析方法
网络性能分析可以采用一个简答的方法,即比较法。比较涉及网络的操作和那些和网络无关的操作。如果正在运行的程序在进行相当距离的远程读取和写入,而且运行缓慢,但是其他操作看起来运行正常,这时候可能就是网络问题造成的。下面介绍一下我们可以利用来监控分析网络对性能造成影响的命令netstat。
Netstat命令其实这个命令在DOS系统里就出现了,是一个监控TCP/IP网络的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat的功能显示网络连接、路由表和网络接口这些信息,可以让我们得知目前都有哪些网络连接正在运作。如果输入数据包中的错误比输入数据包总数的1%还要大,Ierrs>0.01*Ipkts,那么就运行netstat—m命令来检查存储器的不足。如果输出数据包中的错误次数比输出数据包总数的1%还要大,Oerrs>O.Ol*Opkts,那么就为这个接口增加发送队列的大小。如果冲突的比率比10%和还要大,coll/Opkts>O.1,那么网络的使用率就比较高。
5 小结
在我们日常对小型机的维护和操作过程中可能会遇到很多问题,但是关于小型机系统性能优化主要考虑的无外乎CPU、内存、磁盘I/O、网络这几个因素。上面我们简单介绍了一些性能分析理论,我们在日常工作中可以利用这些工具简单去快速判断,发现问题,及时处理,提高日常维护操作水平及服务器性能,使系统在一个更加安全的环境中运行。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:浅析影响小型机性能的根源