版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、性能测试性能测试体系性能测试/性能测试体系性能测试/性能测试体系 PAGE 105 PAGE 105性能测试体系性能测试流程体系访问性能测试控制台编写目的规范Performance Tesing性能测试过程中的活动,明确测试活动流程和过程中各组织、角色的职责;使性能测试工作有章可循,控制测试活动按照计划有效的进行,用于指导性能测试项目的实施,从流程和规范性上保证 测试质量。适用范围适用于性能测试所有需要性能测试的项目,在完整版的基础上进行了精简,适合目前大多数互联网企业在时间 短,任务量大的情况下性能测试。 项目所涉及的关键干系人,包括性能测试项目经理、性能测试人员等应在需要性能测试并提出测试
2、申请前了解本体系,并在性能测试活动开始后,根据本体系中的要求,配合性能测试项 目组完成所有相关活动。职责描述性能测试体系概述概述本体系将性能测试工作共分为:需求阶段、准备阶段、执行阶段、报告阶段、总结阶段5部分。重点阐述各部分 之间的关系,细化各部分所包含的活动。力求简单、实用、有效的指导当前的性能测试工作活动。总体框架图总流程图总结整个性能测试流程体系,其共包括5大阶段、7大过程、 7项主要活动。5大阶段分别为:需求阶段、准备阶段、执行阶段、报告阶段、总结阶段。7大过程分别为:1、项目启动 2、需求调研与分析 3、项目计划制定 4、性能测试准备 5、性能测试6、测试报告7、项目总结7项主要活
3、动分别为: 1、项目启动 2、需求调研与分析 3、项目计划制定 4、性能测试准备5、性能67、项目总结测试体系活动描述需求阶段活动1-项目启动附件下载:附件5-1-1-1:性能测试需求附件5-1-1-2:项目启动会议记录附件5-1-1-3:性能测试需求分析报告活动2需求调研与分析附件下载:附件5-1-2-1:性能测试需求调研大纲附件5-1-2-2:性能测试需求分析报告活动3项目计划制定附件下载:附件5-1-3-1:性能测试项目工作计划5.2 准备阶段5.2.1 活动4-性能测试准备附件下载:附件5-2-1-1:性能测试技术方案附件5-2-1-2:性能测试方案样例5.3 执行阶段5.3.1 活动
4、5-性能测试执行附件下载:附件5-3-1-1:性能测试执行日志记录附件5-3-1-2:性能测试结果与缺陷跟踪5.4 报告阶段5.4.1 活动6-性能测试报告附件下载:附件5-4-1-1:性能测试报告附件5-4-1-2:性能测试报告样例5.5 总结阶段5.5.1 活动7-项目总结附件下载:附件5-5-1-1:XX项目总结访问性能测试控制台访问性能测试控制台性能测试需求调研内容项目背景可参考申请中的相关信息,进一步核实项目背景,准确把握项目目标和范围。项目目标详细了解项目要达到的目标,明确项目范围。项目范围详细描述本次性能测试或性能建模涉及的项目范围,主要工作内容。架构类简要描述一下系统架构? 各
5、个服务器配置如何?测试环境跟生产环境差异?当前已有系统的数据库业务数据存储量信息?(新系统可以提供未来2-3年的估算信息) 生产高峰时网络流量是多少KB? 测试环境准备的网络带宽是多少?性能测试指标要求如:系统交易处理能力(TPS):在测试环境上系统总的TPS大于50笔/秒。交易平均响应时间:在测试环境上系统每笔交易的平均响应时间小于2秒。交易成功率:在测试环境上系统每笔交易的成功率大于99.99%。服务器CPU资源利用率:Web服务器资源利用率低于80%,AP服务器资源利用率低于70%,数据库资源 利用率低于60%,后台进程和缓存主机资源利用率低于70%。业务类简单描述各业务种类,业务复杂性
6、、相关性等信息?历史交易列表(提供历史交易量统计表,见模板)?用户信息类该业务系统服务的主要对象有哪些?目前注册使用该系统的用户总数有多少?各类用户分别有多少?各类用户的行为习惯是怎样的?例如,何时登陆,何时集中处理业务,何时休息 一般情况下,同时在线的用户总数有多少?各类用户分别有多少?高峰情况下,同时在线的用户总数有多少?各类用户分别有多少?系统信息类- 请描述一下该业务系统与其他业务系统之间的关系。交易信息类联机交易系统目前的主要交易有哪些?简要描述这些交易的业务功能、逻辑及流程。请描述这些交易的操作步骤。请提供系统所有交易的清单。批量交易请描述系统处理批量交易的业务类型。请描述批量交易
7、发生的起始时间、持续时间、待处理的数据量。请描述批量交易的处理逻辑及步骤。业务拓展类- 该系统的业务未来的增长趋势如何? 例如,交易量、用户数生产系统历史交易量统计方法历史交易量统计流程01-月交易量统计02-月交易量汇总统计03-单月高峰日数据统计04-TOPn业务模型05-TOPn业务模型访问性能测试控制台访问性能测试控制台测试方案模板项目背景参考需求文档,描述本次性能测试的项目立项背景,以便准确把握项目目的和范围项目目标阐述本次性能测试目的,对需求分析的目的进行扩展性描述项目范围阐述本次性能测试的技术及业务背景;对于改进型项需阐述其改进的方法; 本次性能测试需要进行测试部分的特点和不需要
8、测试部分的特点。环境指出本次性能预期的环境要求。因测试环境预期参照生产环境进行。此处请按生产环境的系统部署情况填写,参见性能环境需求列表,内容一般包括生产环境系统架构图、生产环境系统部署图、测试环境系统架构图(与生产环境架构一致)、生产环境配置、测试环境配置、测试环境与生产环境差异分析等。如果测试环境不 能同生产环境保持一致的话,请对环境的差异对测试结果的影响进行分析。生产环境系统架构图生产环境系统部署图测试环境系统架构图生产环境硬件配置主 机数量型号资 源操作系统测试环境硬件配置主 机数量型号资 源操作系统生产环境与测试环境软件配置资源描述测试/生产操作系统数据库中间件测试环境与生产环境差异
9、分析对比项测试环境生产环境差异影响应用服务器和数据库服务器1台4c8g2台(HA)8c16g从硬件配置上看,应用服务器和数据库服务器处理能力仅能达到生产一半版本差异说明:因测试环境和生产环境差异太大,测试环境中测出的结果不能完全作为评估生产处理能力依据,只能作 为参考值。模型业务模型阐述被测系统在实际生产环境业务模型业务指标阐述被测系统在实际生产环境业务指标测试模型阐述测试环境下被测系统业务模型测试指标阐述测试环境下被测系统业务指标测试策略测试发起策略阐述本次性能测试的加压策略,如压力发起工具、加压及减压策略等测试执行策略阐述测试执行过程中的执行方式,建议不要在生产环境下进行测试,避免破坏生产
10、环境及风险产生,但如有 准生产环境(例如新的数据中心即将使用,无环境差异)则可以。测试监控策略阐述测试执行过程中的监控方式,如:监控工具、需要监控的资源、监控的时机等 客户端(压力机)资源不能超过70%测试内容单交易基准测试阐述基准测试描述及具体方法单交易负载测试阐述单交易负载测试描述及具体方法混合场景负载测试阐述混合场景负载测试描述及具体方法,尽量有需求限制,不要无谓的测试系统拐点混合场景压力测试阐述混合场景压力测试描述及具体方法,尽量有需求限制,不要无谓的测试系统拐点稳定性测试阐述稳定性测试描述及具体方法可靠性测试阐述可靠性测试描述及具体方法测试实施准备测试工具准备阐述测试工具环境准备具体
11、情况及要求测试挡板准备阐述测试挡板准备具体情况及要求测试数据准备阐述基础、测试数据准备具体情况及要求测试脚本准备阐述测试脚本准备具体情况及要求测试组织结构阐述本次测试涉及的相关部门,如:方案组、测试实施组、项目组、环境保障组、应用组、主机组组成,分 别描述各个部门在本次测试任务中的职责,并给出各个部门的相关接口人部门/组职责接口人/责任人测试输出过程性输出该部分需描述测试过程中产出的相关工作产品,如:测试脚本、测试日志等结果输出结果输出物一般为XX性能测试报告,及相关附属工作产品项目计划该部分对项目计划进行整体说明,具体以XX项目详细实施计划.MPP为准。项目风险分析风险编号风险描述风险发生可
12、能性(高、中、低)风险对测试或项目的影响(高、中责任人规避方法、低)访问性能测试控制台执行日志记录相关场景的测试结果,清晰地指出每次测试结果,问题等,如下表所示:序号目的内容负责人开始时间结束时间出现问题解决方法结果结果位置备注/aliyun/result_edit.htm?spm=.SdB0WP&resultId=1234444访问性能测试控制台访问性能测试控制台测试报告模板概述项目背景项目目标项目地点项目人员序号姓名角色电话内部邮箱项目范围描述测试范围、模型及测试方法环境生产环境系统架构图添加图图1生产环境系统架构图注:必要的话进行文字描述测试环境系统架构图添加图图1测试环境系统架构图注:
13、必要的话进行文字描述生产环境硬件配置HostName数量操作系统硬件配置备注测试环境硬件配置HostName数量操作系统硬件配置备注生产环境与测试环境软件配置Host Name操作系统软件生产/测试备注测试环境与生产环境差异分析业务指标如:系统交易处理能力(TPS):在测试环境上系统总的TPS大于50笔/秒。交易平均响应时间:在测试环境上系统每笔交易的平均响应时间小于5秒。交易成功率:在测试环境上系统每笔交易的成功率大于99%。项目进度情况注:只需要把里程碑点关键任务列出即可,以描述项目实施过程。任务计划开始日期计划结束日期实际开始日期实际结束日期测试结果测试模型描述本次测试模型。测试模型一测
14、试模型二测试结果测试结果说明单交易基准测试测试场景测试结果结果分析单交易负载测试测试场景测试结果结果分析混合场景负载测试测试场景测试结果结果分析混合场景压力测试测试场景测试结果结果分析可靠性测试测试场景测试结果结果分析稳定性测试测试场景测试结果结果分析测试结论建议风险缺陷缺陷统计表缺陷统计明细附件测试问题说明相关的附件资料访问性能测试控制台访问性能测试控制台项目总结模板阶段总结内容阶段关键活动经验及教训总结改进建议测试规划需求分析及总体计划测试筹备人员准备环境准备案例管理测试实施问题管理版本管理变更管理测试收尾测试报告总体总结说明整体总结说明(经验、教训、改进建议)。访问性能测试控制台性能测试
15、技术体系访问性能测试控制台编写目的制定性能测试实施指南,从技术角度制定性能测试实施过程中关键技术规范,更好的对系统进行性能测试,帮 助客户更好地从技术上来规避系统上线后的风险。适用范围适用于性能测试所有需要性能测试的项目。对性能测试实施过程中非常重要、非常关键的相关技术进行分析;主要包括:系统环境、测试指标、业务模型、数据量、测试模型、测试类型、脚本、场景、监控、瓶颈分析、调优、性能测试分布式压测工具。系统环境分析系统环境分为生产环境、测试环境等,做性能测试之前,肯定需要一套测试环境的,那么如何搭建、配置测试 环境,在性能测试前需重点考虑。性能测试结果是要为生产系统服务的,那么理想中的性能测试
16、关键最好就是 生产环境,但是由于某种因素,不可能将生产环境完整的再搭建一套,有时必须进行裁剪。风险测试环境的风险主要体现在跟生产差异太大,测试结果根本没有参考价值。对测试环境系统平台、中间件、数 据库等不熟悉和了解,也会导致瓶颈不易分析、不易调优等。规范测试环境搭建测试环境搭建需满足如下规范:测试环境架构与生产环境架构完全相同测试环境机型与生产环境机型尽量相同测试环境软件版本与生产环境软件版本完全相同,版本主要包括:操作系统、中间件、数据库、应用 等测试环境参数配置与生产环境完全相同,参数主要包括:操作系统参数、中间件参数、数据库参数、 应用参数测试环境基础数据量与生产环境基础数据量需在同一个
17、数量级上。只能减少测试环境机器台数,并且需要同比例缩小,而不能只减少某一层的机器台数。理想的测试环境配置是生产环境的1/2,1/4。测试环境调研测试环境调研,需要调研如下内容:系统架构:系统如何组成的,每一层功能是做什么的,与生产环境有多大差异,主要为后面进行瓶颈 分析服务和生产环境性能评估。操作系统平台:操作系统是哪种平台,进行工具监控。中间件:哪种中间件,进行工具监控和瓶颈定位。数据库:哪种数据库,进行工具监控和瓶颈定位。应用:启动多少个实例,启动参数是多少,进行问题查找和瓶颈定位。测试指标分析测试指标一般分为业务指标、资源指标、应用指标、前端指标:业务指标:从业务人员的角度得出来的,例如
18、:并发用户数、TPS、成功率、响应时间。资源指标:从运维人员的角度得出来的,例如:CPU资源利用率、 内存利用率、I/O、内核参数(信号量、打开文件数)等。应用指标:从开发人员的角度得出来的,例如:空闲线 程数、数据库连接数、GC/FULL GC次数、函数耗时等。前端指标:从测试人员和开发人员角度得出来的,例如:页面加载时间,网络时间(DNS,连接时间、传输时间等)。风险不同用户对系统的指标类型和期望值是不一样的,需要提前针对不同角色的人员进行指标调研,设定阈值,测 试出系统在阈值下的性能,瓶颈定位及调优。未提前关注测试指标,将会导致测试结果不是相关人员需要的,结果是无效的。规范业务指标业务响
19、应时间(Response Time):这个指标所有相关人员都明白其含义,业务部门更需要此指标的具体值,一般情况下,不同系统的业务响应时间期望值是不同的,秒以内最佳;像淘宝系统业务基 本在几十毫秒以内。业务处理能力(TransactionPerSecond):这个指标是衡量系统的处理能力的一个非常重要的指标,TPS可以参照同行业系统和结合具体业务,中小企业TPS值为501000笔/秒,银行TPS值为100010000笔/秒,淘宝TPS值为30000100000笔/秒。成功率:这个指标是衡量系统处于压力下,业务的成功率,一般业界成功率要大于99.6%。资源指标一般情况下,系统资源指标也不能超过瓶颈
20、值,例如CPU资源利用率 hostname_date+%Y%m%d_%H%M.uptime可以将以上命令通过shell来包装,每隔多少秒监控一次,总共监控多少次,将监控结果写到文件里面。 例如:下面shell就是将CPUwhile true ; do uptime | awk -F average: print $2 ;sleep 3;done hostname_date+%Y%m%d_%H%M.uptimenmonNmon安装 将 nmonXXX.tar.gz 文件复制到计算机。如果使用 FTP,请记住使用二进制模式。解压该文件,运行 gzip -d nmonXXX.tar.gz提取该文件,
21、运行tar xvf nmonXXX.tarNmon实时监控 登陆要监控的系统,进入nmon安装目录中输入命令nmon,运行 nmon(如root用户可能需要输入./nmon).显示的起始屏幕及CPU等信息。如图:依次按c,m,d即可显示CPU,内存,磁盘等信息。如图:Nmon运行时的键盘命令命令说明c提供关于物理CPU使用的详细信息m提供内存使用的详细信息:系统(内核)和进程,活动虚拟内存d提供关于磁盘,磁盘类型大小,可用空间,卷组,适配器等更详细的信息t当前进程详细情PPaging space 使用情况k显示内核信息+Nmon 结果保存为文件Nmonnmonfs 60c 30(每60s收集一
22、次数据,共收集30次) nmon.shx nmon.shnmon.shWindows监控指标说明提供的监控指标比较丰富,包括CPU、内存、网络、磁盘以及每个进程的资源。监控工具性能测试同 性能测试资源管理器Windows操作系统自带的windows资源管理器,在任务栏里面点击右键,启动任务管理器:点击性能面板,再点击资源监视器:性能监视器Windows有自带的性能监视器,可以指定相关的监控指标进行监控,将结果保存为文件,从windows控制面板-管理工具-性能监视器-新建数据搜集器,添加你感兴趣的指标计数器。应用中间件指标监控Tomcat监控指标说明Tomcat主要监控线程工作状态、请求数、
23、会话数、线程数、虚拟主机、JAVA虚拟机内存占用情况。监控工具Tomcat提供的manager通过使用Applications Manager(又称opManager)来进行监控。使用这种方式,所监控Tomcat必须运行manager应用,缺省情况下,该应用总是运行在服务器中的。增加Manager Role: 访问manager应用的用户的角色权限必须是 manager. 修改/conf目录下的tomcat-users.xml文件,在节点下添加一个user节点,即可创建一个用户。Tomcat版本不同配置也有差异,5.x和6.x创建的用户角色应为manager,7.x创建的用户角色为manage
24、r-jmx,举例如下:在5.x和6.x中创建一个manager角色的用户,用户名为admin,密码为chenfeng: 在7.x中创建一个manager角色的用户,用户名为admin,密码为xxxxx: 修改配置后,需要重新启动 Tomcat 服务器。连接manager时将用户名/密码指定为admin/xxxxxxxx通过浏览器访问http:/localhost:8080/manager/jmxproxy ,输入用户名密码,然后就可以看到返回了所有的监控信息Probe HYPERLINK /downloads/1.7/probe.1.7b.zip /downloads/1.7/probe.1.
25、7b.zip解压缩后,把probe.war放到TOMCAT的webapps下,设置server.xmlcontext设置用户如下,在tomcat_user.xml中vi /usr/local/tomcat/conf/tomcat-users.xmlvi /usr/local/tomcat/conf/tomcat-users.xml设置环境变量,获取服务器状态 # vi /etc/profile JAVA_OPTS=-Dcom.sun.management.jmxremote export JAVA_OPTS重启动服务器输入 HYPERLINK http:/localhost/probe/%2C
26、%E8%BE%93%E5%85%A5%E7%94%A8%E6%88%B7%E5%90%8D%E5%92%8C%E5%AF%86%E7%A0%81 http:/localhost/probe/,输入用户名和密码 即可进入,这里比较精彩的是对内存的监视,动态显示了JVM的内存图表JConsoleLinuxtomcat主目录bincatalina.shCATALINA_OPTS=$JAVA_OPTS-Dcom.sun.management.jmxremote.ssl=false 然后使用JConsole就可以监控Tomcat%JAVA_HOME%bin下的jconsole.exe即可JProfile
27、 HYPERLINK /download/overview.html /download/overview.htmllinuxwindows版本的安装文件. 将 linux版本的文件(jprofiler_linux_7_0_1.sh),上传到服务器上, 将其安装。 安装命令: sh jprofile_linux_7_0_1.sh -c 即可。 Windows版本安装忽略,一路next即可.agentpath:/home/ivanzhang/jprofile7/bin/linux-86/libjprofilerti.so=port=8849 将 其加入到应用的启动脚本设置好之后, 服务器上的应用
28、,会等待你客户端连接上以后,才真正启动应用。 Jprofile连接上之后,则可以看到一下界面了, 它可以帮助你分析内存信息,线程信息,jdbc连接等等, 以下是监控本地开发机的应用情况,可以看到,哪个线程在跑哪些SQL,由哪些方法调用的。JBoss监控指标说明JBoss主要监控线程工作状态、请求数、 会话数、线程数、虚拟主机、JAVA虚拟机内存占用情况。监控工具 JBoss管理控制台如果需要监控jboss的系统资源,如:jboss的基本配置情况,jvm的利用率,线程池的使用情况,可以使用web-console进行监控。配置web-consolejmx-console,就是位置不同,具体方法参考
29、jmx-console配置:jboss-web xml 、 web.xml 在 $JBOSS_HOME/vcom/deploy/management/console- mgr.sar/web-console.war/WEB-INF下;application-policy名为$webConsoleDomain的部分改成你 需要的web-console;perties、perties定义了访问 web-console的用户、用户角色,具体位置,使用find /jboss -name perties 找到以后可以修改用户名、密码。监控 使用http:/localhost:8080/web-conso
30、le/ 中,获取当前JBOSS-WEB应用模块的负载分担情况,并可以查看到当前JAVA虚拟机的内存使用情况,及线程池使用情况。 使用http:/localhost:8080/web-console/status,可以进一步监控到每个线程的状态。Probe具体可以参照 ProbeJConsole具体可以参照 JConsoleJProfile具体可以参照 JProfileIIS监控监控指标说明主要针对会话、事务、缓存、内存、线程池等进行监控,具体如下:ASPSessionDuration(以毫秒为单位)。ASPSessionsCurrentIISGlobalTotalFilesCachedWWWF
31、TPWebTotalNotFoundErrors,Web404ASPTransactionsCommittedASPTransactionsPendingASPTransactions/SecIISGlobalURICacheHitsURIIISGlobalURICacheHitsURIIISGlobalURICacheMissesURI监控工具 集成的性能监视器在性能监视器里面添加IIS应用计数器即可。JVM监控指标说明JVM关注的指标主要是java虚拟机内存年轻代、年老代堆大小以及GC频率及回收时间。 JVM堆内存结构如下:Young(年轻代) 年轻代分三个区。一个Eden区,两个 Sur
32、vivor区。大部分对象在Eden区中生成。当Eden区满时,还存活的对象将被复制到Survivor区(两个中的一个),当这个 Survivor区满时,此区的存活对象将被复制到另外一个Survivor区,当这个Survivor区也满了的时候,从第一个Survivor区复制过来的并且此时还存活的对象,将被复制年老区(Tenured)。需要注意,Survivor的 两个区是对称的,没先后关系,所以同一个区中可能同时存在从Eden复制过来对象,和从前一个Survivor复制过来的对象,而复制到年老区的只有从第一个Survivor去过来的对象。而且,Survivor区总有一个是空的。Tenured(年
33、老代) 年老代存放从年轻代存活的对象。一般来说年老代存放的都是生命期较长的对象。Perm(持久代) 用 于存放静态文件,如今Java类、方法等。持久代对垃圾回收没有显著影响,但是有些应用可能动态生成或者调用一些class,例如Hibernate等, 在这种时候需要设置一个比较大的持久代空间来存放这些运行过程中新增的类。持久代大小通过-XX:MaxPermSize=进行设置。 发生在年轻代的垃圾回收叫做GC/MinorGC,发生在年老代和永久代的垃圾回收叫做FullGC.监控工具JVM自带的jstatjstat-gcpidgc的信息,查看gcyounggc的次数,young gc的时间,full
34、 gc的次数,full gc的时间,gc的总时间。jstat-gccapacitypid,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量, PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。 其他的可以根据这个类推, OC是old内纯的占用量。jstat-gcutilpidgc信息统计。jstat-gcnewpidjstat-gcnewcapacitypidjstat-gcoldpidold代对象的信息。jstat-gcoldcapacitypidold代对象的信
35、息及其占用量。jstat-gcpermcapacitypidperm对象的信息及其占用量。jstat-classpidclass的数量,及所占空间等信息。jstat-compilerpidVM实时编译的数量等信息。jstat-printcompilationpidVMJstat显示的信息中一些术语的中文解释:S0C:年轻代中第一个survivor(幸存区)的容量 (字节)S1C:年轻代中第二个survivor(幸存区)的容量 (字节)S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节)S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节)EC:年轻代中Ed
36、en(伊甸园)EU:年轻代中Eden(伊甸园)OC:OldOU:OldPC:Perm(PU:Perm(YGC:从应用程序启动到采样时年轻代中gc次数YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)FGC:从应用程序启动到采样时old代(全gc)gc次数FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)GCT:从应用程序启动到采样时gc用的总时间(s)NGCMN:年轻代(young)NGCMX:年轻代(young)NGC:年轻代(young)OGCMN:oldOGCMX:oldOGC:oldPGCMN:permPGCMX:permPGC:permE:年轻代中Eden(
37、伊甸园)已使用的占当前容量百分比O:old代已使用的占当前容量百分比P:perm代已使用的占当前容量百分比S0CMX:年轻代中第一个survivor(幸存区)S1CMXsurvivor(幸存区)ECMX:年轻代中Eden(伊甸园)DSS:当前需要survivor(幸存区))(Eden区已满)TTMTT将jstat中感兴趣的相关指标通过shell保存为文件,例如以下shell是每隔2秒钟将jstat监控的信息保存到文件中while true;do /usr/local/java/bin/jstat -gcutil /usr/local/java/bin/jps | grep -v Jps | g
38、rep -v Jstat | egrep OrderPlatformLauncher|Bootstrap|TcpServerLauncher|while true;do /usr/local/java/bin/jstat -gcutil /usr/local/java/bin/jps | grep -v Jps | grep -v Jstat | egrep OrderPlatformLauncher|Bootstrap|TcpServerLauncher|awkprint$1|grep-vS0|awkprintstrftime(%m-%d-%H:%M:%S,systime(),$0;slee
39、p 2;done hostname_date +%Y%m%d_%H%M.jstatjmap的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能 的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等命令格式 jmap options pid -dump:live,format=b,file= -dump堆到文件,live指明是活着的对象,file指定文件名。因为在dump:live前会进行full gc,因此不加live的堆大小要大于加live堆的大小 -finalizerinfo 打印等待回收对象的信息-heap 打印堆总结-histo:live 打印堆的对象统计
40、,包括对象数、内存大小等等-permstat 打印java堆perm区的classloader统计-Fjmap -dump或jmap -histo中使用,如果pidJjvm选项,如:-J-Xms256mjstack介绍 jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项-J-d64,Windows的jstack使用方式只支持以下的这种方式:jstack -l pid如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而 可以轻松地
41、知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序 的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。命令格式jstack option pidjstack option executable corejstack option server-idremote-hostname-or-IP常用参数说明options:executableJavaexecutablefromwhichthecoredumpwasproduced. (可
42、能是产生coredump的java可执行程序)core 将被打印信息的core dump文件remote-hostname-or-IP 远程debug服务的主机名或ip server-id 唯一id,假如一台主机上多个远程debug服务基本参数:-F当jstack -l pid没有相应的时候强制打印栈信息-l长列表. 打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表.-m打印java和native c/c+框架的所有栈信息.-h | -help 打 印 帮 助 信 息pid 需要被打印配置信息的java进程id,可以用jps
43、查询.使用示例JProfileJProfile也可以监控JVM,并且以图形化的方式进行展示,方便信息的查看及分析。具体可以参照章节。JConsoleJConsole也可以监控JVM,并且以图形化的方式进行展示,方便信息的查看及分析。具体可以参照章节。.NETCLR监控指标说明.NET CLR是有微软开发的一台虚拟平台,支持C#/C+/VB等,此虚拟平台功能类似于JVM. .NET CLR主要功能如下:平台无关跨语言集成自动内存管理版本控制.NETCLRMemory计数器如下:性能计数器 说明指标解释# Bytes in all Heaps(所有堆中的字节数)显示以下计数器值的总和,此计数器指示
44、在垃圾回收堆上分配的当前内存(以字节为单位)。# GC Handles(GC 处理数目)显示正在使用的垃圾回收处理的当前数目。# Gen 0 Collections(第 2 级回收次数)显示自应用程序启动后第 0 级对象(即最年轻、最近分配的对象)被垃圾回收的次数。# Gen 1 Collections(第 2 级回收次数)显示自应用程序启动后对第 1 级对象进行垃圾回收的次数。# Gen 2 Collections(第 2 级回收次数)显示自应用程序启动后对第 2 级对象进行垃圾回收的次数。此计数器在第 2 级垃圾回收(也称作完整垃圾回收)结束时递增。# Induced GC(引发的 GC
45、的数目)GC.Collect# of Pinned Objects(钉住的对象的数目)显示上次垃圾回收中遇到的钉住的对象的数目。钉住的对象是垃圾回收器不能移入内存的对象。of Sink Blocks in use(正在使用的接收块的数目)显示正在使用的同步块的当前数目。同步块是为存储同步信息分配的基于对象的数据结构。# Total committed Bytes(提交字节的总数)显示垃圾回收器当前提交的虚拟内存量(以字节为单位)。提交的内存是在磁盘页面文件中保留的空间的物理内存。# Total reserved Bytes(保留字节的总数)显示垃圾回收器当前保留的虚拟内存量(以字节为单位)。保
46、留内存是为应用程序保留(但尚未使用任何磁盘或主内存页)的虚拟内存空间。% Time in GC(GC 中时间的百分比)显示自上次垃圾回收周期后执行垃圾回收所用运行时间的百分比。Allocated Bytes/second(每秒分配的字节数)显示每秒在垃圾回收堆上分配的字节数。Finalization Survivors(完成时存留对象数目)显示因正等待完成而从回收后保留下来的进行垃圾回收的对象的数目。如果这些对象保留对其他对象的引用,则那些对象也保留下来,但此计数器不对它们计数。Gen 0 heap size(第 2 级堆大小)显示在第 0 级中可以分配的最大字节数;它不指示在第 0 级中当前
47、分配的字节数。Gen 0 Promoted Bytes/Sec(101Gen 1 heap size(第 2 级堆大小)11级的最大大小。Gen 1 Promoted Bytes/Sec(1显示每秒从第 1 级提升到第 2 级的字节数。在此计数器中不包括只因正等待完成而被提升的对象。Gen 2 heap size(第 2 级堆大小)显示第 2 级中当前字节数。不直接在此代中分配对。Large Object Heap size(大对象堆大小)显示大对象堆的当前大小(以字节为单位)。垃圾回收器将大于 20 KB 的对象视作大对象并且直接在特殊堆中分配大对象;PromotedFinalization
48、-MemoryfromGen 0(1)01PromotedFinalization-MemoryfromGen 1(1)12Promoted Memory from Gen 0(1显示在垃圾回收后保留下来并且从第 0 级提升到第1 级的内存的字节数。Promoted Memory from Gen 1(1显示在垃圾回收后保留下来并且从第 1 级提升到第2 级的内存的字节数。监控工具集成的性能监视器Windows性能监视器中,可以将.NET CLR Memory中相关的计数器加入到监控中。.NET MemoryProfilerProfiler可以调试4种类型的.NET程序,分别为:桌面应用程序W
49、PF程序ASP.NET程序.NETServiceProfler调试共有三种方式选择:启动跟踪(ProfilerApplication)选定对应的调试方式,如调试桌面程序,选中Profiler Application,然后选择需要启动的执行文件,Profiler将作为宿主程序启动程序开始实时监控内存.附加进程(AttachProcess)将Profiler附加到指定的进程上,此时不能实时监控内存情况,只能够收集内存镜像.导入内存镜像(ImportMemoryDump)可以选择dmp为后缀的内存镜像文件,比如Windbg以及DebugDiag导出的镜像文件,此时不能实时监 控内存情况,只能够收集内
50、存镜像且不能跟踪非托管资源.具体操作如下:启动程序首先,选择需要调试类型,选择 Profiler Application,选择好需要启动的程序exe文件.如果需要设置启动参数,则设置好命令行参数以及工作目录.选择Next进行收集数据的一些选项设置,一般直接按Star按钮开始调试程序.收集数据选择菜单栏的收集按钮,收集堆数据,第一个为收集全部堆上的数据,第二个为只收集第0代的数据.重新启动和停止调试完毕后通过停止按钮跟踪程序,通过启动按钮重新启动上一次的调试程序.查 看 收 集 数 据 上有6个页卡,分别为:Type/Resource 类型/资源页卡Type/ResourceDetails类型/
51、资源明细页卡InstanceDetailsCallStacks/Methods调用堆栈页卡NavtiveMemoryReal-Time-实时跟踪页卡数据库指标监控MySQL监控指标说明主要针对SQL耗时、吞吐量(QPS/TPS)、命中率、锁等待等指标进行监控。监控工具 命令效率低下SQLmysqldumpslow -s at -t 20 host-slow.log#mysqlqpsQPSQuestions(orQueries/Secondsmysql -u root -p123456 -e SHOW /!50000 GLOBAL / STATUS LIKE Questions mysql -u
52、 root -p123456 -e SHOW /!50000 GLOBAL / STATUS LIKE Queries#mysqlKeyBufferkey_buffer_read_hits = (1 - Key_reads / Key_read_requests) 100% key_buffer_write_hits= (1 - Key_writes / Key_write_requests) 100%mysql -u root -p123456 -e SHOW /!50000 GLOBAL / STATUS LIKE Key%#mysqlInnodbBufferinnodb_buffer_r
53、ead_hits=(1-Innodb_buffer_pool_reads/ Innodb_buffer_pool_read_requests)100%mysql -u root -p123456 -e SHOW /!50000 GLOBAL */ STATUS LIKEInnodb_buffer_pool_read%#mysqlQueryCacheQuery_cache_hits= (Qcache_hits / (Qcache_hits + Qcache_inserts) 100%mysql -u root -p123456 -e SHOW /!50000 GLOBAL */ STATUS L
54、IKE Qcache%#mysqlTableCachemysql -u root -p123456 -e SHOW /!50000 GLOBAL / STATUS LIKE Open%#mysqlThreadCacheThread_cache_hits = (1 - Threads_created / Connections) 100% 正常来说,Thread Cache 命中率要在 90% 以上才算比较合理。mysql -u root -p123456 -e SHOW /!50000 GLOBAL */ STATUS LIKE Thread%#mysql锁定状态包括表锁和行锁两种,我们可以通
55、过系统状态变量获得锁定总次数,锁定造成其他线程等待的次 数,以及锁定等待时间信息mysql -u root -p123456 -e SHOW /!50000 GLOBAL / STATUS LIKE %lock%iDBCloud在阿里云RDS管理控制台,点击登陆数据库输入实例名、用户名和密码点击实例性能点击实例性能MySQL Status Inoformation : MySQL状态信息【ins】表示insert语句每秒执行次数【upd】表示update语句每秒执行次数【del】表示delete语句每秒执行次数【sel】表示select语句每秒执行次数【hit%】表示缓存命中率,主要指inno
56、db_buffer_pool的命中率InnoDB Row Operation : InnoDB存储引擎行操作【read】表示InnoDB存储引擎表的读取记录行数【insert】表示InnoDB存储引擎表的写入记录行数【update】表示InnoDB存储引擎表的更新记录行数【delete】表示InnoDB存储引擎表的写入记录行数Thread : 连接数相关【running】表示活跃的连接数,即正在执行sql的连接【connected】表示连接在实例上的空闲连接,即未执行sql的连接Network : 网络流量,单位为KB【in】表示进入实例的网络流量【out】表示流出实例的网络流量PHPMyAd
57、minphpMyAdmin是Mysql的管理工具。相比一些Mysql客户端的GUI管理工具(如MySQLAdministrator),phpMyAdmin是Web模式的。phpMyAdmin 是以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的资料库管理工具。在phpMyAdmin直接点击状态,可以查看SQL查询,InnoDB,Cache,线程等状态信息。性能测试通过性能测试RDS监控,可以监控当前活跃连接数、IOPS、TPS、磁盘容量、QPS。SQLServer监控指标说明监控项解释连接数当前总连接数缓存命中率缓存命中率平均每秒全表扫描数平均每秒全表扫描次数每秒SQL编译实
58、例中每秒编译的SQL语句数每秒检查点写入Page数每秒检查点写入Page数每秒登录次数每秒登录次数每秒锁超时次数每秒锁超时次数每秒死锁次数每秒死锁次数每秒锁等待次数每秒锁等待次数网络流量SQL Server实例平均每秒钟输入和输出的流量。单位为KB。QPS/TPS平均每秒SQL语句执行次数和事务数。CPU使用率RDS实例CPU使用率(占操作系统总数)IOPSRDS实例的IOPS(每秒IO请求次数)磁盘空间RDS实例空间占用监控工具 SQLServer活动监视器SQL Server 数据库提供了专门的工具对数据库的活动进行监控,这个工具称为活动监视器。使用活动监视器可以获取与数据库引擎相关的用户
59、连接状态及其所保存的锁等有用信息。打开活动监视器打开SQLServerManagementStudio并连接到数据库引擎服务器。在对象资源管理器窗口中,展开管理节点。双击活动监视器节点,打开活动监视器对话框,如图1所示。该活动监视器对话框包含3组选项,分别是进程信息选项、按进程分类的锁选项和按对象分类的锁选项。 进程信息选项:包含有关连接到数据库的信息 按对象分类的锁选项:显示按对象名称对锁进行排序查看当前进程的属性用户可以使用进程信息选项:查看当前进程的属性。用户可以通过对话框顶部的筛选器按钮,打开筛选设置对话框,如图2所示。应用筛选器可以减少显示的信息量。对数据库锁定问题进行故障排除时,可
60、以使用活动监视器终止死锁或无 响应的进程。查看某一个进程的详细信息若要查看某一个进程的详细信息,可以右击某一进程,在弹出的快捷菜单中选择详细信息命令,打 开进程详细信息对话框。SQLServerProfileSQL Server Profiler(事件探查器)是SQL跟踪的图形用户界面,用于监视SQL Server 数据库引擎或SQL Server Analysis Services(分析服务)的实例。用户可以捕获有关每个事件的数据,并将其保存到文件或表中供以后分析。创建跟踪用户可以使用SQL Server Profiler工具创建跟踪,具体过程如下:依次选择开始|所有程序|Microsoft
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 进口委托代理合同
- 设计师聘用合同书
- 美容师聘用标准合同年
- 种苗采购的合同范本
- 互动仪式链视角下轮岗教师专业引领的困境与破解
- 青春期父母预备手册-随笔
- 2025年湘教新版必修1物理下册月考试卷含答案
- 2025年外研版三年级起点九年级历史下册阶段测试试卷含答案
- 智能客服系统合作开发合同(2篇)
- 2025年外研版三年级起点九年级地理上册阶段测试试卷
- 四年级四年级下册阅读理解20篇(附带答案解析)经典
- 大连高新区整体发展战略规划(产业及功能布局)
- 国有资产管理法律责任与风险防控
- 未婚生子的分手协议书
- 变更监事章程修正案范例
- 北京小客车指标租赁协议五篇
- 输液室运用PDCA降低静脉输液患者外渗的发生率品管圈(QCC)活动成果
- YY/T 0681.2-2010无菌医疗器械包装试验方法第2部分:软性屏障材料的密封强度
- 烟气管道阻力计算
- 城乡环卫一体化保洁服务迎接重大节日、活动的保障措施
- 医院-9S管理共88张课件
评论
0/150
提交评论