为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > WindowsIISSQLServer性能测试有关计数器监视及相应的分析方法@

WindowsIISSQLServer性能测试有关计数器监视及相应的分析方法@

2023-04-06 6页 pdf 584KB 5阅读

用户头像 个人认证

is_017931

热爱锻炼

举报
WindowsIISSQLServer性能测试有关计数器监视及相应的分析方法@有关windows资源计数器:%Processor所有进程线程使用处理器执行Time可判断CPU主要是消耗在应指令所花的时间百分比。用程序还是CPU本身。指处理器处于用户模式的时间Processor%UserTime百分比。%Privileged在特权模式下处理线程执行代Time码所花时间的百分比。ProcessorTime(主要的具体某个进程线程使用处理器查看主要的几个进程占用执行指令所花的时间百分比。的CPU。几个进程)ProcessPrivate(主要的bytes指某个进程不能与其他进程共查看主要的几个进程占用享的、已分...
WindowsIISSQLServer性能测试有关计数器监视及相应的分析方法@
有关windows资源计数器:%Processor所有进程线程使用处理器执行Time可判断CPU主要是消耗在应指令所花的时间百分比。用程序还是CPU本身。指处理器处于用户模式的时间Processor%UserTime百分比。%Privileged在特权模式下处理线程执行代Time码所花时间的百分比。ProcessorTime(主要的具体某个进程线程使用处理器查看主要的几个进程占用执行指令所花的时间百分比。的CPU。几个进程)ProcessPrivate(主要的bytes指某个进程不能与其他进程共查看主要的几个进程占用享的、已分配的当前内存的字节的内存。几个进程)数。SystemProcessorQueueLength处理器等待队列。判断是否存在CPU瓶颈。AvailableBytes可用的物理内存量,此内存能立它等于分配给待机(缓存刻分配给一个进程或系统使用。的)、空闲和零分页列内存的总和。Pages/sec指为解决硬页错误从磁盘读取这个计数器是可以显示导或写入磁盘的速度。致系统范围延缓类型错误的主要指示器。PagesRead/sec取读磁盘以解析硬页面错误的Memory速度。PoolNonpaged指在非Bytes分页池中的字节数。非分页池是指系统内存(操作系统使用的物理内存)中可供对象(指那些在不处于使用时不可以写入磁盘上而且只要分派过就必须保留在物理内存中的对象)使用的一个区域。%DiskTime指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。Avg.DiskQueueLength指读取和写入请求(为所选磁盘在实例间隔中列队的)的平均PhysicalDisk数。DiskReads/sec指在此盘上读取操作的速率。DiskWrites/sec指在此盘上写入操作的速率。Avg.DiskSec/transfer指以秒计算的一般磁盘传送所需时间。BytesTotal/sec是在每个网络适配器上发送和NetworkInterface接收字节的速率,包括帧字符在内。1/13相应的分析方法:一、内存1、查看AvailableMBytes。(memory)可用物理内存数。一般要保留10%的可用内存。最低不能<4M,此值过小可能是内存不足或内存泄漏。2、查看pagefaults/sec(memory)、pagesinput/sec(memory)及pagereads/sec(memory)。如果有个程序请求内存中的一页,但系统无法在所需的位置上找到它,就会构成一个分页错误。如果此页位于内存中的其它位置,则此错误便称为软件分页错误。如果必须从磁盘获取此页,则此错误便称为硬件分页错误。大部分的处理器可以处理大量的软件错误而不会引起任何后果。但是,硬件错误却会导致严重的延迟。「pagefaults/sec」是指处理器处理错误页包括硬件及软件分页错误()的整体速度。「pagesinput/sec」是指为了解决硬件分页错误而从磁盘读取的总页数。「pagesreads/sec」是指为了解决硬件分页错误而读取磁盘的次数。「pagesinput/sec」会大于或等于「pagereads/sec」,并且能够清楚地让您了解硬件分页错误率。如果这些数字都很低,则服务器应该可以快速地响应请求。如果很高,则可能是因为您用了太多的内存在缓存处理上,而没有留足够的内存供系统的其它部份使用。可以增加内存或降低缓存的ram大小来解决。详细:pageFaults/sec:只表明数据不能在内存的指定工作集中立即使用;pageInput/sec:pageinput/sec>pagereads/sec;pageReads/sec:阈值为>5.越小越好,大数值表示磁盘读而不是缓存读;Page/sec:指为解析硬页错误从磁盘读取或写入磁盘的页数(是PagesInput/sec和PagesOutput/sec的总和)。其值推荐00-20如果服务器没有足够的内存处理其工作负荷,此数值将一直很高。如果大于80,表示有问题(太多的读写数据操作要访问磁盘,可考虑增加内存或优化读写数据的算法),如果值比较低,说明Web服务器响应请求比较快,否则可能是服务器系统内存短缺引起(也可能是缓存太大,导致系统内存太少)。3、查看PoolNonpaged(Memory)计Bytes数器的值。PoolNonpaged指在非分页Bytes池中的字节数,非分页池是指系统内存(操作系统使用的物理内存)中可供对象(指那些在不处于使用时不可以写入磁盘上而且只要分派过就必须保留在物理内存中的对象)使用的一个区域。缓慢增长表示存在内存泄漏问题。二、处理器1、%processortime(processor)、%usertime(processor)、%privilegedtime(processor)2/13%Processor指处理器执行非闲置线程时间的百分比Time;通俗一点讲就是CPU使用率。这是监视处理器活动的主要指示器。它通过在每个范例间隔中衡量处理器用于执行闲置处理线程的时间,并且用100%减去该值得出。(每台处理器有一个闲置线程,该线程在没有其它线程可以运行时消耗周期)。可将其视为范例间隔用于做有用工作的百分比。正常值<90,此值过大表示处理器的性能已经不能应付程序的要求,要换更快的处理器。该数值持续超过90%,则表示此测试的负载对于目前的硬件过于沉重。排除内存因素,如果该计数器的值比较大,而同时网卡和硬盘的值比较低,那么可以确定CPU瓶颈。%UserTime指处理器处于用户模式的时间百分比。如果该值较大,说明应用程序或数据库需要进行优化。%Privileged是在特权模式下Time处理线程执行代码所花时间的百分比。2、processorqueue(system)lengthProcessorQueue:是指处理列队Length中的线程数。显示在由Web服务器所有处理器共享的队列中等待执行的线程数。如果处理器列队中总是有2个以上的线程通常表示处理器堵塞。参考值:小于2。处理器瓶颈会导致该值持续大于。2三、网络1、bytestotal/sec(networkinterface)。若要判定您的网络连接是否正在存在瓶颈,请比较「networkinterface:bytestotal/sec」计数器与您的网络适配卡总带宽。若要在传送量中留些空间供尖峰时间用,则不应常使用超过50%的容量。如果这个数字十分接近连接的容量,而处理器及内存的使用都很适中,则此连接也会是个问题。四、磁盘1、%processor(processortime),bytestotal/sec(networkinterface)connection及%disk(physicaldisktime)。PhysicalDisk\、Physical%DiskTimeDisk\Avg.Disk、Memory\QueuePages/sec(结果分Length析方法资料收集.doc)有不同说法。%DiskTime指所选磁%:盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。如果这三个计数器的值都很高,则硬盘不会引起站点的瓶颈。但是,如果「%disktime」的值很高,但处理器及网络连接并没有饱和,则硬盘可能会造成瓶颈。如果在您的服务器上没有启用「physicaldisk」计数器,请在Windows2000的命令行窗口中运行diskperf-yD。正常值<10,此值过大表示耗费太多时间来访问磁盘,可考虑增加内存、更换更快的硬盘、优化读写数据的算法。若数值持续超过80(此时处理器及网络连接并没有饱和),则可能是3/13内存泄漏。2、Avg.DiskQueue、PageLengthReads/sec指读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。正常值<0.5,此值过大表示磁盘IO太慢,要更换更快的硬盘。DiskTransfers/sec指在此盘上读取/写入操作速率。正常值<(DiskBytes/sec)/3,此值过大表示系统要求的IO速度已接近硬盘的最大速度,要更换更快的硬盘。PageReads/sec和%Disk及TimeAvg.DiskQueue。如果页面读取操作速Length率很低,同时%Disk和TimeAvg.DiskQueue的值很高,则可能有磁盘瓶径。但Length是,如果队列长度增加的同时页面读取速率并未降低,则内存不足。有关IIS应用服务器计数器:requests/sec每秒执行的请求数。requestsexecuting当前正在执行的请求数。Activerequestwait最近的请求在队列中等待的时间time(毫Server秒)。Pagesrequestexecuting执行最近的请求花费的时间(毫秒)。timerequestsqueued在队列中等待服务的请求数。Application应用程序重新启动的次数Restarts.RequestsQueued排队的请求数。Asp.netWorkerProcess辅助进程重新启动的次数。RestartsErrorsTotal错误总数。Requests/Sec每秒执行的请求数。Asp.netPipelineInstance指定的ASP.NET应用程序的活动请求ApplicationCount管线实例的数目。CacheTotal每秒对总缓存的添加数和移除数。TurnoverRateFileCacheFlushes自服务器启动后的文件缓存刷新数。IISFileCacheHits文件缓存中的成功查找总数。GLOABLEFileCacheHits文件缓存%命中数占全部缓存请求的比率。ProcessorTime(主要的具体某个进程线程使用处理器执行指查看主要的几个进程占Process令所花的时间百分比。用的CPU。几个进程)4/13Private(主要的bytes指某个进程不能与其他进程共享的、已查看主要的几个进程占分配的当前内存的字节数。用的内存。几个进程)ContextSwitches/sec计数器测量Web服务器计算机中的所System有CPU切换线程上下文的速率。maximumconnections是通过Web服务同时进行非匿名连接的最大用户数(从服务启动后)。totalconnection尝试通过Web服务进行连接的总数此计数器针对所有列出Web(从服务启动后)。的实例。attemptsServicecgirequests/sec每秒Web服务接收的CGI请求数。isapiextension执行最近的请求花费的时间(毫秒)。requests/secAvailableBytes可用的物理内存量,此内存能立刻分配它等于分配给待机(缓存给一个进程或系统使用。的)、空闲和零分页列表内存的总和。Pages/sec指为解决硬页错误从磁盘读取或写入这个计数器是可以显示磁盘的速度。导致系统范围延缓类型错误的主要指示器。PagesRead/sec取读磁盘以解析硬页面错误的速度。PoolNonpaged指在非分页Bytes池中的字节数。非分页池是指系统内存Memory(操作系统使用的物理内存)中可供对象(指那些在不处于使用时不可以写入磁盘上而且只要分派过就必须保留在物理内存中的对象)使用的一个区域。CacheBytes显示「文件系统缓存」的大小。pagefilebytes:total系统上分页文件的大小。%DiskTime指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。Avg.DiskQueue指读取和写入请求Length(为所选磁盘在实例Physical间隔中列队的)的平均数。DiskDiskReads/sec指在此盘上读取操作的速率。DiskWrites/sec指在此盘上写入操作的速率。Avg.DiskSec/transfer指以秒计算的一般磁盘传送所需时间。5/13NetworkBytesTotal/sec是在每个网络适配器上发送和接收字Interfac节的速率,包括帧字符在内。e与性能有关系的参数调整:1、查看requests/sec、requestsexecuting、requestwaittime、requestexecutingtime、requests(activequeuedserver)。pages「activeserverpages︰requests/sec」不含静态文件或其它动态内容的请求,它会根据asp网页的复杂度及您web服务器的容量明显地变动。如果这个计数器在服务器上的传输量处于尖峰期间出现低值的话,则您的应用程序可能会导致瓶颈。「requestsexecuting」显示目前正在执行的请求数目;「requestwaittime」显示最近的请求在队列中等待的毫秒数;「requestexecution」显示最近的请求花在执行上的毫time秒数。理想的状态是「requests」及「queuedrequestwait」应保持接近time0,但它们会在不同的载量下起伏变动。最大「requests」数目是queued由asprequestqueuemax的metabase设置来决定。如果达到此限制,则客户端浏览器将显示[http服务器500/太过忙碌]。此时,若请求的执行时间「requestexecution」很短,而且在队列中的time时间「requestwait」time很短,则可以考虑增加asprequestqueuemax限制值(默认请求限制3000个)。(如果「requests」executing、「requests」都较小queued,而CPU的使用率较高,则可以减小aspprocessorthreadmax的值,看一下性能是否有所提高)如果这些数字大幅偏离了预计的范围,则您的asp应用程序可能必须重写才能提高性能。如果「requestsexecuting」的值是高的、「requestsqueued」是大的,而CPU的使用率是较低的,则可能必须增加aspprocessorthreadmax。2、查看Requests(Asp.netQueued)计数器的值。队列中等待服务的请求的数目。当该数开始随客户端负载线性增加时,Web服务器计算机已达到能同时处理的请求数的上限。该数的默认最大值为5,000。若达到最大值,可以在计算机的Machine.config文件中更改此设置。3、查看pagefaults/sec(memory)、pagesinput/sec(memory)及pagereads/sec(memory)。如果有个程序请求内存中的一页,但系统无法在所需的位置上找到它,就会构成一个分页错误。如果此页位于内存中的其它位置,则此错误便称为软件分页错误。如果必须从磁盘6/13获取此页,则此错误便称为硬件分页错误。大部分的处理器可以处理大量的软件错误而不会引起任何后果。但是,硬件错误却会导致严重的延迟。「pagefaults/sec」是指处理器处理错误页包括硬件及软件分页错误()的整体速度。「pagesinput/sec」是指为了解决硬件分页错误而从磁盘读取的总页数。「pagesreads/sec」是指为了解决硬件分页错误而读取磁盘的次数。「pagesinput/sec」会大于或等于「pagereads/sec」,并且能够清楚地让您了解硬件分页错误率。如果这些数字都很低,则服务器应该可以快速地响应请求。如果很高,则可能是因为您用了太多的内存在缓存处理上,而没有留足够的内存供系统的其它部份使用。您可能必须在服务器上添加ram的容量,但是降低缓存的大小也是可行的。4、查看cachebytes(memory)、filecachehits%(internetinformationservicesglobal)、filecacheflushes(internetinformationservicesglobal),及filecachehits(internetinformation。servicesglobal)第一个计数器「memory:cachebytes」显示「文件系统缓存」的大小,其默认为最多使用50%的可用物理内存。由于当缓存的内存快要不足时,iis会自动调整它,所以请留意这个计数器行进的方向。第二个计数器是缓存存取次数与缓存请求总数的比例,它会反应出此「iis文件缓存」的设置表现的好不好。对于主要由静态文件组成的网站来说,80%以上的缓存存取次数应是个不错的数字。请比较最后两个计数器的文件「iisglobal:file」(自cache服务器启动后flushes的文件缓存刷新数)及「iisglobal︰filecache」(文件缓存hits中查找成功的总数),以判定您是否正以适当的速度将对象从您的缓存清除。如果清除发生太快,则对象可能会比其应有的频率更常从缓存中清除出来。如果清除发生太慢,就会浪费内存。请参阅中关于objectcachettl、memcachesize及maxcachedfilesize对象的说明(通过调整iismetabase内容)。5、contextswitch/sec:dllhost#n(thread),contextswitchs/sec:inetinfo=>thread#(thread),contextswitches/sec(system)。如果决定增加线程缓冲池的大小,便应该监视这里列出的三个计数器。增加线程数目可能会增加内容切换的数目,因而造成性能不增反降。每一个请求有10个或以上内容切换就已经是相当高的数字了;如果出现这些数字,请考虑降低线程缓冲池大小。想通过测量连接及请求来得出线程及整体性能之间的平衡点是不容易7/13的。每次当您调整线程时,请接着监视整体性能,以检查性能是增进还是降低。若要判定是否应该调整线程计数,请将进程中的每一个线程数目和处理器时间拿来和总处理器时间作比较。如果线程持续忙碌,但并没有使用全部的处理器时间,则建立更多线程对性能会有帮助。不过,如果所有线程都很忙,而且处理器已快接近最大容量,则最好将载量分配给更多服务器,而不要增加线程的数目。请参阅本文中〈附录︰性能设置〉1的aspthreadgateenabled及aspprocessorthreadmax属性。metabase6、maximumconnections(webservice)及totalconnection(webattemptsservice)。有关最大连接数。如果您正在计算机上执行的其他服务也使用网络连接,则应监视「webservice:maximumconnections」及「webservice:totalconnectionattempts」计数器,以检查您的web服务器是否能够尽可能地使用它需要的连接数目。请记得将这些数字与内存及处理器使用量作比较,如此才能确定连接就是问题,而不是其它组件有问题。……其它关于IIS的调优设置—1、选用“HTTP压缩”,压缩文件、压缩静态文件。2、connectiontimeout-这个属性会指定服务器在中断一条非使用中的连接之前,将等待的秒数。默认值是900(15分钟)。因为开启的连接会降低性能,所以请考虑降低此值,并监视您的服务器在改变之后会有什么效果。与程序、编码有关系的性能调整:1、cgirequests/sec(webservice)及isapiextension(webrequests/secservcie)。会报告您的服务器是以哪个速度处理cgi及isapi应用程序请求。如果这些值在负载增加时降低,则可能必须请求应用程序开发人员重新检查他们的程序代码。2、Application、WorkerRestartsProcess(Asp.netRestarts)。ApplicationRestarts—应用程序重新启动的次数.Web服务器的生存期中应用程序重新启动的次数。应用程序重新启动的次数随每次发生Application_OnEnd事件增加。由于Web.config文件的更改、存储在应用程序\bin目录中的程序集的更改或者Web窗体页的过多更改,均可能导致发生应用程序重新启动。此计数器的意外增长可能意味着无法预料的问题正导致您的Web应用程序关闭。在这种情况下,应尽快进行调查。WorkerProcess—辅助进程Restarts重新启动的次数。服务器计算机上辅助进程重新启动的次数。如果辅助进程意外地失败或者被有意地回收,则能够被重新启动。如果该计数器的值意外增加,应尽快进行调查。8/13注意:每次重新启动Internet信息服务(IIS)主机时都会重置该值。3、看Errors(Asp.netTotalApplication)计数器的值。错误总数。执行HTTP请求过程中发生的错误总数。包括所有分析器错误、编译错误或运行时错误。此计数器为ErrorsDuring、ErrorsCompilationDuring和PreprocessingErrorsDuring计数器的总和。正常运行的ExecutionWeb服务器不应发生错误。如果ASP.NETWeb应用程序中发生错误,它们可能会歪曲任何吞吐量结果,因为错误恢复的代码路径与原来的完全不一样。在性能测试前应调查并修复应用程序中的所有错误。4、看ContextSwitches/sec(System)、%processor(processortime)计数器的值。ContextSwitches/sec计数器测量Web服务器计算机中的所有CPU切换线程上下文的速率。此计数器的高数值通常说明存在高的锁争用,或是线程在用户模式与内核模式之间有大量切换。可能需要使用采样分析器和其他工具进一步研究。如果系统的吞吐量降低并且CPU的使用率很高,并且此现象发生时切换水平在15000以上,那么意味着上下文切换次数过高。5、查看CacheTotalTurnover(Asp.netRateApplication)计数器的值。CacheTotalTurnover高周转率可能说明存在Rate问题。可能原因:缓存中有容易重新计算和很少使用的项或给缓存的项分配的有效期太短。6、查看PoolNonpaged(Memory)Bytes计数器的值。PoolNonpaged指在非分页池Bytes中的字节数,非分页池是指系统内存(操作系统使用的物理内存)中可供对象(指那些在不处于使用时不可以写入磁盘上而且只要分派过就必须保留在物理内存中的对象)使用的一个区域。缓慢增长表示存在内存泄漏问题。……SQLSERVER数据库服务器计数器:Sqlclient:Current#pooledandnonpooled.NETCLRconnectionsDataSqlclient:Current#pooledconnections9/13Sqlclient:peak#pooledconnectionsSqlclient:Total#failedconnectsSqlclient:Current#connectionpools缓冲命中率可在高速缓存中找到而不经过很长时间后,这一比率的变化很需要从磁盘中读取的页的小。由于从高速缓存中读数据比从磁百分比。这一比率是高速缓盘中读数据的开销要小得多,一般希存命中总数除以自SQL望这一数值高一些。通常,可以通过Server实例启动后对高速增加SQLServer可用的内存数量来缓存的查找总数。提高高速缓存命中率。页读出/秒每秒发出的物理数据库页由于物理I/O的开销大,可以通过SQLServer读取数。这一统计信息显示使用更大的数据高速缓存、智能索—缓存管理的是在所有数据库间的物引、更高效的查询或者改变数据库设理页读取总数。计等方法,使开销减到最小。页写入/秒所发出的物理数据库页写入的数目。目标页缓冲池中理想的页的数目。全部页缓冲池中页的数目(包括数据库、可用页和被盗用页)UserConnections用户连接数。由于每个用户连接都消耗一些内存,SQLServer配置的用户连接数过高会影响吞吐General量。将用户连接数设置为预期的最大Statistics并发用户数。连接内存(KB)服务器正在用来维护连接的动态内存总量。锁内存(KB)服务器用于锁的动态内存总量。SQLServerSQL高速缓冲内存(KB)服务器正在用于动态SQLMemory高速缓存的动态内存总数。Manager总的服务器内存(KB)服务器当前正在使用的动态内存总量(以KB为单位)。目标服务器内存(KB)服务器正打算使用的动态内存总量AverageWaitTime每个导致等待的锁请求的SQLServer(ms)平均等待时间(毫秒)。LocksLockRequests/sec锁管理器每秒请求的新锁和锁转换数。10/13Numberof每秒导致死锁的锁请求数。Deadlocks/secBatch每秒收到的Transact-SQL批请求数值高意味着吞吐量很好。Requests/sec命令批数。这一统计信息受所有约束(如I/O、用户数、高速缓存大小、请求的复杂程度等)影响。SQLSQLCompilations/sec每秒的SQL编译数。表示SQLServer用户活动稳定后,该值Server:SQL编译代码路径被进入的次也达到某一稳定状态。Statistics数。包括由于重新编译而进行的编译。SQL每秒的SQL重新编译数。一般来说,重新编译计数器最好保持Re-Compilations/sec计算重新编译被触发的次较低数值。数。ProcessorTime(主要具体某个进程线程使用处查看主要的几个进程占用的CPU。理器执行指令所花的时间的几个进程)百分比。Private(主要bytes指某个进程不能与其他进查看主要的几个进程占用的内存。Process程共享的、已分配的当前内的几个进程)存的字节数。ThreadCountSqlserver的线程数。查看线程数。(sqlservr)ContextSwitches/sec计数器测量Web服务器计此计数器的高数值通常说明存在高的锁争用,或是线程在用户模式与内System算机中的所有CPU切换线核模式之间有大量切换。可能需要使程上下文的速率。用采样分析器和其他工具进一步研究。AvailableBytes可用的物理内存量,此内存它等于分配给待机(缓存的)、空闲和能立刻分配给一个进程或零分页列表内存的总和。系统使用。Pages/sec指为解决硬页错误从磁盘这个计数器是可以显示导致系统范读取或写入磁盘的速度。围延缓类型错误的主要指示器。PagesRead/sec取读磁盘以解析硬页面错误的速度。MemoryPoolNonpaged指在非分Bytes页池中的字节数。非分页池是指系统内存(操作系统使用的物理内存)中可供对象(指那些在不处于使用时不可以写入磁盘上而且只要分派过就必须保留在物理内存中的对象)使用的一个区域。CacheBytes显示「文件系统缓存」的大小。11/13pagefilebytes:系统上分页文件的大小。total%DiskTime指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。Avg.DiskQueue指读取和写入请求(为所选磁盘在实例间隔中列队的)Length的平均数。Physical指在此盘上读取操作的速DiskDiskReads/sec率。DiskWrites/sec指在此盘上写入操作的速率。Avg.Disk指以秒计算的一般磁盘传送所需时间。Sec/transfer是在每个网络适配器上发NetworkBytesTotal/sec送和接收字节的速率,包括Interface帧字符在内。相应的分析方法:有关参数调整:1、首先看Available计数器的值。Kbytes若可用内存不多(小于50兆),说明有其它应用程序抢占内存,此时可以考虑增大SQLSERVER的使用内存,看是否可以提升性能。增大有关SQLSERVER使用内存方法:a.通过调整属性,保留适量的可用内存,调整“SQLServer内存的最大值、最小值”,可以增大最小可用内存。b.增大“最小查询内存”;c.如果物理内存大于4G,可以考虑启用AWE。2、查看Committed计数器的值Bytes(使用的内存总数)若大于物理内存,则可采用1的方法解决。3、查看pagefilebytes:total(process)若超过2倍的物理内存。解决方法同1。4、查看Available、全部Kbytes页、目标页计数器的值。Available较小,Kbytes且全部页已经接近目标页的值,则可以考虑将Bufferpool(sqlserver可用的内存)缩小,释放一些内存。通过设置最小服务器内存和最大服务器内存。5、看缓存命中率、页写入/秒、页读出(SQLSever|缓冲管理器)计数器的值。Buffercatchhitratio计数器的值应该稳定的保持较高的数值,同时PageReads/sec、PageWrites/sec计数器的值应该很低。如果Buffercatchhitratio计数器的值较低,且PageReads/sec、PageWrites/sec计数12/13器的值较高。可以得出缓存命中率较低,可以考虑增加Bufferpool,增加内存用于数据高速缓存。6、查看Thread(sqlservrCount):process计数器的值。SQL默认的最大工作线程为SERVER255,若该计数器的值小于255,可以考虑将SQLSERVER的最大工作线程改为一个较小的值,有可能提高性能。7、查看UserConnections(SQLServerGeneral)计数器的值。Statistics由于每个用户连接都消耗一些内存,配置的用户连接数过高会影响吞吐量。将用户连接数设置为预期的最大并发用户数。8、调整虚拟内存的大小。因为虚拟内存使用时,是耗物理内存的。一般大小设置位物理内存的2.5~4倍。9、增加纤程并行可以提高执行效率,但是也可能引起CPU高利用率。解决办法之一:利用增加纤程或者增加CPU。可以更新,安装一些相应的补丁,增加并行的操作能力。……有关程序设计、代码编写:1、查看AverageWaitTime(ms)、LockRequests/sec、NumberofDeadlocks/sec(SQLServer|Locks)计数器的值。若LockRequests/sec数值较大,会引起上下文切换增加,若LockRequests/sec、NumberofDeadlocks/sec的值较大,可以得出软件系统存在死锁及长时间锁等待情况,可以考虑修改有关锁的程序。2、查看ContextSwitches/sec(System)、%processor(processortime)计数器的值。ContextSwitches/sec计数器测量Web服务器计算机中的所有CPU切换线程上下文的速率。此计数器的高数值通常说明存在高的锁争用,或是线程在用户模式与内核模式之间有大量切换。可能需要使用采样分析器和其他工具进一步研究。如果系统的吞吐量降低并且CPU的使用率很高,并且此现象发生时切换水平在15000以上,那么意味着上下文切换次数过高。3、查看BatchRequests/sec、SQLCompilations/sec、SQLRe-Compilations/sec(SQLSever|SQLStatistics)计数器的值。BatchRequests/sec数值较低,且SQLCompilations/sec、SQLRe-Compilations/sec保持较高数值,可以得出软件系统存在大量的编译及重编译现象。会占用较多的CPU利用率。4、查看PoolNonpaged(Memory)Bytes计数器的值。PoolNonpaged指在非分页池Bytes中的字节数,非分页池是指系统内存(操作系统使用的物理内存)中可供对象(指那些在不处于使用时不可以写入磁盘上而且只要分派过就必须保留在物理内存中的对象)使用的一个区域。缓慢增长表示存在内存泄漏问题。……13/13
/
本文档为【WindowsIISSQLServer性能测试有关计数器监视及相应的分析方法@】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索