web服务器性能测试---服务器性能测试实例

WEB性能测试--服务器

 

目录

一、准备测试环境............................................................................................................1

二、测试步骤...................................................................................................................2

1、搭建 WEB Server 过程略过.................................................................................2

2、安装模拟访问工具 ab...........................................................................................2

3、安装性能查看工具................................................................................................2

4、测试命令以及参数................................................................................................2

5、系统性能分析命令................................................................................................4

6、测试结果..............................................................................................................5

 

 

WEB 服务中,对于不同的请求,响应速度(性能)是不一样的。对于静态文件的响应一般会很快,尤其是使用了前端缓存技术的(例如 nginx 缓存、varnish缓存、CDN 缓存等)。

下面将以静态页面的测试为例,详细讲解 WEB 服务性能测试方案。

在只有一台裸机的情况下,响应速度会受限于服务器的 CPU、内存、磁盘IO、数据库QPS、文件系统 等,所以需要在测试的时候,实时监控系统的情况。

 

参考的测试方式:http://hi.baidu.com/higkoo/item/f3258f02a5afa925a1312d26?qq-pf-to=pcqq.c2c

一、准备测试环境

请根据实际情况组建测试环境,如果要测试线上 WEB 服务,不怕影响服务质量的话,也可直接使用线上环境。

下表是我使用过的一个测试环境。

网络

公司内网 VLAN

WEB Client 机器配置

CPU:Intel(R) Xeon(R) X3430 2.40GHz 4核

WEB Server 机器配置

CPU:Intel(R) Xeon(R) X5650 2.67GHz 24核

WEB Server

Nginx 1.4.7

测试工具

Apache Bentch 2.3,简称 ab

测试静态页面(大小4K)

http://nginx.test.com/

请求总数

根据需要自定义,请求太少测试没意义,太多很耗时间。

一般在监控性能的时候,请求多一点,例如 1M,延长测试过程,方便查看;

在测试并发数的时候,请求少一点,例如 10W,可以快速得出并发响应数。

测并发数

1, 50,100,150,200,300,500,1000 ... ,根据需要自定义

性能记录工具

dstat

服务器性能参数

CPU负载、磁盘读写速度、网络流量、内存读写速度、系统负载

二、测试步骤

1、搭建 WEB Server过程略过

2、安装模拟访问工具 ab

如果机器已经安装了 Apache httpd ,则一般都自带 ab 工具,使用命令 which ab 可以找到 ab 的安装路径。如果找不到 ab 命令,请安装 httpd 即可(Redhat):yum install httpd。

3、安装性能查看工具

Redhat:yum install -y dstat

 

详细中文使用方法参考:http://linux.cn/article-3215-1.html

4、测试命令以及参数

4.1、ab 命令参数

直接运行 ab 可以得到使用帮助,这里说一下 ab 命令的常用参数:

-n

客户端发起的总请求数

-c

客户端并发请求数,即有多少个用户同时发起请求

-k

HTTP 长连接,默认没有 -k 参数,使用的是短连接

url

