Nginx的10万并发内核参数优化

9月22日更新后闪退卡死掉帧?三角洲行动玩家必看的排查修复指南 游戏更新后出现闪退、卡死、掉帧是常见的技术兼容性问题,通常源于着色器缓存冲突、反作弊加载时序异常或图形API切换。理解这些底层机制,能帮助玩家快速定位问题而非盲目升级硬件。着色器缓存清理、覆盖层工具排查、输入法状态切换、驱动版本回退等操作,可有效解决大部分更新后故障。在三角洲行动9月22日更新后,大量玩家遭遇加载闪退、对局卡死和帧数骤降,本文提供从着色器缓存到反作弊模块的完整排查流程与可落地的修复步骤,覆盖不同硬件配置的差异化处理思路。 阅读详情

 

关于内核参数的优化:

net.ipv4.tcp_max_tw_buckets = 6000
timewait的数量,默认是180000。
net.ipv4.ip_local_port_range = 1024 65000
允许系统打开的端口范围。
net.ipv4.tcp_tw_recycle = 1
启用timewait快速回收。
net.ipv4.tcp_tw_reuse = 1
开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接。
net.ipv4.tcp_syncookies = 1
开启SYN Cookies,当出现SYN 等待队列溢出时,启用cookies来处理。
net.core.somaxconn = 262144
web 应用中 listen 函数的 backlog 默认会给我们内核参数的 net.core.somaxconn 限制到
128,而nginx定义的NGX_LISTEN_BACKLOG 默认为511,所以有必要调整这个值。
net.core.netdev_max_backlog = 262144
每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包
的最大数目。
net.ipv4.tcp_max_orphans = 262144
系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数
字,孤儿连接将即刻被复位并打印出警告信息。这个限制仅仅是为了防止简单的DoS攻击,
不能过分依靠它或者人为地减小这个值,更应该增加这个值(如果增加了内存之后)。
net.ipv4.tcp_max_syn_backlog = 262144
记录的那些尚未收到客户端确认信息的连接请求的最大值。对于有128M内存的系统而
言,缺省值是1024,小内存的系统则是128。
net.ipv4.tcp_timestamps = 0
时间戳可以避免序列号的卷绕。一个1Gbps的链路肯定会遇到以前用过的序列号。时间
戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。
net.ipv4.tcp_synack_retries = 1
为了打开对端的连接,内核需要发送一个SYN并附带一个回应前面一个SYN的ACK。也
就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送 SYN+ACK 包的
数量。
net.ipv4.tcp_syn_retries = 1
在内核放弃建立连接之前发送SYN 包的数量。
net.ipv4.tcp_fin_timeout = 1
如果套接字由本端要求关闭,这个参数决定了它保持在 FIN-WAIT-2 状态的时间。对端
可以出错并永远不关闭连接,甚至意外当机。缺省值是60 秒。2.2 内核的通常值是180 秒,
2 你可以按这个设置,但要记住的是,即使你的机器是一个轻载的 WEB 服务器,也有因为大
量的死套接字而内存溢出的风险,FIN- WAIT-2 的危险性比FIN-WAIT-1 要小,因为它最多只
能吃掉1.5K内存,但是它们的生存期长些。 

