温馨提示×

centos ulimit怎样修改

小樊
46
2026-10-03 03:05:21
栏目: 智能运维

在 CentOS 中修改 ulimit(用户资源限制)通常有以下几种方式,具体取决于你是临时修改还是永久修改,以及作用范围是当前会话还是所有用户/服务。


一、临时修改(当前会话生效)

直接在终端执行:

ulimit -n 65535      # 修改打开文件数
ulimit -u 4096       # 修改最大进程数
ulimit -a            # 查看当前所有限制

⚠️ 只在当前 shell 及子进程中生效,重启或重新登录后失效。


二、永久修改(用户级)

1️⃣ 修改 /etc/security/limits.conf

vi /etc/security/limits.conf

在文件末尾添加(示例):

* soft nofile 65535
* hard nofile 65535
* soft nproc 4096
* hard nproc 4096

说明:

  • * 表示所有用户(也可写具体用户名,如 www)
  • soft:软限制(警告)
  • hard:硬限制(最大)
  • nofile:打开文件数
  • nproc:进程数

✅ 重新登录后生效。


三、Systemd 服务修改(CentOS 7+)

如果是 systemd 管理的服务(如 nginx、mysql),limits.conf 可能不会生效。

方法 1:修改 service 文件

systemctl edit nginx

添加:

[Service]
LimitNOFILE=65535
LimitNPROC=4096

然后:

systemctl daemon-reload
systemctl restart nginx

方法 2:全局 systemd 限制

vi /etc/systemd/system.conf

修改:

DefaultLimitNOFILE=65535
DefaultLimitNPROC=4096
systemctl daemon-reexec

四、内核级参数(可选)

某些情况下还需调整内核参数:

sysctl -w fs.file-max=100000

永久生效:

echo "fs.file-max = 100000" >> /etc/sysctl.conf
sysctl -p

五、验证是否生效

ulimit -n
cat /proc/<pid>/limits

如果你能说明:

  • CentOS 版本(6 / 7 / 8)
  • 修改的是哪个服务或用户
  • 具体要改什么(文件数 / 进程数 / 内存)

我可以给你更精确的配置示例。

0 踩