以外行人的眼光谈压力测试

不是专职做压力测试这行当的,只能是以自己的经验来以外行人的眼光来说说压力测试,压力测试并不仅仅是个压力测试的过程,而是一个相当系统和复杂的工程,我认为压力测试是为了让系统达到所期望的运行效果以及承受所期望的压力,这也就要求压力测试应该帮助性能调优团队,为其提供一定程度的指导,在这里我不将压力测试和性能调优分的那么清楚了,在我看来,压力测试过程包括了:明确压力测试的目标、制定压力测试方案、进行压力测试、分析压力测试结果、寻找瓶颈并进行调优以达到目标,在这篇blog中来细看下这几个过程以及常用的方法。

明确压力测试的目标

通常来说(注意是通常),压力测试的目标有这么几点:

1、评测系统是否满足压力支撑的要求

要评测系统是否满足压力支撑的要求,同样要做的就是需要明确定义系统需要支撑多大的压力,例如:

机器的配置:CPU、内存、硬盘、etc.

网络条件:100M

操作系统:Linux core: 2.6

当并发数为10用户时,系统应能在20ms内响应完毕(这个时候的TPS为500),系统的load需在2以下;当并发数为100用户时,系统应能在50ms内响应完毕(这个时候的TPS为2000),系统的load需在4以下;当并发数为200用户时,系统应能在80ms内响应完毕(这个时候的TPS为2500),允许其中有千分之一的出错率,系统的load需在6以下,在压力测试的过程中,只要其中的任何指标未达到,均可判定系统尚未达到压力的目标。

实际的压力测试的这个指标会比我这里举的例子复杂很多,例如还需要考虑网络流量、内存消耗、IOPS、连接数等等。

这里面压力测试隐藏的目标是为容量规划提供一定的指导,例如目前的系统在某种配置的情况下单台机器能承受的最大并发数为100用户,那么如果系统的高峰压力是1000的话,如果系统支撑无损水平扩展的话就意味着需要10台这类配置的机器,这一步同样是经过测试的。

2、预估系统上线运行的状况

毕竟通常压力测试环境和线上的环境是会有很大的不同的,压力、数据量、硬件环境等,基本上只能是根据线下的环境的情况进行一定比例的对比后计算来预估,这里面很重要的是要预估系统上线后正常情况下的表现状况、一定的增长比率后的运行状况以及风险点(例如当并发用户数增长到多少时、系统load到多少时可能会出现问题)。

这一个目标我觉得非常难达到,但随着经验,我相信是可以做到的,如果能做到这种效果的话是会有很大的帮助的。

以上这个两个目标基本是压力测试都要达到或希望达到的,而具体有可能会因为系统的业务的具体情况会制定其他不同的目标。

时间: 2024-10-30 05:48:09

以外行人的眼光谈压力测试的相关文章

用户体验设计:浅谈可用性测试中沟通的技巧

文章描述:如何快速解除用户防备?--浅谈可用性测试中沟通的技巧.   一般来说,在产品的设计和开发过程中,不同阶段会使用到不同的用户研究方法.比如,在产品正式发布之前,通常会进行可用性测试.可用性测试,是指让一群有代表性的用户尝试对产品进行典型操作,同时观察员和开发人员在一旁观察.聆听.记录.该产品可能是一个网站.软件,或其他任何产品,它可能已经做好,也可能尚未成型. 对于一个典型的可用行测试,我们可以:1. 通过观察用户在使用产品过程中出现的一些问题,发现产品的可用性问题2. 从测试参与者的表

OCP+Docker牛刀小试,轻松完成“百万并发”压力测试

