温馨提示×

怎样修改Ubuntu ulimit的内存限制

小樊
42
2025-10-17 08:20:42
栏目: 智能运维

在 Ubuntu 系统中,ulimit 是一个用于控制 shell 进程资源使用的命令行工具。如果你想修改内存限制,可以通过以下几种方法来实现:

方法一:使用 ulimit 命令临时修改

  1. 查看当前的内存限制

    ulimit -v
    
  2. 临时修改内存限制: 例如,将虚拟内存限制设置为 2GB:

    ulimit -v 2097152
    

    注意:这种方法只会在当前的 shell 会话中生效,关闭终端或重新登录后设置会失效。

方法二:修改 /etc/security/limits.conf 文件

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

    sudo nano /etc/security/limits.conf
    
  2. 添加或修改以下行

    * soft as unlimited
    * hard as unlimited
    

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

  3. 保存并退出编辑器

  4. 重新登录以使更改生效

方法三:使用 pam_limits.so 模块

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

    sudo nano /etc/pam.d/common-session
    
  2. 添加以下行

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

  4. 重新登录以使更改生效

方法四:使用 cgroups 进行更细粒度的控制

如果你需要更细粒度的控制,可以使用 cgroups(控制组)来限制进程的资源使用。

  1. 安装 cgroup-tools

    sudo apt-get install cgroup-tools
    
  2. 创建一个新的 cgroup

    sudo cgcreate -g memory:/my_cgroup
    
  3. 设置内存限制: 例如,将内存限制设置为 2GB:

    echo 2147483648 | sudo tee /sys/fs/cgroup/memory/my_cgroup/memory.limit_in_bytes
    
  4. 将进程添加到 cgroup

    sudo cgclassify -g memory:/my_cgroup <pid>
    

    其中 <pid> 是你要限制的进程的 PID。

  5. 查看 cgroup 的内存使用情况

    cat /sys/fs/cgroup/memory/my_cgroup/memory.usage_in_bytes
    

通过以上方法,你可以根据自己的需求选择合适的方式来修改 Ubuntu 系统中的内存限制。

0