net.ipv4.tcp_keepalive_time = 30
当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2 小时。

 

 

 

  1. net.ipv4.ip_forward = 0
  2. net.ipv4.conf.default.rp_filter =1
  3. net.ipv4.conf.default.accept_source_route = 0
  4. kernel.sysrq = 0
  5. kernel.core_uses_pid = 1
  6. net.ipv4.tcp_syncookies = 1
  7. kernel.msgmnb = 65536
  8. kernel.msgmax = 65536
  9. kernel.shmmax = 68719476736
  10. kernel.shmall = 4294967296
  11. net.ipv4.tcp_max_tw_buckets = 6000           #timewait的数量
  12. net.ipv4.tcp_sack = 1                                 #有选择的应答
  13. net.ipv4.tcp_window_scaling = 1                 #设置tcp/ip会话滑动窗口是否可变,1可变,0不可变。开启使滑动窗口大小增加数个数量级,提高数据传输能力
  14. net.ipv4.tcp_rmem = 4096        87380    4194304  #tcp接收缓冲区
  15. net.ipv4.tcp_wmem = 4096        16384    4194304  #tcp发送缓冲区
  16. net.core.wmem_default = 8388608                        #发送套接字缓冲区大小的缺省值(字节单位)
  17. net.core.rmem_default = 8388608                         #接收套接字缓冲区大小的缺省值
  18. net.core.rmem_max = 16777216                           #接收套接字缓冲区大小的最大值
  19. net.core.wmem_max = 16777216                          #发送套接字缓冲区大小的最大值
  20. net.core.netdev_max_backlog = 262144           #允许送到队列的数据包最大数目
  21. net.core.somaxconn = 262144                        #web应用中listen函数的backlog(积压)
  22. net.ipv4.tcp_max_orphans = 3276800              #最多有多少个TCP套接字不被关联到任何一个用户的句柄上
  23. net.ipv4.tcp_max_syn_backlog = 262144          #记录那些尚未收到客户端确认信息的连接请求最大值,表示SYN队列的长度,可以容纳更多等待连接的网络连接数
  24. net.ipv4.tcp_timestamps = 0                  #时间戳关闭
  25. net.ipv4.tcp_synack_retries = 1               #这个设置决定了内核放弃连接之前发送SYN+ACK包的数量
  26. net.ipv4.tcp_syn_retries = 1                    #内核放弃连接之前发送SYN包的数量
  27. net.ipv4.tcp_tw_recycle = 1                     #timewait快速回收
  28. net.ipv4.tcp_tw_reuse = 1                       #timewait 用于新的连接
  29. net.ipv4.tcp_mem =    1835008 2752512 3670016     #out of socket memory
  30. net.ipv4.tcp_fin_timeout = 15                     #保持在FIN-WAIT-2状态的时间,对端出错永不关闭甚至当机缺省值是60s
  31. net.ipv4.tcp_keepalive_time = 30                                #keepalived 发送消息的频度
  32. net.ipv4.ip_local_port_range = 1024    65000              #端口范围

 

#以下可能需要加载ip_conntrack模块 modprobe ip_conntrack ,有文档说防火墙开启情况下此模块失效

#缩短established的超時時間

net.netfilter.nf_conntrack_tcp_timeout_established = 180

#CONNTRACK_MAX 允许的最大跟踪连接条目,是在内核内存中netfilter可以同时处理的“任务”(连接跟踪条目)

net.netfilter.nf_conntrack_max = 1048576

net.nf_conntrack_max = 1048576

 

执行生效:/sbin/sysctl -p

 

一般来说nginx配置文件中对优化比较有作用的为以下几项:
worker_processes 8;
3 nginx进程数,建议按照cpu数目来指定,一般为它的倍数。
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000
01000000 10000000;
为每个进程分配 cpu,上例中将 8 个进程分配到 8 个 cpu,当然可以写多个,或者将一
个进程分配到多个cpu。
worker_rlimit_nofile 102400;
这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文
件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit
-n的值保持一致。
use epoll;
使用epoll的I/O模型,这个不用说了吧。
worker_connections 102400;
每个进程允许的最多连接数,理论上每台 nginx 服务器的最大连接数为
worker_processes*worker_connections。
keepalive_timeout 60;
keepalive超时时间。
client_header_buffer_size 4k;
客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求
头的大小不会超过 1k,不过由于一般系统分页都要大于 1k,所以这里设置为分页大小。分
页大小可以用命令getconf PAGESIZE取得。
open_file_cache max=102400 inactive=20s;
这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件
数一致,inactive 是指经过多长时间文件没被请求后删除缓存。
open_file_cache_valid 30s;
这个是指多长时间检查一次缓存的有效信息。
open_file_cache_min_uses 1;
open_file_cache指令中的inactive 参数时间内文件的最少使用次数,如果超过这个数字,文
件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive 时间内一次没被使用,
它将被移除。

本文是作者本人的笔记心得,如果有bug请评论留言; 如果本文对你有帮助,请点击【好文要顶】和【关注我】以示鼓励; 大家也可以关注我的微信订阅号【ysgxming】一起交流学习。