ZD至顶网服务器频道 03月29日 新闻消息(文/邹大斌):谈到开源,不少人还停留在技术爱好者玩的一种实验性质的软件.即使是像Linux这样已经非常成熟的开源软件仍不免面临这样的质疑,更何况像Docker.Mesos这样的后起之秀.因此,对于那些从事Docker和Mesos商业化的厂商,很重要的一件事情是让人们认可这些开源软件在企业中可堪重用.  继此前宣布获得3000万元人民币A论融资之后,开源技术方案厂商数人云近期对外宣布做出一件颇有创意的工作,在开源技术圈引起了广泛关注,同时也圈外人看到了

压力测试工具——Galting

为什么要写Gatling呢?网上已经有一些介绍Gatling的好文章了,比如两位TW同事的文章,可以看这里(我知道Gatling也是因为这位作者介绍的),还有这里.主要是因为最近在使用Gatling做压力测试,感觉这个工具非常好用,所以想结合自己的使用情况也推荐一下.Gatling是基于scala写的一个开源的压力测试工具,它的特点是简单易用,测试报告简洁漂亮,api通俗易懂.   JDK1.7 Gatling是基于jdk1.7开发的,所以还在用jdk1.6的同学需要先下载jdk1.7,才可以启

压力测试工具ab.exe简介

一.介绍在安装apache时其bin目录下可以找到ab.exe文件,也可以单独下载该文件.这是一个小压力测试工具. 二.使用cmd面板中切换到该文件所在路径,输入ab -help查看帮助. 常用命令 ab -n 1000 -c 100  http://127.0.0.1:8080/testDemo 这行命令的含义是: -n 1000发出表示1000个请求, -c 100表示100个并发数去访问该个项目.若运行正常,会显示出运行的相关信息.若没有反应或者无返回,可能要考虑程序的内存处理相关问题了.

windows系统中安装Jmeter压力测试工具

  Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可以用于测试静态和动态资源例如静态文件.Java 小服务程序.CGI 脚本.Java 对象.数据库, FTP 服务器, 等等.JMeter 可以用于对服务器.网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能. JMeter的作用 1.能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样

web压力测试工具apache

现在很多web压力测试工具都是收费的,但是apache却自带了一个免费的压力测试工具,即ab工具(命令).具体可在Apache的根目录下的bin目录里面,找到一个ab.exe文件就是.用它可以粗略检测一下自己的程序性能如何. 具体用法如下,摘抄自网上.如有错误,还请指正. 格式 ab [options] [http://]hostname[:port]/path 参数 -n requests     Number of requests to perform //在测试会话中所执行的请求个数.默

网站导航的压力测试

最近读了一篇关于导航的压力测试的文章,觉得挺有帮助的,所以想把里面的一些方法推荐给大家.当一个用户到达一个页面时,经常会遇到下面的问题: 我在哪儿? 这是什么? 我可以去哪儿? 怎么样测试这个页面的导航能力呢? 随机的从你的网站上选择一个页面: 把这个页面打印成黑白的,并把页面头部的浏览器地址栏和下面的版权及公司信息部份去掉: 假装你是第一次进入这个网站,并试图回答下面的问题(详见下列问题列表): 在一张纸上写下你所想的和答案: 让你们团队的其它成员或熟悉你网站的朋友也与你做同一试验,大家象跳伞

mysql的高性能压力测试

前言:根据业务需要,需测试mysql 性能和压力测试. 这里我说下测试方法和 测试过程以及测试中出错的问题 估计很多人 跟我一样 要测试mysql 的性能 压力,网上找了很多资料有很多,但是很乱,所以这里我做个总结,拿自己的真实服务器测试的.并且 想测多少数据 都能模拟出来!这里只介绍方法. MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问 mysql来执行测试. [root@localhost smacks]# mysql -V mysql  Ve

ubuntu中安装apache ab命令并进行压力测试

1.安裝ab命令 sudo apt-get install apache2-utils 2.ab命令参数说明 Usage: ab [options] [http[s]://]hostname[:port]/path Options are: //总的请求数 -n requests Number of requests to perform宅 //一次同时并发的请求数 总的请求数(n)=次数*一次并发数(c) -c concurrency Number of multiple requests t