文件句柄相关

来自三线的随记

先mark相关设置,待整理

lsof -p pid | wc -l

# get config
ulimit -a
ulimit -n
# temp edit config
ulimit -n 102400
ulimit -SHn 10240f


# 从硬件性能上来讲,最高能支持的句柄数
cat /proc/sys/fs/file-max


/etc/security/limits.conf 文件末尾添加

* soft nofile 102400
* hard nofile 102400


systemd service 句柄数限制

(引述) 知道在CentOS 7/RHEL 7的系统中,使用Systemd替代了之前的SysV,因此 /etc/security/limits.conf的配置,只适用于通过PAM认证登录用户的资源限制,它对systemdservice的资源限制不生效。

对于systemd service的资源限制,全局的配置放在文件/etc/systemd/system.conf/etc/systemd/user.conf ,同时也会加载两个对应的目录中的所有.conf文件/etc/systemd/system.conf.d/*.conf/etc/systemd/user.conf.d/*.conf

其中system.conf是系统实例使用的, user.conf用户实例使用的,一般的service使用system.conf中的配置即可;此外注意,systemd.conf.d/*.conf 中配置会覆盖 system.conf


打开/etc/systemd/system.conf在文末添加如下内容,数字部分是数量上限,可以根据自己的需要修改,保存已修改的 system.conf 重启系统生效。

DefaultLimitCORE=infinity
DefaultLimitNOFILE=102400
DefaultLimitNPROC=102400


针对单个Service也可以设置,以这次遇到报错的程序V2Ray为例,打开 /etc/systemd/system/v2ray.service 在文中的[Service] 下方,添加如下内容

LimitCORE=infinity
LimitNOFILE=102400
LimitNPROC=102400

systemctl daemon-reload

systemctl restart v2ray.service


参考文章: https://wangejiba.com/3827.html