今天开始正式启动基于jmeter的性能测试,做如下几个约定。

  1. 这个系列的文章,每次发布的文章点赞、点再看数均超过10个则继续下一篇文章的写作。
  2. 大家可以留言,根据自身的需求,提出专题,我根据系列文章的连贯性,选择合适的专题进行写作

如果约束1未达成,写作周期会一定程度上延长,如果约束2没人提,则按我既定的大纲逐步输出。

本号只专注性能测试相关的分享,一般情况不提供其他内容,如果需要学习测试开发、大数据测试、物联网测试等相关内容请关注下面的公众号

在上篇文章 从终端用户感受来体验性能指标度量 我们介绍了,从终端用户感受来了解性能指标,本文介绍中小企业如何基于开源的工具/系统来建立一个符合我们性能监控体系。

首先要说明的是,本文不会一步步的教你部署配置系统,侧重笔者在多年企业实践过程中,所凝聚的一套监控体系经验。

所以也不会是一篇什么都包含的工具集文,而是从笔者在工作中,结合所在企业、团队、环境、人力、资源等等实际因素所构建的符合需要的体系,你应该根据自身的需要选取合适的技术路线。

在这里要强调一点的是:没有绝对的性能指标评判标准。

关键性能指标的确定和监控需要依照用户的期望而定,而且可以肯定的是用户的期望会随着时间的发展而越来越高。

在工作中,建立性能监控指标主要有以下几个方面的经验:

  1.  日常指标监控,这里不分测试、验收、生产环境,也就意味着尽可能的所有环境均建立日常监控。
    监控指标有CPU、IO、Mem、网络吞吐等等公共基础指标。所采用的系统为zabbix。
    这个监控要实现日常化,即持续监控,不间断,确保指标监控的连续
  2. jvm相关指标监控,主要有监控线程工作状态、请求数、 会话数、线程数、虚拟主机、JAVA虚拟机内存占用情况。所采用的工具是jdk自带的viusal vm,在jdk安装目录下的bin里可以找到,主要是在日常指标有异常时,采用该该工具先初步的较深入的了解相关指标状况。
  3. 当进一步深入去挖掘性能瓶颈时,采用yourkit java profiler并结合业务系统源码深入挖掘瓶颈所在,问题所在。

在大体确定一些瓶颈时,需要使用jdk自带的jstat工具(该工具是jdk自带的,也在bin目录下)捕获jvm堆栈信息,输出dump文件,以便深入挖掘、分析堆栈信息,这时需要采用以下两个工具中的一个来分析,均为开源免费的:

1. Eclipse Memory Analyzer

2. IBM Memory Analyzer

有几个方面要注意的是:

1.  测试人员尽可能的要拥有至少测试环境服务器的管理权限,这样就可以自行根据需要去配置相关监控工具。

2.  线上环境,要要求运维在部署好相关监控服务后,尽可能拿到一定的配置权限,以便根据监控、诊断需要去自定义监控配置。

3. 在应用visual vm、yourkit java profiler、jstat等工具时,只有在需要时才去操作,而不是没事就上去搞一波,否则容易影响线上服务,如果不允许测试人员直接操作,则要求运维或开发按需求去做。

最后,在做诊断调优时,需要的指标会涉及比较广泛的、和一定深度的知识,所以如果可能要尽可能的拉上运维、核心开发人员一起分析、挖掘。而不是一味的自己闷头搞。

如何建立有效的性能指标监控及诊断调优体系_运维