linux nginx 1万并发,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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值