Nginx并发从1万提到10万,只改了这3个参数 Nginx并发优化:从1万提升到10万的3个关键参数 本文分享了通过调整Nginx配置显著提升服务器并发能力的实战经验。通过修改三个核心参数:worker_processes auto(自动匹配CPU核心数)、worker_connections 65535(提升单进程连接数上限)和keepalive_timeout 30(优化长连接保持时间),成功将服务器并发处理能力从1万提升至10万。文章还详细介绍了配套的系统级优化配置(文件描述符限制和内核参数调整),并提供了性能对比数据、压测方法和避坑指南。这些优化 阅读详情

相关推荐

Nginx并发性能优化:优化服务器内核参数实现10万并发

在面对大规模并发请求时,适当调整服务器的内核参数是实现高并发的关键之一。综上所述,通过调整服务器的内核参数,包括文件描述符限制和TCP参数优化,以及适当配置Nginx,可以实现10万并发的高性能。文件描述符是操作系统用来标识和管理打开文件的资源,而Nginx在处理并发请求时需要大量的文件描述符。TCP是用于网络通信的协议,通过调整TCP参数可以提升Nginx的并发性能。完成以上优化后,可以使用压力测试工具进行性能测试,以验证Nginx的并发性能是否达到预期。Nginx的配置也会对并发性能产生影响。

ZynCobol的博客 332

清除nginx连接数TIME_WAIT

系统环境: 操作系统:centos7 nginx版本:1.12 事件起因: 由于环境是部署在阿里云上的,有添加云监控报警,最近一直在报警:提示nginx的tcp连接数已经超出设置范围,然后实际上没有很多的连接,于是开启了排查解决之旅。 排查工作: 本机的nginx环境是用来做代理和负载的。 1、想起nginx有个长连接的配置参数,是不是配置时间太长导致连接没有释放导致的呢? 结果发现,最大连接数设置了10240,超时时间为65s,感觉没什么问题呀。 2...

tiny_du的博客 4319

南邮 2024 软件安全 实验四 自动脱壳+手动脱壳

这次这个实验很简单,就是一个简单的脱壳,然后进行爆破就行了,解法非常的多这里不多讲,会简单讲一下特殊情况这个点开是这样子:然后放进peid里面查看,我这个是原版的PEid,所以显示出来是这样:会显示nothing found,但其实如果你使用吾爱破解的魔改过的peid,它就会显示具体的壳名:然后你点击右下角的那个箭头,里面会有很多的插件用来自动脱壳:你也可以使用这个通用脱壳器,但是脱壳后的程序无法运行,这个放到后面讲。

ARbing_an的博客 2565

Linux实例常用内核网络参数介绍与常见问题处理

概述 本文主要介绍常见的Linux内核参数及相关问题的处理。 查看和修改Linux实例内核参数 从实际需求出发,尽量有相关数据的支撑,不建议随意调整内核参数。 了解参数的具体作用,需注意同类型或版本的环境中,内核参数可能有所不同。 备份ECS实例中的重要数据。关于如何备份数据请参见 提供以下两种修改Linux实例内核参数的方法。 方法一:通过/proc/sys/目录查看和修改内核参数 查看内核参数:使用cat命令查看对应文件的内容,执行以下命令,查看net.ipv4.tcp_tw_recycle的

qq_34789538的博客 950

维护测试监控LLM应用

LangFuse: 开源 + SaaS(免费/付费),LangSmith 平替,可集成 LangChain 也可直接对接 OpenAI API;LangSmith: LangChain 的官方平台,SaaS 服务(免费/付费),非开源,企业版支持私有部署;调试 Prompt 的 Playground测试/验证系统的相关指标数据集管理各种指标监控与统计:访问量、响应时长、Token 费等等。

SunnyRivers 1785

基于LSTM算法实现交通流量预测(Pytorch版)

