您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 性能测试诊断分析与优化
激发个人潜能燃点企业动力性能测试诊断分析与优化陈能技嘉为IT培训学院培训讲师介绍•陈能技(18925189935@126.com)•11年软件测试与质量管理经验•著作:–《软件测试技术大全》–《.NET软件测试实战技术大全》–《QTP自动化测试最佳实践》–《软件自动化测试成功之道》–《性能测试诊断分析与优化》培训课堂的注意事项•培训中–积极、主动不仅使您获得更多的收获,也使培训讲师能有的放矢、保持激情。–持之以恒、集中精力,您收获的将不仅是知识;–请您记得将手机调至震动状态或关机,以免影响您的同学。•培训后–填写课程反馈表–删除桌面临时文件–关机培训后事项•填写课程反馈表•删除桌面临时文件•关机目录1.性能监控方法2.性能诊断分析与优化3.性能测试新兴技术介绍一、性能监控方法•操作系统层性能监控•Web服务器性能监控•中间件服务器性能监控1、操作系统层性能监控•CPU性能监控•内存性能监控•磁盘IO性能监控•网络性能监控•开源网络性能监控工具的应用•使用Spotlight监控操作系统CPU性能监控•查看CPU信息:–cat/proc/cpuinfo•Top•Vmstat23•Dstat-cip1•Mpstat-PALL1•Sar110•Pidstat-pPID25Top•使用方式:top[-][ddelay][q][c][S][s][i][n][b]•说明:即时显示process的动态•d:改变显示的更新速度,或是在交谈式指令列(interactivecommand)按s•q:没有任何延迟的显示速度,如果使用者是有superuser的权限,则top将会以最高的优先序执行•c:切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S:累积模式,会将己完成或消失的子行程(deadchildprocess)的CPUtime累积起来•s:安全模式,将交谈式指令取消,避免潜在的危机•i:不显示任何闲置(idle)或无用(zombie)的行程•n:更新的次数,完成后将会退出top•b:批次档模式,搭配n参数一起使用,可以用来将top的结果输出到档案内范例:显示更新十次后退出;top-n10将更新显示二次的结果输入到名称为top.log的档案里:top-n2-btop.logVmstat•r表示运行队列的大小•b表示由于IO等待而block的线程数量•in表示中断的数量•cs表示上下文切换的数量•us表示用户CPU时间•sys表示系统CPU时间•wa表示由于IO等待而是CPU处于idle状态的时间•id表示CPU处于idle状态的总时间DSTAT•dstat可以给出每一个设备产生的中断数•设备名和设备号的关系可以参考文件/proc/interruptsMpstat•mpstat可以显示每个CPU的运行状况,比如系统有4个CPU。我们可以看到:#mpstat–PALL1Linux2.4.21-20.ELsmp(localhost.localdomain)05/23/200605:17:31PMCPU%user%nice%system%idleintr/s05:17:32PMall0.000.003.1996.5313.2705:17:32PM00.000.000.00100.000.0005:17:32PM11.120.0012.7386.1513.2705:17:32PM20.000.000.00100.000.0005:17:32PM30.000.000.00100.000.00sar•%user列显示了用户进程消耗的CPU时间百分比。•%nice列显示了运行正常进程所消耗的CPU时间百分比。•%system列显示了系统进程消耗的CPU时间百分比。•%iowait列显示了IO等待所占用的CPU时间百分比•%steal列显示了在内存相对紧张的环境下pagein强制对不同的页面进行的steal操作。•%idle列显示了CPU处在空闲状态的时间百分比。•sar25//每隔2秒,显示5次,CPU使用的情况•sar支持保存成两种格式的文件,一种是文本文件,一种是二进制文件(只有通过sar自己的命令才能查看)–sar110data.txt–sar15-odata//每隔1秒,写入5次,将CPU使用的数据写入二进制文件data中。–sar-fdata//查看data文件Pidstat•监视某个进程的CPU使用情况•1.通过ps命令找到相应进程的PID:ps-e•2.使用pidstat命令监视进程,详细用法见:–pidstat25每隔2秒,显示5次,所有活动进程的CPU使用情况–pidstat-p313225每隔2秒,显示5次,PID为1643的进程的CPU使用情况显示–pidstat-p313225-r每隔2秒,显示5次,PID为1643的进程的内存使用情况显示内存性能监控•查看内存信息:–cat/proc/meminfo•Free–m•Vmstat210•Top•Psfree•$free-mtotalusedfreesharedbufferscachedMem:1002769232062421-/+buffers/cache:286715Swap:115301153第一部分Mem行:total内存总数:1002Mused已经使用的内存数:769Mfree空闲的内存数:232Mshared当前已经废弃不用,总是0buffersBuffer缓存内存数:62McachedPage缓存内存数:421M关系:total(1002M)=used(769M)+free(232M)第二部分(-/+buffers/cache):(-buffers/cache)used内存数:286M(指的第一部分Mem行中的used-buffers-cached)(+buffers/cache)free内存数:715M(指的第一部分Mem行中的free+buffers+cached)可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。vmstatvmstat•memory–swpd列表示切换到内存交换区的内存数量(以k为单位)。如果swpd的值不为0,或者比较大,只要si、so的值长期为0,这种情况下一般不用担心,不会影响系统性能。–free列表示当前空闲的物理内存数量(以k为单位)–buff列表示bufferscache的内存数量,一般对块设备的读写才需要缓冲。–cache列表示pagecached的内存数量,一般作为文件系统cached,频繁访问的文件都会被cached,如果cache值较大,说明cached的文件数较多,如果此时IO中bi比较小,说明文件系统效率比较好。•swap–si列表示由磁盘调入内存,也就是内存进入内存交换区的数量。–so列表示由内存调入磁盘,也就是内存交换区进入内存的数量。–一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示系统内存不足。需要增加系统内存。监控单个进程占用内存的情况•top-d1然后shift+m(Sortbymemoryusage)•Psaux|grepHoldMemoryMain•top-b-n1-p21642|tail-2|head-1|awk'{print$5}'•VIRT=SWAP+RES•VIRT进程使用的虚拟内存总量,单位kb•SWAP进程使用的虚拟内存中,被换出的大小,单位kb•RES进程使用的、未被换出的物理内存大小,单位kb磁盘性能监控•df-hlT•parted-l•Vmstat•iostat-d23•sar-d23•Iotop•pidstat•iodumpiostatiotoppidstat•pidstat-d1•pidstat-Ctest_io-t-d1iodump•wget•echo1/proc/sys/vm/block_dumproot@kanga:~#whiletrue;dosleep1;dmesg-c;done|perliodump^C#CaughtSIGINT.TASKPIDTOTALREADWRITEDIRTYDEVICESfirefox4450453825142870sda4,sda3kjournald210055105510sda4firefox2845218518500sda4kjournald782590590sda3pdflush31300300sda4,sda3syslogd24852020sda3firefox284142200sda4,sda3firefox284131100sda4firefox284101100sda4firefox283071100sda4firefox284511100sda4网络性能监控•ping•Netstat-i•Sar-nDEV13•Sar-nSOCK13•ifTop、ipTrafifTop开源性能监控工具的应用•Cacti、Nagios•Nmon•…Cacti•Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的监控工具,可以监控主机的状态和负载情况,添加相应的模板后,可以用来监控Apache、MySQL等服务器的运行状态。Nmon•Nmon是IBM提供的开源监控工具,可对AIX和Linux系统资源进行监控,可收集系统资源使用情况并输出到特定文件,并可利用Excel分析工具进行数据统计分析。使用Spotlight监控操作系统2、WEB服务器性能监控•IHS性能监控方法•HTTP连接状态监控•Web服务器吞吐量监控IHS性能监控•打开server-status监控•状态监控页面打开server-status监控LoadModulestatus_modulemodules/ApacheModuleStatus.dll#Allowserverstatusreports,withtheURLof状态监控页面•ScoreboardKey:_WaitingforConnection,SStartingup,RReadingRequest,WSendingReply,KKeepalive(read),DDNSLookup,LLogging,GGracefullyfinishing,.OpenslotwithnocurrentprocessWeb服务器网络连接监控•Linux下实时检测httpd连接数–watch-n1-dpgrephttpd|wc-l“•查看TCP并发连接情况:–netstat-n|awk'/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}'Web服务器网络连接监控3、中间件服务器性能监控•WAS性能监控•WAS自带监控工具的使用•perfServletApp的使用方法•LoadRunner监控WAS•使用AppDynamics监控WebSphere•JVM性能监控方法及工具•GC日志监控分析•ThreadDump•JVM远程监控•JDBC性能监控WAS性能漏斗模型WAS性能监控的方面•Session•线程池•JDBC连接•JVM性能WAS性能监控的方法和工具•WAS自带性能监控工具的使用•perfServletApp的使用方法•LoadRunner监控WASWAS自带性能监控工具的使
本文标题:性能测试诊断分析与优化
链接地址:https://www.777doc.com/doc-708648 .html