在 Ubuntu 系统中,ulimit 是一个用于控制 shell 进程资源使用的命令行工具。如果你想修改内存限制,可以通过以下几种方法来实现:
ulimit 命令临时修改查看当前的内存限制:
ulimit -v
临时修改内存限制: 例如,将虚拟内存限制设置为 2GB:
ulimit -v 2097152
注意:这种方法只会在当前的 shell 会话中生效,关闭终端或重新登录后设置会失效。
/etc/security/limits.conf 文件编辑 /etc/security/limits.conf 文件:
sudo nano /etc/security/limits.conf
添加或修改以下行:
* soft as unlimited
* hard as unlimited
这里的 * 表示所有用户,你可以根据需要指定特定的用户或用户组。
保存并退出编辑器。
重新登录以使更改生效。
pam_limits.so 模块编辑 /etc/pam.d/common-session 文件:
sudo nano /etc/pam.d/common-session
添加以下行:
session required pam_limits.so
保存并退出编辑器。
重新登录以使更改生效。
cgroups 进行更细粒度的控制如果你需要更细粒度的控制,可以使用 cgroups(控制组)来限制进程的资源使用。
安装 cgroup-tools:
sudo apt-get install cgroup-tools
创建一个新的 cgroup:
sudo cgcreate -g memory:/my_cgroup
设置内存限制: 例如,将内存限制设置为 2GB:
echo 2147483648 | sudo tee /sys/fs/cgroup/memory/my_cgroup/memory.limit_in_bytes
将进程添加到 cgroup:
sudo cgclassify -g memory:/my_cgroup <pid>
其中 <pid> 是你要限制的进程的 PID。
查看 cgroup 的内存使用情况:
cat /sys/fs/cgroup/memory/my_cgroup/memory.usage_in_bytes
通过以上方法,你可以根据自己的需求选择合适的方式来修改 Ubuntu 系统中的内存限制。