本研究采用PyTorch框架,设计并实现了一种基于LSTM(Long Short-Term Memory)网络的交通流量预测模型。针对时序性显著的交通流量数据,模型首先将多节点、多通道的时空信息整合为一维特征输入至多层LSTM单元,利用其捕捉长期依赖及短期波动的能力进行深度学习。全连接层随后调整时间步长以适应预测周期需求。模型结构灵活,能适应不同节点数、输入输出长度及通道配置,实现在给定历史流量数据基础上对未来交通流量的精准预测,为交通管理与规划提供数据驱动支持。

打酱油的葫芦娃 4641

nginx 内核参数优化

Nginx内核参数优化 内核参数的优化,主要是在Linux系统中针对Nginx应用而进行的系统内核参数优化,常见的优化参数值如下。 下面给出一个优化实例以供参考: net.ipv4.tcp_max_tw_buckets=6000net.ipv4.ip_local_port_range=102465000 net.ipv4.tcp_tw_recycle=...

weixin_34392435的博客 186

HTML粉色爱心(完整代码)

HTML语言实现粉色爱心的完整代码。

AIGC 1118

nginx 配置高并发

nginx 配置高并发 一、一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1.  worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8)。 2.  worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100

Gavin的专栏 856

CODESYS数据处理合集(高低字节/ 字/浮点数/位)

VAR_INPUT//字节0//字节1END_VARVAREND_VAR。

RXXW_Dor的博客 358

【Matlab】从零开始掌握 MATLAB 安装激活:从环境搭建到问题解决全指南

打开 MATLAB,点击 “主页 - 设置路径”;点击 “添加文件夹”,选择自定义的工作文件夹,点击 “保存”,重启 MATLAB 生效。MATLAB R2024a 的安装与激活是开启 MATLAB 学习的第一步,也是构建稳定学习环境的基础。本文从安装前准备、分步操作、验证测试、问题解决到环境优化,完整覆盖了新手所需的所有知识点 —— 核心要点在于:确认系统兼容、使用合法授权、选择纯英文安装路径、完成功能验证。

unber的博客 596

nginx 高并发配置参数(转载)

一、一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1.  worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8)。 2.  worker_cpu_affinity 00000001 0000001000000100 00001000 00010000 00100000 01000000 10000

oonets334的专栏 4万+

基于GA-PSO-BP混合神经网络的多输入多输出数据预测-Python代码实现

多输入多输出数据预测

2301_80449389的博客 2783

linux内核并发模型,Nginx的10万并发内核参数优化

关于内核参数的优化:net.ipv4.tcp_max_tw_buckets = 6000timewait的数量,默认是180000。net.ipv4.ip_local_port_range = 1024 65000允许系统打开的端口范围。net.ipv4.tcp_tw_recycle = 1启用timewait快速回收。net.ipv4.tcp_tw_reuse = 1开启重用。允许将TIME-W...

weixin_30768925的博客 545

部署与可视化系统:移动端跟踪系统:YOLOv8 + ByteTrack 结合 Android CameraX 实现实时行人计数 App

本文详细介绍了在Android移动端实现实时行人检测、跟踪与计数系统的完整方案。系统采用YOLOv8+ByteTrack技术栈,基于NCNN推理引擎,无需云端算力即可在手机端侧完成全流程处理。文章从技术选型、系统架构、CameraX集成等多个维度进行深入解析,重点阐述了移动端部署面临的工程挑战和优化策略。通过四层管道模型设计,实现了从图像采集到目标跟踪的高效处理流程,并采用C++ NDK开发确保性能。该系统在中端手机上可达到10FPS,旗舰机型可达30FPS,为移动端实时目标跟踪提供了可落地的解决方案。

ZXSXJ的博客 94

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

突破10万高并发的nginx性能优化经验(含内核参数优化)

写的很好,推荐阅读。 转载:http://www.cnblogs.com/kevingrace/p/6094007.html 在日常的运维工作中,经常会用到nginx服务,也时常会碰到nginx因高并发导致的性能瓶颈问题。今天这里简单梳理下nginx性能优化的配置(仅仅依据本人的实战经验而述,如有不妥,敬请指出~) 一、这里的优化主要是指对nginx的配置优化,一般来说n

神棍之路 7万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

linux下nginx服务应用总结(2)--突破10万高并发的nginx性能优化经验(含内核参数优化)

