在用ab做nginx的高并发测试的时候,/var/log/nginx/error.log报出了一下的错误
客户端ab命令:
ab -n 20000 -c 20000 "http://192.168.10.12:9390/newton/login?
content=%7B%22ak%22%3A%22BEQhCcSWA0ouaD193QkafgAKJKbVt3l3T8OTOCTUfnKkWrWjVkD41FMxToFaUb8
BK7PUHg1ev%2BdMtC1QZlbg9iggqa2M3ILq8HpvugIa%2FM6C6OVmTTioqE25UeDU%22%2C%22ct%22%3A%22hUX
6qQ40tVJc5a7wmET%2BzOOoYpTT0kb0BrmTDajNT%2Bk2H9Von3rL%2FZjvBtZSw5Em2hAE5Nagx2e%2F0Kjc9pC
2sxmMY0l5Z3EaAq3GPP%2BKKl4%2FqKbHvgdbysvoIqCK5GoxW5Uvas8QTCvTRKtAM%2FxAVA%3D%3D%22%7D"
报错信息如下:
2018/08/02 13:36:24 [crit] 18365#18365: *1816402 open() "/usr/share/nginx/html/50x.html"
failed (24: Too many open files), client: 192.168.10.11, server: localhost, request:
"GET /newton/login?
content=%7B%22ak%22%3A%22BEQhCcSWA0ouaD193QkafgAKJKbVt3l3T8OTOCTUfnKkWrWjVkD41FMxToFaUb8
BK7PUHg1ev%2BdMtC1QZlbg9iggqa2M3ILq8HpvugIa%2FM6C6OVmTTioqE25UeDU%22%2C%22ct%22%3A%22hUX
6qQ40tVJc5a7wmET%2BzOOoYpTT0kb0BrmTDajNT%2Bk2H9Von3rL%2FZjvBtZSw5Em2hAE5Nagx2e%2F0Kjc9pC
2sxmMY0l5Z3EaAq3GPP%2BKKl4%2FqKbHvgdbysvoIqCK5GoxW5Uvas8QTCvTRKtAM%2FxAVA%3D%3D%22%7D
HTTP/1.0", upstream: "http://192.168.9.12:9380/newton/login?
content=%7B%22ak%22%3A%22BEQhCcSWA0ouaD193QkafgAKJKbVt3l3T8OTOCTUfnKkWrWjVkD41FMxToFaUb8
BK7PUHg1ev%2BdMtC1QZlbg9iggqa2M3ILq8HpvugIa%2FM6C6OVmTTioqE25UeDU%22%2C%22ct%22%3A%22hUX
6qQ40tVJc5a7wmET%2BzOOoYpTT0kb0BrmTDajNT%2Bk2H9Von3rL%2FZjvBtZSw5Em2hAE5Nagx2e%2F0Kjc9pC
2sxmMY0l5Z3EaAq3GPP%2BKKl4%2FqKbHvgdbysvoIqCK5GoxW5Uvas8QTCvTRKtAM%2FxAVA%3D%3D%22%7D",
host: "192.168.10.12:9390"
解决方案:
vim /etc/nginx/nginx.conf
worker_rlimit_nofile 100000;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
use epoll;
worker_connections 100000;
multi_accept on;
}
重点是worker_rlimit_nofile的值和worker_connections的值要改的大一些。