在Debian系统中,您可以通过以下方法调整ulimit内存限制:
查看当前ulimit设置:
ulimit -a
临时调整内存限制:
ulimit -v unlimited
ulimit -m 4194304
ulimit -f 1073741824
编辑 /etc/security/limits.conf 文件:
打开文件并添加或修改以下行:
* soft memlock unlimited
* hard memlock unlimited
* soft nofile 65536
* hard nofile 65536
这里的 * 表示所有用户,您也可以指定特定用户。
编辑 /etc/pam.d/common-session 和 /etc/pam.d/common-session-noninteractive 文件:
确保以下行存在:
session required pam_limits.so
编辑 /etc/systemd/system.conf 或 /etc/systemd/user.conf 文件(如果使用systemd):
添加或修改以下行:
DefaultLimitMEMLOCK=infinity
DefaultLimitNOFILE=65536
重新加载systemd配置(如果使用systemd):
sudo systemctl daemon-reload
重启系统: 为了确保所有更改生效,建议重启系统。
cgroups 进行更细粒度的控制如果您需要更细粒度的控制,可以使用 cgroups 来限制进程的内存使用。
安装 cgroup-tools:
sudo apt-get install cgroup-tools
创建一个新的cgroup:
sudo cgcreate -g memory:/mygroup
设置内存限制:
echo "4G" | sudo tee /sys/fs/cgroup/memory/mygroup/memory.limit_in_bytes
将进程添加到cgroup:
echo <PID> | sudo tee /sys/fs/cgroup/memory/mygroup/tasks
通过这些方法,您可以在Debian系统中灵活地调整ulimit内存限制。