转载:http://www.cnblogs.com/kevingrace/p/6094007.html 在日常的运维工作中,经常会用到nginx服务,也时常会碰到nginx因高并发导致的性能瓶颈问题。今天这里简单梳理下nginx性能优化的配置(仅仅依据本人的实战经验而述,如有不妥,敬请指出~) 一、这里的优化主要是指对nginx的配置优化,一般来说nginx配置文件中对优化比较有作用的主要

u012699382的博客 8042

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

突破10万高并发的nginx性能优化经验(含内核参数优化) ...

写的很好,推荐阅读。 转载:http://www.cnblogs.com/kevingrace/p/6094007.html 在日常的运维工作中,经常会用到nginx服务,也时常会碰到nginx因高并发导致的性能瓶颈问题。今天这里简单梳理下nginx性能优化的配置(仅仅...

weixin_33835103的博客 117

linux下nginx服务应用总结--突破10万高并发的nginx性能优化经验(含内核参数优化...

在日常的运维工作中,经常会用到nginx服务,也时常会碰到nginx因高并发导致的性能瓶颈问题。今天这里简单梳理下nginx性能优化的配置(仅仅依据本人的实战经验而述,如有不妥,敬请指出~) 一、这里的优化主要是指对nginx的配置优化,一般来说nginx配置文件中对优化比较有作用的主要有以下几项: 1)nginx进程数,建议按照cpu数目来指定,一般跟...

weixin_34296641的博客 102

使用Tengine替代Nginx作为负载均衡服务器

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。而本文章中的配置参数,都已经在生产环境中得到应用,针对10万高并发的状态以及8核CPU做了相应的优化。1. 增大Nginx用户的...

196

如何控制Nginx并发连接数,Linux 内核优化

模块说明 模块:nginx_http_limit_conn_module 模块作用:限制每个key值的连接数,特别是单个IP连接数。 不是所有的连接数都会被计算,一个符合要求的连接是整个请求已经被读取的连接。 Nginx并发连接数参数说明 limit_conn_zone参数: 语法:limit_conn_zone key zone=name:size; 上下文:http 用于设置共享内存区域,key可以是字符串,nginx自有变量或前两个组合,如server_name。name为内存区域的名称,siz

qq_40907977的博客 767

nginx 10万并发 php,Nginx服务器高性能优化--轻松实现10万并发访问量

来源:toutiao.com/a6804346550882402828今天要说的是Nginx服务器高性能优化的配置,如何使Nginx轻松实现10万并发访问量。通常来说,一个正常的 Nginx Linux 服务器可以达到 500,000 – 600,000 次/秒 的请求处理性能,如果Nginx服务器经过优化的话,则可以稳定地达到 904,000 次/秒 的处理性能,大大提高Nginx的并发访问量...

weixin_31110189的博客 1090

普通nginx服务器并发性能,Nginx服务器高性能优化--轻松实现10万并发访问量

前面讲了如何配置Nginx虚拟主机,如何配置服务日志等很多基础的内容,大家可以去这里看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html 。今天要说的是Nginx服务器高性能优化的配置,如何使Nginx轻松实现10万并发访问量。通常来说,一个正常的 Nginx Linux 服务器可以达到 500,000 – ...

weixin_39618339的博客 515

基于Nginx实现10万+并发,Linux内核优化

基于Nginx实现10万+并发,你应该做的Linux内核优化 由于默认的Linux内核参数考虑的是最通用场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改Linux内核参数,是的Nginx可以拥有更高的性能; 在优化内核时,可以做的事情很多,不过,我们通常会根据业务特点来进行调整,当Nginx作为静态web内容服务器、反向代理或者提供压缩服务器的服务器时,期内核参数的调整都...

点点的博客 3346

Nginx服务器高性能优化--轻松实现10万并发访问量

原文链接:toutiao.com/a6804346550882402828今天要说的是Nginx服务器高性能优化的配置,如何使Nginx轻松实现10万并发访问量。通常来说,一个正常的 N...

程序员闪充宝 1290
上一篇: 高并发有关的内核参数
下一篇: 优化Linux内核参数
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值