apache自带的ab压力测试

       最近做一个项目数据要存到redis缓存,大概有1800万条数据,value平均在2kb左右,粗略估计36个G,空间很大,而且经济性不好,内存相比硬盘贵多了。所以选择数据压缩存储的方案。压缩解压缩消耗内存,平时在电脑上解压一下看cpu消耗直线升高。为了不上线后把服务搞垮,在测试环境做了压力测试。

      ab命令是apache自带的,能模拟请求量和并发量访问接口数据,对apache或者nginx等其他服务器做负载压力测试。ab命令对发出负载的计算机要求很低,既不会占用很高C PU,也不会占用很多内存,但却会给目标服务器造成巨大的负载,其原理类似CC攻击。

     ab使用时的参数配置可以去网上搜索,很多。这里只说说我的使用。

1 模拟1000次请求 100的并发 :    ab -n 1000 -c 100  url 

     -n后面的4000代表总共发出4000个请求;-c后面的1000表示采用1000个并发(模拟1000个人同时访问),后面的网址表示测试的目标URL。

2. 服务器负载情况:

    

参数说明:

Document Path  #测试的页面
Document Length  #页面大小

Concurrency Level   #测试的并发数

Time taken for tests #整个测试持续的时间
Complete requests: 4000 #完成的请求数量

Failed requests: 0  #失败的请求数量

Write errors: 0
Total transferred #整个过程中的网络传输量

HTML transferred #整个过程中的HTML内容传输量

Requests per second #最重要的指标之一,相当于LR中的每秒事务数,后面括号中的mean表示这是一个平均值


Time per request #最重要的指标之二,相当于LR中的平均事务响应时间,后面括号中的mean表示这是一个平均值


Time per request #每个连接请求实际运行时间的平均值


Transfer rate  #平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题


Total  #网络上消耗的时间的分解,各项数据的具体算法还不是很清楚

Percentage of the requests served within a certain time (ms)
50% 275
66% 298
75% 328
80% 373
90% 3260
95% 9075
98% 9267
99% 11713
100% 11843 (longest request)
#整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中50%的用户响应时间小于275毫秒,66%的用户响应时间小于298毫秒,最大的响应时间小于11843毫秒。对于并发请求,cpu实际上并不是同时处理的,而是按照每个请求获得的时间片逐个轮转处理的,所以基本上第一个Time per request时间约等于第二个Time per request时间乘以并发请求数。


测试的服务器是双核,所以负载很高,占用内存不到90%,大家可以根据上服务器的核数和台数来估计负载。

    

  

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值