温馨提示×

如何修改CentOS ulimit设置

小樊
31
2025-12-17 14:50:57
栏目: 智能运维

在 CentOS 系统中,ulimit 设置可以通过以下几种方法进行修改:

方法一:临时修改 ulimit 设置

  1. 打开终端
  2. 临时修改当前 shell 会话的 ulimit 设置
    ulimit -n 4096 # 例如,将文件描述符限制设置为 4096 ulimit -u 1024 # 例如,将用户进程数限制设置为 1024 

方法二:永久修改 ulimit 设置

方法二-1:修改 /etc/security/limits.conf

  1. 打开终端

  2. 编辑 /etc/security/limits.conf 文件

    sudo vi /etc/security/limits.conf 
  3. 添加或修改以下行

    * soft nofile 4096 * hard nofile 4096 * soft nproc 1024 * hard nproc 1024 

    这里的 * 表示所有用户,你可以根据需要修改为特定用户或用户组。

  4. 保存并退出编辑器

方法二-2:修改 /etc/pam.d/common-session/etc/pam.d/common-session-noninteractive

  1. 打开终端

  2. 编辑 /etc/pam.d/common-session 文件

    sudo vi /etc/pam.d/common-session 
  3. 添加以下行

    session required pam_limits.so 
  4. 编辑 /etc/pam.d/common-session-noninteractive 文件

    sudo vi /etc/pam.d/common-session-noninteractive 
  5. 添加以下行

    session required pam_limits.so 
  6. 保存并退出编辑器

方法二-3:修改 /etc/systemd/system.conf/etc/systemd/user.conf

如果你使用的是 systemd,可以修改这些文件来设置 ulimit。

  1. 打开终端

  2. 编辑 /etc/systemd/system.conf 文件

    sudo vi /etc/systemd/system.conf 
  3. 添加或修改以下行

    DefaultLimitNOFILE=4096 
  4. 编辑 /etc/systemd/user.conf 文件

    sudo vi /etc/systemd/user.conf 
  5. 添加或修改以下行

    DefaultLimitNOFILE=4096 
  6. 重新加载 systemd 配置

    sudo systemctl daemon-reload 
  7. 重启 systemd 用户服务

    sudo systemctl restart systemd-logind 

方法三:使用 sysctl 修改内核参数

某些 ulimit 设置可以通过 sysctl 命令进行修改,但这通常用于系统级的内核参数,而不是用户级的 ulimit 设置。

  1. 打开终端
  2. 查看当前的 fs.file-max 设置
    sysctl fs.file-max 
  3. 修改 fs.file-max 设置
    sudo sysctl -w fs.file-max=100000 
  4. 使更改永久生效: 编辑 /etc/sysctl.conf 文件,添加以下行:
    fs.file-max=100000 
  5. 应用更改
    sudo sysctl -p 

通过以上方法,你可以根据需要修改 CentOS 系统中的 ulimit 设置。

0