linux内核参数调优和Linux实例常用内核网络参数介绍与常见问题处理
问题1
并发场景下,常常会出现一个进程最大文件句柄数不足的情况,会报如下错误:
24: Too many open files
解决办法
ulimit -a
S
:表示软限制,超出设定的值会告警。H
:表示硬限制,超出设定的值会报错。a
:列出系统所有资源限制的值c
:当某些程序发生错误时,系统可能会将该程序在内存中的信息写成文件(除错用),这种文 件就被称为核心文件(core file)。此为限制每个核心文件的最大容量d
:每个进程数据段的最大值f
:当前shell可创建的最大文件容量l
:可以锁定的物理内存的最大值m
:可以使用的常驻内存的最大值n
:每个进程可以同时打开的最大文件句柄数p
:管道的最大值s
:堆栈的最大值t
:每个进程可以使用CPU的最大时间u
:每个用户运行的最大进程并发数v
:当前shell可使用的最大虚拟内存
ulimit -n 65535
查询当前终端的文件句柄数: ulimit -n 回车,一般的系统默认的1024.
修改文件句柄数为65535,ulimit -n 65535.此时系统的文件句柄数为65535.
问题2
在并发场景下,系统作为客户端很容易出现端口不够用的情况,当没有端口可用时,会报如下错误:
-EADDRNOTAVAIL /* Cannot assign requested address */
解决办法
vim /etc/sysctl.conf
打开文件,写入下面内容
net.ipv4.tcp_syncookies = 1 # 开启syncookies,防止网络泛洪攻击
net.ipv4.tcp_fin_timeout = 30 # fin超时时间
net.ipv4.tcp_max_tw_buckets = 262144 # time_wait池
net.ipv4.tcp_tw_reuse = 1 # time_wait重用
net.ipv4.tcp_tw_recycle = 1 # time_wait快速回收
net.core.somaxconn = 65535 # 默认128,增加半连接(backlog)池大小,当池中请求大过这个时会拒绝连接
net.ipv4.ip_local_port_range = 1024 65535 # 默认32768 60999,防止并发是端口不够用
更多参考文档https://help.aliyun.com/document_detail/41334.html#TxtER
此时此刻,非我莫属
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)