以Centos为例
# 安装
yum install -y httpd-tools
# 查看
ab -V
# 查看指令帮助
ab --help
ab [options] [http[s]://]hostname[:port]/path
ab -n 50000 -c 1000 http://localhost/index.html
# 解释
-n 50000 要执行的请求数 1000
-c 1000 并发数 50000
会碰到如下问题
执行
ulimit -n
可以看到本机允许的同时打来的socket连接为1024
# 执行以下命令,增大本机可同时打开的socket数目
ulimit -n 20000
安装统计模块,便于观察nginx的状态
在需要被观察的服务器上安装(被压力测试的服务器)
# 杀死正在进行中nginx进程
pkill -9 nginx
cd /server/package/nginx-1.12.2
./configure --help|grep status
# 返回如下
--with-http_stub_status_module enable ngx_http_stub_status_module
# 继续执行以下命令
make clean
# 我的configure是根据自己服务器的文件位置进行配置的,所以大家要按照自己文件路径配置,加上 pcre 和 zlib 是因为我这两个包是手动添加的,此处不加上会报错的
./configure --prefix=/server/nginx --add-module=/server/package/ngx_http_consistent_hash-master --with-pcre=/server/package/pcre-8.41 --with-zlib=/server/package/zlib-1.2.11 --with-http_stub_status_module
make && make install
vim /server/nginx/conf/nginx.conf
# 增加以下模块
location /status{
stub_status on;
access_log off;
allow 192.168.1.101; #只允许该 IP 查看
deny all;
}
# 保存并启动nginx
访问配置好的服务器地址后加 /status
http://192.168.1.101/status
出现上图表示配置成功
启动对该服务器上的压力测试,即可看到该服务器nginx状态
#可以在该服务器执行,查看nginx效果
ab -kc 8000 -n 400000 http://localhost/status //8000并发,40万请求