文章目录
  1. 1. 介绍
    1. 1.1. 压测
    2. 1.2. 注意

刚刚搭建完博客,想着以后要是访问的人多了,博客顶不住怎么办(这个完全是借口,其实就是自己的三分钟热情),就顺便把Blog进行下压测,压测的命令很多(ab、http_load、webbench),那就这样,用最熟悉的那一个:ab,就这么愉快的决定了!

介绍

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ ab
Usage: ab [options] [http[s]://]hostname[:port]/path
Options are:
-n requests 压测所执行的总请求个数,默认1
-c concurrency 一次产生的请求个数,默认是一次一个,也就是并发请求的个数
-t timelimit 测试所进行的最大秒数,
-s timeout 每次请求的超时时间,
默认30
-p postfile POST方式. Remember also to set -T
-u putfile PUT方式. Remember also to set -T
-T content-type Content-type header to use for POST/PUT data, eg.
'application/x-www-form-urlencoded'
Default is 'text/plain'
-k 保持长连接 Use HTTP KeepAlive feature
...
...

一般来说,使用-c -n 就足够了!

压测

使用ab命令对本博客进行总100次请求,并发数为10:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$ ab -c 10 -n 100 http://yinrongping.github.io/

Server Software: GitHub.com
Server Hostname: yinrongping.github.io
Server Port: 80

Document Path: /
Document Length: 9053 bytes #文档字节数

Concurrency Level: 10
Time taken for tests: 17.441 seconds #总时间
Complete requests: 100 #总请求
Failed requests: 0 #失败请求数
Total transferred: 952805 bytes #总的网络传输字节数
HTML transferred: 905300 bytes #总的HTML传输字节数
Requests per second: 5.73 [#/sec] (mean) #每秒请求数
Time per request: 1744.142 [ms] (mean) #请求响应时间
Time per request: 174.414 [ms] (mean, across all concurrent requests)
Transfer rate: 53.35 [Kbytes/sec] received #每秒网络流量

Connection Times (ms) #网络时间分解
min mean[+/-sd] median max
Connect: 268 569 779.3 445 7373
Processing: 271 1019 1448.0 478 10548
Waiting: 269 731 1231.0 452 10548
Total: 541 1588 1678.0 962 12019

#所有请求的响应情况,如50%的用户响应时间在962ms之内
Percentage of the requests served within a certain time (ms)
50% 962
66% 1363
75% 1826
80% 1958
90% 3304
95% 4188
98% 7748
99% 12019
100% 12019 (longest request)

注意

  • -c : 最大值不要超过1024,因为linux系统进程允许的最大打开文件数为1024(查看使用ulimit -a)
  • -n : 最大总的请求数不要超过50000 :)
文章目录
  1. 1. 介绍
    1. 1.1. 压测
    2. 1.2. 注意