吞吐率――我们需要了解什么
我们一般使用单位时间内服务器处理的请求数来描述WEB服务器的并发处理能力――吞吐率(Throughput),单位是 reqs/s
我们一般使用压力测试,来统计WEB服务器的吞吐率。其包括如下条件:
让机器更好的干活,让老板更省钱
我们怎么才能让机器更好的干活?我们需要多少机器才能更好的满足我们的要求?
综上,我们需要知道何时才能让最合适数量的资源,来完成我们的需求。
这里面,我们需要掌握两个情况,我们的机器最多能同时满足多少用户;以及我们一共有多少用户!
时间就是生命
时间就是生命,当我们渐渐老去时,我们应该把握住生命中的第一分钟,或者冲动,或者寻找冲动。
有些跑题了,我想说的是“时间就是生命”!
在压力测试的过程中,我们需要关心的时间指标有两种:
ab 压力测试
关于压力测试,之前使用过siege――《第一次使用siege 第一次压力测试》
今天再简单介绍一下ab:ab是Apache自带的压力测试工具。我们先来看一下版本:
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
其简单使用过程如下:
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: Apache/2.2.15
Server Hostname: localhost
Server Port: 80
Document Path: /test.html
Document Length: 77 bytes
Concurrency Level: 10
Time taken for tests: 0.079 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 337000 bytes
HTML transferred: 77000 bytes
Requests per second: 12675.07 [#/sec] (mean)
Time per request: 0.789 [ms] (mean)
Time per request: 0.079 [ms] (mean, across all concurrent requests)
Transfer rate: 4171.39 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 2
Processing: 0 1 0.3 1 3
Waiting: 0 1 0.3 1 3
Total: 0 1 0.3 1 3
Percentage of the requests served within a certain time (ms)
50% 1
66% 1
75% 1
80% 1
90% 1
95% 1
98% 2
99% 2
100% 3 (longest request)
ab的使用和返回的结果解释如下:
使用选项 | 意义 |
---|---|
-n1000 | 表示总请求数为1000 |
-c10 | 表示并发用户数为10,即同时有10个用户发起请求 |
http://localhost/test.html | 表示请求的目标URL |
-t10 | 请求的超时响应时间,单位为秒 |
返回字段 | 字段意义 |
---|---|
Server Software | 测试的服务器的Web 服务器软件名,这里是Apache/2.2.15 |
Server Hostname | 请求的URLK 主机部分名称, 这里值为localhost |
Server Port | 被测试的Web 服务器的端口号 |
Document Path | 请求的URL中的根绝对路径 |
Document Length | 表示HTTP响应数据的正文长度 |
Concurrency Level | 表示并发用户数,这是我们压力测试时,传递过去的值 -c |
Time taken for tests | 表示所有这些请求被处理完成所花费的总时间 |
Complete requests | 表示总请求数,我们压力测试时传递过去的参数 -n |
Failed requests | 表示失败的请求数,这里的失败是指请求在连接服务器/发送数据/接收数据等环节发生异常,以及无响应后点击鼠标中时的情况。超时时间可以使用-t设置 |
Total transferred | 表示所有请求的响应数据长度总和,包含每个HTTP响应数据的头信息和正文数据的长度 |
HTML transferred | 表示所有请求的响应数据中正文数据的总和,也就是减去Total transferred中HTTP响应数据中头信息的长度 |
Requests per second | 这就是我们说滴吞吐率啊,等于 Complete requests / Time taken for tests 每秒钟,处理多少请求 |
Time per request | 这便是我们说的,用户平均请求等待时间,等于 Time taken for tests / (Complete requests / Concurrency Level) |
Time per request(across all concurrent requests) | 这便是前面说的服务器平均请求处理时间,等于 Time taken for tests / Complete requests
正是吞详细地址的倒数,为:Time per request / Concurrency Level 每个请求花费了多少秒 |
Transfer rate | 表示这些请求在单位时间内,从服务器获取的数据长度,等于:Total transferred / Time taken for tests
|
Percentage of the requests served within a certain time (ms) | 这部分数据用于描述每个请求处理时间的分页情况,比如在以上测试结果中,99%都不超过1毫秒,100%都不超过3毫秒。这个时间为处理时间,是指前面的Time per request,即对于单个用户而言,平均每个请求处理的时间 |
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:simaopig 来源: 小小子
- 标签: 吞吐率
- 发布时间:2011-06-10 14:07:15
- [69] Twitter/微博客的学习摘要
- [68] IOS安全–浅谈关于IOS加固的几种方法
- [66] 如何拿下简短的域名
- [65] android 开发入门
- [63] find命令的一点注意事项
- [62] Go Reflect 性能
- [61] 流程管理与用户研究
- [60] Oracle MTS模式下 进程地址与会话信
- [59] 图书馆的世界纪录
- [57] 读书笔记-壹百度:百度十年千倍的29条法则