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(即
    根分组)是系统上存在的唯一分组。

  • 相关阅读:
    主成分分析(PCA)原理详解_转载
    用eclipse怎么打war包?
    dsLinq.Count() 引发了“System.NullReferenceException”类型的异常
    sql中实现split()功能
    关于SQL Server将一列的多行内容拼接成一行,合并显示在另外表中
    SEM和SEO的区别?
    最适合程序员转行的10大职业
    CPM、CPC、CPA、PFP、CPS、CPL、CPR等广告术语是什么意思
    什么是CPC,CPA,CVR,CTR,ROI
    SQL SERVER 修改数据库名称(包括 db.mdf 名称的修改)
  • 原文地址:https://www.cnblogs.com/heidsoft/p/3852480.html
Copyright © 2011-2022 走看看