centos调优之文件句柄ulimit

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

通过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

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值