手机版 收藏 导航

Linux 如何利用 cgroups 限制进程内存使用

原创   www.link114.cn   2024-10-08 15:20:06

Linux 如何利用 cgroups 限制进程内存使用

在 Linux 系统中,我们可以利用 cgroups (Control Groups) 来对进程的资源使用进行限制和监控。其中,对内存资源的限制是一个常见的应用场景。通过设置 cgroups,我们可以限制进程使用的最大内存量,以防止进程占用过多的系统内存而导致系统资源耗尽。

下面是一个示例,演示如何使用 cgroups 限制进程内存使用:

  1. 创建一个新的 cgroup 来管理内存资源:
    sudo mkdir /sys/fs/cgroup/memory/my_cgroup
  2. 接下来,设置内存使用上限为 200 MB:
    sudo sh -c "echo 209715200 > /sys/fs/cgroup/memory/my_cgroup/memory.limit_in_bytes"
  3. 将要限制的进程加入到新创建的 cgroup 中:
    sudo cgclassify -g memory:my_cgroup [进程PID]
  4. 现在,这个进程的内存使用将受到 200 MB 的限制。进程试图超过这个限制,系统将会对其进行 OOM (Out-Of-Memory) 杀死。

除设置内存使用上限,cgroups 还提供其他一些有用的内存管理选项,如设置 soft 和 hard 内存限制、启用 swap 等。通过合理利用这些选项,可以更好地管理系统的内存资源,提高应用程序的稳定性和可靠性。