nginx通过ab进行性能测试

一、性能测试工具

  • (1)我们使用ab工具(apache自带的一款测试工具来)来测试nginx服务器的性能,通过这来进行压力测试

  • (2)安装nginx的stub_status模块来监测nginx处理请求情况。

二、如何进行性能测试

(1)安装ab工具

安装apache会自带ab工具,关于apache的安装,请参照:Linux下安装apache httpd以及httpd常见用法

(2)ab用法及常用参数

用法:ab 参数 要测试的地址

  • -n 请求数

  • -c 并发数

(3)安装nginx的http_stub_status_module
  1. ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
  2. make&&make install
(4)配置nginx

修改nginx配置文件,加入以下两行:

  1. location /status {
  2. stub_status on;
  3. }

即当访问/status时,打开stub_status

三、压力测试:

(1)用1000并发,10000个请求来测试:
  1. /usr/local/httpd/bin
  2. ./ab -c 1000 -n 10000 http://192.168.18.200/index.html

发现很快就处理完了请求

(2)用2000并发,10000个请求来测试:
  1. ./ab -c 2000 -n 10000 http://192.168.18.200/index.html

发现报错:

socket: Too many open files (24)

这是因为我们的测试机(是用来测试的机器,不是目标测试机器)的系统限制所制,我们需要调整下它的系统配置:

可以通过 ulimit -n查看最大文件连接数

然后通过ulimit -n数字来修改最大文件连接数,我们再测试查看:

  1. ulimit -n 65535
(3)查看nginx处理请求情况:

访问:http://192.168.0.200/status:

  • Active connections:当前有效连接数,包括是等待状态的,

  • accepts:接收的客户端连接数

  • handled:已经处理的客户端连接数

  • requests:客户端总共的连接数