使用Apache 下的ab进行测试
按照:Apache ab(压力测试工具)教程参考如下:
编译版本安装与配置:
msi:版本下载
ad完全可以模拟各种条件下对web服务器发起的测试请求,它也可以在web服务器本地发起一个测试请求,因为它不包括数据的网络传输时间以及用户PC本地计算的时间。
对于我们要了解服务器的处理性能这个参考维度来看的话还是很有一个参考的意义
我们先把示例代码跑起来,通过node http.js
http.createServer(function(req,res){ res.writeHead(200,{'Content-Type':'text/plain'}) res.write('Hello Nodejs') res.end() }).listen(2015)
然后运行http://localhost:2015
看到如下代码说明这个请求是通畅的。
这就是测试完的结果。
Server Software:被测试服务器软件的名称
Server Hostname:请求url中的主机名称
Server Port:监听的端口
Document Path:url中的根节点路径
Document Length:http响应正文的长度
Concurrency Level:并发数
Time taken for tests:所有这些请求处理完成所花费的总时间
Complete requests: 完成的请求数量
Failed requests:失败的数量(连接服务器、发送数据、接收数据这些环节发生异常也包括无响应超时)
Total transferred:整个过程中的网络传输量(包括请求头信息、响应正文)
HTML transferred:整个过程中html的传输量
Requests per second:非常重要的指标:服务器的吞吐率(每秒的事务数)
Time per request:非常重要的指标:用户平均请求的等待时间:平均事务的响应事件
Time per request(第二个):每个连接请求实际运行运行的平均值
Transfer rate:这些请求在单位时间内网络上的流量,可以帮助排除是否是存在网络流量过大而导致响应时间延长的问题
Connection Times (ms):
网络上时间消耗的一个分解,像连接、处理、等待这些时间等等
Percentage of the requests served within a certain time (ms):
这些处理请求的一个分布情况,整个场景中所有请求的响应,每个请求都有一个响应时间
因为我们这个是本地的测试,所以我们速度比较快
90%是说,90%的用户请求的响应时间是少于4毫秒的,
现在拿真实环境去测试一下:
对于远程对web服务器进行压力测试的时候,往往效果不是那么理想 因为网络延时
建议使用内网或者另一台或者多台服务器通过内网对服务器进行测试;当然跟机器的配置也有关系的
当然,测试性能取决于很多因素,网络状况、机器配置、等
自己进行测试,写一段代码测试一下可能就能找出代码瓶颈在哪里?然后再对代码进行优化