在 Ubuntu 系统中,ulimit
是一个用于控制 shell 进程资源使用的命令行工具。如果你想修改内存限制,可以通过以下几种方法:
ulimit
命令临时修改查看当前内存限制:
ulimit -v
临时修改内存限制:
ulimit -v <新的内存限制值>
例如,将内存限制设置为 2GB:
ulimit -v 2147483648
注意:这种方法只会在当前 shell 会话中生效,关闭终端或重新登录后会失效。
/etc/security/limits.conf
文件编辑 /etc/security/limits.conf
文件:
sudo nano /etc/security/limits.conf
添加或修改以下行:
* soft as unlimited
* hard as unlimited
这里的 *
表示所有用户,soft
是软限制,hard
是硬限制。你可以根据需要修改为特定的用户或组。
保存并退出编辑器。
/etc/sysctl.conf
文件编辑 /etc/sysctl.conf
文件:
sudo nano /etc/sysctl.conf
添加或修改以下行:
vm.overcommit_memory = 1
vm.max_map_count = 262144
这些设置会影响整个系统的内存管理。
保存并退出编辑器。
应用更改:
sudo sysctl -p
cgroups
进行更细粒度的控制如果你需要更细粒度地控制进程的内存使用,可以使用 cgroups
(控制组)。
安装 cgroup-tools
:
sudo apt-get install cgroup-tools
创建一个新的 cgroup:
sudo cgcreate -g memory:/mygroup
设置内存限制:
echo "2G" | sudo tee /sys/fs/cgroup/memory/mygroup/memory.limit_in_bytes
将进程添加到 cgroup:
sudo cgclassify -g memory:/mygroup <pid>
其中 <pid>
是你要限制内存的进程的 PID。
通过这些方法,你可以根据需要修改 Ubuntu 系统中的内存限制。