温馨提示×

centos ulimit内存限制设置技巧

小樊
48
2025-11-17 23:12:33
栏目: 智能运维

在CentOS系统中,ulimit命令用于控制shell进程及其子进程的资源限制。以下是一些设置内存限制的技巧:

1. 查看当前资源限制

首先,你可以查看当前的资源限制:

ulimit -a

这将显示所有资源限制,包括内存、文件大小、进程数等。

2. 设置单个资源限制

你可以单独设置某个资源的限制。例如,设置最大内存使用量为1GB:

ulimit -v 1048576

这里的1048576是1GB的字节数。

3. 设置所有资源限制

如果你想一次性设置多个资源限制,可以使用ulimit -S来设置软限制,使用ulimit -H来设置硬限制。例如:

ulimit -Sv 1048576  # 设置软限制为1GB
ulimit -Hv 2097152  # 设置硬限制为2GB

4. 持久化设置

ulimit命令设置的资源限制只在当前shell会话中有效。要使其永久生效,你需要修改系统配置文件。

修改 /etc/security/limits.conf

编辑/etc/security/limits.conf文件,添加以下行:

* soft memlock unlimited
* hard memlock unlimited

这将为所有用户设置无限制的内存锁定。

修改 /etc/pam.d/common-session

确保/etc/pam.d/common-session文件中包含以下行:

session required pam_limits.so

修改 /etc/pam.d/common-session-noninteractive

同样,确保/etc/pam.d/common-session-noninteractive文件中也包含以下行:

session required pam_limits.so

5. 使用 cgroups 进行更细粒度的控制

对于更复杂的资源管理需求,可以使用cgroups(控制组)。以下是一个简单的示例:

创建一个新的cgroup

sudo cgcreate -g memory:/mygroup

设置内存限制

echo 1G | sudo tee /sys/fs/cgroup/memory/mygroup/memory.limit_in_bytes

将进程添加到cgroup

echo <PID> | sudo tee /sys/fs/cgroup/memory/mygroup/tasks

<PID>替换为你想要限制的进程ID。

6. 监控资源使用情况

使用tophtopvmstat等工具监控系统资源使用情况,确保你的设置生效并且没有超出预期。

通过以上方法,你可以在CentOS系统中有效地设置和管理内存限制。

0