通过netstat -anlp|wc -l 查看到大量tcp连接;
过滤netstat -anlp|grep WAIT|wc -l 其中的WAIT会话比较多;可通过增加ulimit优化处理能力;
open files 设置的是单进程可打开的最大文件句柄数.
1.查看用户级别的系统配置
ulimit -a
查询用户级别的open file文件符号限制数
ulimit -n
在nginx默认配置中:一个process,1024个连接。在并发时很容易超过此数字,可适当调整此配置及nginx的配置。
查询进程限制数
ulimit -u
一些计算规则
open files 设置的是单进程可打开的最大文件句柄数,即用户可打开的最大文件句柄数是:
(max user processes) * (open files)
当有时发现我们的应用打开了很多文件,或者tcp数很高,但还是能用,原因在于:
没有超过系统最大句柄数限制, 即 (max user processes) * (open files);
没有超过 max user processes 限制;
没有超过单进程最大句柄数设置,即65535;
centos>7属于Systemctl管理的应用,详见下面第3点
则,应用均可正常运行。
# 统计www用户打开的进程数
lsof -u www | awk '{print $2}' | uniq -c | wc -l
#统计www用户打开的占用的所有文件句柄数
lsof -u www | wc -l
<

本文介绍了如何检查和优化Linux系统中的TCP连接数以及单进程可打开的最大文件句柄数。通过`netstat`命令观察大量TCP WAIT状态,提示可能需要调整`ulimit`设置。在`/etc/security/limits.conf`中增加配置可永久改变用户级别的限制,并针对Systemd服务在`/etc/systemd/system.conf`中设置`DefaultLimitNOFILE`和`DefaultLimitNPROC`。此外,还讨论了系统级别的`file-max`限制和Docker容器的资源限制。建议通过`ulimit`命令临时调整测试配置,并在必要时重启服务器以使修改生效。
最低0.47元/天 解锁文章
1478

被折叠的 条评论
为什么被折叠?



