LNMP 高并发配置(解决上万并发量不是问题)

测试机器为腾讯云服务器1核1G内存,swap分区2G,停用除SSH外的所有服务,仅保留nginx,优化思路主要包括两个层面:sysctl系统设置+nginx参数设置。

【 systemctl是systemd的管理工具, systemd复制管理系统和进程】

【 sysctl命令被用于在内核运行时动态地修改内核的运行参数,可用的内核参数在目录/proc/sys中】

第一步:sysctl系统设置

先查看--再改--再查看(不要直接上来就改,否则不知道是否改变)

 ## 打开文件数量

ulimit -a

ulimit -n 20480  

 

【腾讯云服务器的,文件地址也是一样的,TCP属于OSI传输层协议,是底层,所有linux应该都是一样的】

【commond>file是将输出重定向到file,shell语法】

## TCP最大连接数

cat /proc/sys/net/core/somaxconn       ##我的结果是128

echo 10000 > /proc/sys/net/core/somaxconn   

##TCP连接立即回收、回用

cat /proc/sys/net/ipv4/tcp_tw_reuse      ##我的结果是1,不需要改了

cat /proc/sys/net/ipv4/tcp_tw_recycle    ##我的结果是1,不需要改了

echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse     

echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle 

cat   /proc/sys/net/ipv4/tcp_syncookies  ##我的结果是1

echo 0 > /proc/sys/net/ipv4/tcp_syncookies  ## 屏蔽TCP异步

sysctl -p  ## 设置生效

 

 

第二步:nginx参数设置

【参考链接4、5里面有更详细配置,可以参考】

【## worker 进程数应该设置为等于 CPU 的核数,高流量并发场合也可以考虑将进程数提高至 CPU 核数 *2  】

【 # 查看CPU核数  grep -c processor /proc/cpuinfo】

worker_processes 1;           

worker_rlimit_nofile 20000;  ##配置Nginx worker进程最大打开文件数

events

{

    use epoll;

    worker_connections 20000; ##单个进程允许的客户端最大连接数

    multi_accept on;

}

http {   

    keepalive_timeout 0;

}

##重启nginx

【 命令格式  systemctl [command] [unit]】

systemctl restart nginx

————————————————

参考原文:

LNMP 高并发配置(解决上万并发量不是问题)https://blog.csdn.net/zha2008min/article/details/103438170

 

参考链接:

1. systemctl VS sysctl VS service VS init.d https://www.dazhuanlan.com/2019/12/13/5df2f21849302/

2. Linux ulimit命令 https://www.runoob.com/linux/linux-comm-ulimit.html

3. 常用的Linux下查看服务器配置的命令(命令结果没有具体的标注) https://blog.csdn.net/u011636440/article/details/78611838

 

4. nginx优化worker进程最大打开文件数worker_rlimit_nofile(作者也是转载,有原文链接)  https://blog.csdn.net/weixin_34331102/article/details/91681934

我不放原文链接,是怕原文url有一天打不开了

5. nginx——优化 Nginx worker 进程数  https://www.cnblogs.com/qianbixueyuan/p/9518770.html

6. 怎样才算高并发?  https://blog.csdn.net/jiaweiok123/article/details/87804081

你可能感兴趣的:(nginx,高并发,高并发,nginx高并发)