SLES控制组(Cgroups)

一、理解Cgroups

  • 什么是Cgroups?
    cgroups - 内核控制组

    • 一个内核特性,允许对任务(进程)进行聚合或划分
    • 任务被组织成层次化的组
    • cgroups 可以被配置以表现出特定的行为
    • 用于帮助调整系统,以最佳方式利用可用的硬件和网络资源

    它(指systemd)解决了某些服务(如Apache)产生大量第三方进程(例如CGI或Java进程)的问题,而这些第三方进程又会继续产生更多的进程。这使得明确分配变得困难甚至不可能。此外,服务可能无法正确终止,导致一些子进程仍然存活。

    systemd通过为每个服务分配一个自己的cgroup来解决这个问题。cgroups是内核的一个特性,允许将进程及其所有子进程聚合成层次化组织的组。systemd以服务的名称来命名每个cgroup。由于非特权进程不允许离开其cgroup,这为使用服务名称标记服务产生的所有进程提供了一种有效的方法。

    要列出属于某个服务的所有进程,可以使用命令systemd-cgls。

  • cgroups术语

    • cgroup:将一组任务与一个或多个子系统的参数集相关联
    • subsystem:一个模块,它利用cgroup提供的任务分组功能,以特定方式处理任务组
    • hierarchy:以树形结构排列的一组cgroup
    • task:系统上运行的进程

二、理解cgroup模型

  • linux进程模型

    • 在Linux系统中使用systemd的所有进程都共有一个父进程:systemd进程。
    • Linux进程模型是单层次的——所有进程都源自一个单一的父进程。
    • Linux进程会继承其父进程的环境以及某些其他属性。

    在Linux系统中,所有进程都源自一个共同的父进程:systemd进程。该进程在系统启动时由内核执行,并启动其他进程(这些进程又可能启动它们自己的子进程)。所有进程都源自单一的父进程,这使得Linux进程模型成为一个单层次结构。

    除了systemd之外,每个Linux进程都会继承其父进程的环境(如PATH变量)以及某些其他属性(如打开的文件描述符)。

  • cgroup模型

    • cgroups(控制组)与进程相似之处在于:

      • 它们具有层次结构
      • 子cgroups会从其父cgroup继承某些属性。
    • 它们之间的根本区别在于:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hi~9527

看我这么卖力,可怜可怜我吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值