服务器压力检测工具ab
安装
$ yum -y install httpd-tools
$ ab -V
检测接口最大QPS(每秒查询率 - 吞吐量)
$ ab -n100 -c10 http://xxx
//-n 请求次数 -c 并发数
...
Requests per second: 8.03 [#/sec] (mean) //每秒多少个请求
...
nginx限流
- 按链接数限速,即并发数(ngx_http_limit_conn_module)
- 按请求速率限速,按照ip限制单位时间内的请求数(ngx_http_limit_req_module)
限流配置
- 创建规则
语法 :limit_req_zone key zone=name:size rate=rate;
配置段 :http
此指令用于声明请求限制zone,zone可以保存各种key的状态,name是zone的唯一标识,size代表zone的内存大小,rate指定速率限制。
- 应用规则
语法 : limit_req zone=name [burst=number] [nodelay];
配置段 :http, server, location
limit_req zone=mylimit burest=1 nodelay
此指令用于设置共享的内存zone和最大的突发请求大小。
若请求速率超过了limit_req_zone中指定的rate但小于limit_req 中的burst,则进行延迟处理,若再超过burst,就可以通过设置nodelay对其进行丢弃处理。
- 例子
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
location /search/ {
limit_req zone=one burst=5;
}
}
单客户分为三种情况
- 请求速率 < rate(1r/s),正常处理
- rate(1r/s) < 请求速率 < burst(5r/s),大于rate部分延迟
- burst(5r/s) < 请求速率,大于burst部分丢弃(返回503服务暂时不可用)