nginx看最大并发量_Nginx高并发配置思路(轻松应对1万并发量)
測試機器為騰訊云服務器1核1G內存,swap分區2G,停用除SSH外的所有服務,僅保留nginx,優化思路主要包括兩個層面:系統層面+nginx層面。
一、系統層面
1、調整同時打開文件數量
ulimit -n 20480
2、TCP最大連接數(somaxconn)
echo 10000 > /proc/sys/net/core/somaxconn
3、TCP連接立即回收、回用(recycle、reuse)
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
4、不做TCP洪水抵御
echo 0 > /proc/sys/net/ipv4/tcp_syncookies
也可以直接使用優化后的配置,在/etc/sysctl.conf中加入:
net.core.somaxconn = 20480
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 4096 16777216
net.ipv4.tcp_wmem = 4096 4096 16777216
net.ipv4.tcp_mem = 786432 2097152 3145728
net.ipv4.tcp_max_syn_backlog = 16384
net.core.netdev_max_backlog = 20000
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_orphans = 131072
net.ipv4.tcp_syncookies = 0
使用:sysctl -p 生效
sysctl -p
二、nginx層面
修改nginx配置文件,nginx.conf
增加work_rlimit_nofile和worker_connections數量,并禁用keepalive_timeout。
worker_processes 1;
worker_rlimit_nofile 20000;
events {
use epoll;
worker_connections 20000;
multi_accept on;
}
http {
keepalive_timeout 0;
}
重啟nginx
/usr/local/nginx/sbin/nginx -s reload
使用ab壓力測試
ab -c 10000 -n 150000 http://127.0.0.1/index.html
測試結果:
This is ApacheBench, Version 2.3
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 127.0.0.1 (be patient)
Completed 15000 requests
Completed 30000 requests
Completed 45000 requests
Completed 60000 requests
Completed 75000 requests
Completed 90000 requests
Completed 105000 requests
Completed 120000 requests
Completed 135000 requests
Completed 150000 requests
Finished 150000 requests
Server Software: nginx/1.8.0
Server Hostname: 127.0.0.1
Server Port: 80
Document Path: /index.html
Document Length: 612 bytes
Concurrency Level: 10000
Time taken for tests: 19.185 seconds
Complete requests: 150000
Failed requests: 0
Write errors: 0
Total transferred: 131180388 bytes
HTML transferred: 95121324 bytes
Requests per second: 7818.53 [#/sec] (mean)
Time per request: 1279.013 [ms] (mean)
Time per request: 0.128 [ms] (mean, across all concurrent requests)
Transfer rate: 6677.33 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 650 547.9 522 7427
Processing: 212 519 157.4 496 958
Waiting: 0 404 139.7 380 845
Total: 259 1168 572.1 1066 7961
Percentage of the requests served within a certain time (ms)
50% 1066
66% 1236
75% 1295
80% 1320
90% 1855
95% 2079
98% 2264
99% 2318
100% 7961 (longest request)
總結
以上是生活随笔為你收集整理的nginx看最大并发量_Nginx高并发配置思路(轻松应对1万并发量)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国际民航组织危险物品航空安全运输技术细则
- 下一篇: 义务兵有退役军人优待证吗