CentOS 7+需同步配置三层句柄限制:limits.conf(仅PAM登录用户)、systemd.system.conf(全局服务默认值)、单个service文件(精准覆盖),且均不能超过内核nr_open和file-max上限。
CentOS 服务器句柄数修改不能只改一个地方,尤其在 CentOS 7 及之后版本(使用 systemd),必须同时配置三层,否则常见服务(如 nginx、MySQL、Java 应用)完全不受影响。
该文件仅控制通过 ssh、console 等方式登录的用户及其启动的进程(比如你手动执行 java -jar app.jar),对 systemctl 启动的服务无效。
* soft nofile 655350
* hard nofile 655350
root soft nofile 655350
root hard nofile 655350
注意:
– soft 和 hard 必须都设,且 soft ≤ hard;
– 修改后需重新登录终端才生效;
– 若设置值超过内核限制 /proc/sys/fs/nr_open(默认 1048576),会导致 root 或特定用户无法登录(如设置 200 万但 nr_open=1048576)。
这是影响所有 systemctl start xxx.service 启动服务的关键配置。systemd 完全忽略 limits.conf。
/etc/systemd/system.conf,取消注释并设置:DefaultLimitNOFILE=655350
DefaultLimitNPROC=65535
保存后必须运行:
sudo systemctl daemon-reload
已有服务需重启才生效(如 sudo systemctl restart nginx)。
若只想调高某个服务(如 Elasticsearch),不改动全局配置,推荐此方式:
sudo systemctl edit elasticsearch.service
[Service]
LimitNOFILE=655350
保存后同样需执行:sudo systemctl daemon-reload && sudo systemctl restart elasticsearch
验证是否生效:systemctl show elasticsearch.service | grep LimitNOFILE
上面所有配置都不能突破内核硬限:
cat /proc/sys/fs/nr_open(单进程最大句柄数)cat /proc/sys/fs/file-max(全系统可分配总数)/etc/sysctl.conf:fs.nr_open = 2097152
fs.file-max = 2097152
然后执行:sudo sysctl -p
注意:nr_open 设置过高(如超 200 万)可能引发登录失败,务必留余量并测试。
小米路由器mesh怎么设置两个wifi信号(小米路由器mesh设置两个wifi信号方法)
小米路由器mesh组网怎么桥接(小米路由器mesh组网桥接方法)
小米路由器4q怎么用手机控制(小米路由器4q手机控制使用方法)
小米路由器4q支持5g吗怎么设置(小米路由器4q支持5g设置方法)
小米路由器4q刷机包怎么安装(小米路由器4q刷机包安装方法)
小米路由器4q忘记密码怎么办(小米路由器4q忘记密码如何解决)