zoukankan      html  css  js  c++  java
  • Cgroup

    Cgroup(control group)是将任意进程进行分组化管理的Linux内核功能。Cgroup本身
    是提供将进程进行分组化管理的功能和接口的基础结构,I/O或内存的分配控制等具体
    的资源管理功能是通过这个功能来实现的。这些具体的资源管理功能称为Cgroup子系
    统或控制器。
    Cgroup子系统有控制内存的Memory控制器、控制进程调度的CPU控制器等。运行中
    的内核可以使用的Cgroup子系统由/proc/cgroup来确认。

    Cgroup提供了一个cgroup虚拟文件系统,作为进行分组管理和各子系统设置的用户接
    口。要使用Cgroup,必须挂载cgroup文件系统。这时通过挂载选项指定使用哪个子系
    统。这里指定debug这个没有实质功能的调试用子系统来挂载。
    # mount -t cgroup -o debug cgroup /cgroup
    注意事项:这里所说的“虚拟文件系统”,是指procfs和sysfs这种不具有物理设备的文件系统。
    并不是用来接纳文件系统差异的内核内部层layerVFS。
    小贴士:关于cgroup文件系统的标准化挂载要点,是由开发论坛进行讨论的,但目前尚未得出结
    论。这里是挂载到/cgroup。

    挂载后,在挂载位置下应该可以看到下列几个文件。这些是Cgroup呈现出来的特殊文件。

    # ls /cgroup
    cgroup.event_control debug.current_css_set debug.taskcount
    cgroup.procs debug.current_css_set_cg_links notify_on_release
    debug.cgroup_css_links debug.current_css_set_refcount release_agent
    debug.cgroup_refcount debug.releasable tasks
    文件名前缀为cgroup的以及没有前缀的文件是由Cgroup的基础结构提供的特殊文件。
    而前缀为debug的文件是由debug子系统提供的特殊文件。Cgroup的子系统提供的
    特殊文件都会像这样加上子系统的前缀。因此,根据挂载时指定的选项,即所使用的子
    系统不同,存在的特殊文件也不同。但是Cgroup的基础结构所提供的特殊文件则是无
    论指定哪种子系统都一直存在的。特殊文件分为只读文件和可读写文件。只读文件是为
    用户提供信息的文件。可读写的特殊文件通过写入值来更改Cgroup以及Cgroup子系统
    设置的文件。设置的值可以通过读入特殊文件来确认。在这些特殊文件中,最重要的是
    tasks特殊文件。其内容可以显示如下。
    # cat /cgroup/tasks
    1
    2
    3
    4
    ...
    虽然看上去只是一些数字的排列,但其实这些是属于这个分组的线程的线程ID(TID)。
    在这时,系统上运行的所有线程的TID都包含在/cgroup/tasks中。这就表示全部线
    程都属于这个分组。那么这里出现的“分组”又是什么呢?分组,就是体现为cgroup文
    件系统目录的线程的集合。由于/cgroup也是目录,因此它也表示一个分组。像这样位
    于挂载点最上层的目录是自动生成的分组,称为根分组。在这个阶段,只有/cgroup(即
    根分组)是系统上存在的唯一分组。

  • 相关阅读:
    切片/修改
    代码块,-- 循环结构--字符串的格式化--字符串相关函数功能
    format 填充符号 与 格式化
    字符串的格式化format
    python字符串相关函数 *title *upper *lower *swapcase *len *count *find *index *starts with *endswith *isalpha *isdecimal *split *center *strip *replace
    双层循环经典小项目题
    while 小项目练习
    for循环 | range 对象
    关键字的使用 pass break continue
    python字符串的切片
  • 原文地址:https://www.cnblogs.com/heidsoft/p/3852480.html
Copyright © 2011-2022 走看看