[http[s]://]hostname[:port]/path

 

例子:ab -n100000 -c 200 http://nginx.test.com/

 

NOTE:一些低配置的机器,在运行 ab 命令的时候可能会出现问题,主要是打开文件数太小导致的。并发数越高,越容易出现这样的问题。

 

4.2、测试结果解说


注: 1、mean是平均数的意思

2、第一个Time per request代表每个链接上单个请求的平均响应时间

   第二个Time per request所有链接合计后单个请求的平均响应时间

   它们之间的关系是:Tpr1=Tpr2*n,这里的Tpr1=23.054,Tpr2=0.115,n=200。

3、下面将 Requests per second 简称为 RPS,第一个 Time per request 简称为 TPR

 

从 ConnectionTimes 可以看出,请求在建立到响应的过程中,哪个环节下消耗的时间比较多。

 

测试 WEBServerd的最大(佳)并发数

 

打开网页的速度(取决于请求响应时间)是一个很重要的用户体验。

然而请求响应时间存在小部分的极大值和极小值,那么平均响应时间不能真实反映请求响应速度,所以取95% 在某时间阀值内(例如25ms)完成比较合理。

所以假设业务的需求是:95% 请求的响应时间 < 25ms 。

 

假定请求总数不变,每次测试时改变并发数连接数,倘若测试结果中,有95%的请求能在25ms内处理完成,则认为当前的并发响应数是最大(佳)并发数。

同时记录服务器 CPU、内存、系统、IO、网络流量 的情况。

 

对于ab -n 100000 -c 200 http://nginx.test.com/,取 3 次的平均值作为测试结果。

5、系统性能分析命令

dstat -h可以获取帮助信息

 

命令解释:dstat -t -c -dD sda1 -nN eth0-gyl

-t

显示时间戳

-c

统计所有CPU 状态

-dD sda1

统计磁盘分区 /dev/sda1 的读写速度,请根据实际情况指定分区,这里为 /usr/local/nginx/html/index.html 这个文件所在的分区

-nN eth0

统计网卡 eth0 的流量,请根据实际情况指定网卡

-g

统计内存页换入换出速度,一般希望的值是 0 0

-y

统计 CPU 中断 int 和 上下文切换 csw 信息

--tcp

tcp 连接状态

-l

统计系统负载信息


在客户端运行 ab 测试命令之前,预先运行 dsetat 命令,查看测试前机器的状态;等到测试的时候,再对比一下测试前后系统的状态。

6、测试例子结果分析

这里想要测试 WEB Server 的大体性能,只需要测试 Requests per second 的值即可。

6.1、短链接并发测试

每个命令运行 3 次,然后取平均值

ab -n 100000 -c 1 http://nginx.test.com/

ab -n 100000 -c 50 http://nginx.test.com/

ab -n 100000 -c 100 http://nginx.test.com/

……

6.2、长链接并发测试

ab -n 100000 -c 1 -k http://nginx.test.com/

ab -n 100000 -c 50 -k http://nginx.test.com/

ab -n 100000 -c 100 -k http://nginx.test.com/

……

6.3、测试结果

Complete requests

Concurrency Level

短链接

长链接

Time taken for tests

Requests per second

Time taken for tests

Requests per second

100000

1

85

1183

54

1839

100000

50

9.8

9756

7.7

12041

100000

100

 

6249

 

 

100000

150

 

7432

 

 

100000

200

 

7996

 

 

100000

250

 

8584

 

 

100000

300

 

7313

 

 

100000

350

 

7189

 

 

100000

400

 

8335

 

 

100000

450

 

9545

 

 

100000

500

 

9866

 

 

100000

550

 

9965

 

 

100000

600

 

9685

 

 

100000

650

 

10124

 

 

100000

700

 

10053

55

12297

100000

750

 

10204

 

 

100000

800

 

9731

 

 

100000

850

 

9921

 

 

100000

900

 

9909

 

 

100000

950

 

9908

 

 

100000

1000

 

9067

 

 

100000

1050

 

9871

 

 

100000

1100

 

7669

 

 

100000

1150

 

8849

 

 

 

使用excle做成表格,使测试结果更加形象

 

从图中可知:WEBServer 对于请求 http://nginx.test.com/每秒的最大响应数为 1W 左右。

Nginx 官网说能达到 5W RPS,可见当前的 WEB Server 离那个目标还差很远。

 

下图是测试过程中,WEBServer 的性能监控记录:dstat -t -c -dD sda1 -nN eth0 -gyl

测试前

短链接测试时(并发 700 )

 

长连接测试时(并发 700 )

 

测试前后,变化较大的有:

l  网卡流量

l  CPU 中断数量以及上下文切换数

l  1分钟之内的系统负载

 

从性能监控记录看,进行测试时,系统性能还处于一个比较空闲的状态,负载较低。

 

结合测试的 RPS 和 系统性能,发现 WEB Server 还有很大的进步空间,需要进行更加深入的专业优化。

 

当然,这是一个很简单的测试,如果涉及到比较负载的业务等,系统各方面的负载也会相应的增加的。


测试结果详细记录表

Document Path

/

Document Length

555 bytes

Concurrency Level

1

50

 

Time taken for tests

84.498 seconds

 

 

Complete requests

100000

100000

 

Failed requests

0

 

 

Write errors

0

 

 

Keep-Alive requests

-

 

 

Total transferred

75.3MB

 

 

HTML transferred

52.9MB

 

 

Requests per second

1183.47

 

 

Time per request 1

0.845 [ms]

 

 

Time per request 2

0.845 [ms]

 

 

Transfer rate(received)

911.87 KBps

 

 

Connection Times (ms)

Connect

0+/-0.4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Processing

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Waiting

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Total

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Percentage of the requests served within a certain time (ms)

50%

1

 

 

66%

1

 

 

75%

1

 

 

80%

1

 

 

90%

1

 

 

95%

1

 

 

98%

1

 

 

99%

2

 

 

100%

205

 

 

 

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值