英文原文:

https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/cpuacct.html

CPU Accounting Controller

CPU统计控制器(CPU Accounting Controller)用来分组使用cgroup的任务,以及统计这些任务分组的CPU用量。

CPU统计控制器支持多层次架构的分组。一个统计分组累加所有子分组和分组中的任务的CPU用量。

统计分组可以通过挂载cgroup文件系统来创建:

# mount -t cgroup -o cpuacct none /sys/fs/cgroup

完成上述操作,父级统计分组就会在/sys/fs/cgroup变为可见。在启动的时候,这个分组包含了系统中所有的任务。/sys/fs/cgroup/tasks列举了该cgroup中的所有任务。/sys/fs/cgroup/cpuacct.usage给出了这个这个分组中所有任务获取的CPU时间(以纳秒为单位)。

在父分组/sys/fs/cgroup下可以创建新的统计分组:

# cd /sys/fs/cgroup
# mkdir g1
# echo $$ > g1/tasks

上述操作创建了新的g1分组,把当前shell进程移动进去。这个bash和她的子孙消耗的CPU时间可以从g1/cpuacct.usage获取。/sys/fs/cgroup/cpuacct.usage同样也是累加的。

cpuacct.stat文件列举了几个统计数字,划分成用户和系统的CPU时间。这些统计数组支持:

用户:用户模式里的cgroup任务花费的CPU时间。

系统:内核模式里的cgroup任务花费的CPU时间。

用户和系统的CPU时间单位都是USER_HZ。

cpuacct控制器使用percpu_counter接口来收集用户和系统时间。这会有两个副作用:

  • 理论上可能会看到用户时间和系统时间的错误数值。这是因为32位系统上的percpu_counter_read()函数写并发是不安全的。
  • 用户时间和系统时间可能会稍微有点过时,这是因为percpu_counter的批量处理性质决定的。

Linux Cgroup v1(中文翻译)(3):CPU Accounting Controller的更多相关文章

  1. Linux Cgroup v1(中文翻译)(2):CPUSETS

    英文原文:https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/cpusets.html Copyright (C) 2004 BU ...

  2. Linux Cgroup v1(中文翻译)(1):Control Group

    英文原文:https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/cgroups.html 1 控制组 1.1 什么是控制组? 控制组 ...

  3. Linux Cgroup v1(中文翻译)(4):Block IO Controller

    Block IO Controller 1 概览 cgroup子系统blkio实现了block io控制器.无论是对存储结构上的叶子节点和还是中间节点,它对各种IO控制策略(proportional ...

  4. 【转载】Linux cgroup资源隔离各个击破之 - cpu隔离1

    Linux cgroup 有两个子系统支持CPU隔离.一个是cpu子系统,另一个是cpuset子系统. cpu子系统根据进程设置的调度属性,选择对应的CPU资源调度方法 .1. 完全公平调度 Comp ...

  5. linux运维常见英文报错中文翻译(菜鸟必知)

    linux常见英文报错中文翻译(菜鸟必知) 1.command not found  命令没有找到 2.No such file or directory  没有这个文件或目录 3.Permissio ...

  6. Linux常见英文报错中文翻译(菜鸟必知)

    Linux常见英文报错中文翻译(菜鸟必知) 1.command not found 命令没有找到 2.No such file or directory 没有这个文件或目录 3.Permission ...

  7. Linux常见英文报错中文翻译

    Linux常见英文报错中文翻译(菜鸟必知) 1.command not found 命令没有找到 2.No such file or directory 没有这个文件或目录 3.Permission ...

  8. 深入理解 Linux Cgroup 系列(二):玩转 CPU

    原文链接:深入理解 Linux Cgroup 系列(二):玩转 CPU 上篇文章主要介绍了 cgroup 的一些基本概念,包括其在 CentOS 系统中的默认设置和控制工具,并以 CPU 为例阐述 c ...

  9. Dapr 官方文档中文翻译 v1.5 版本正式发布

    作者:敖小剑 - Dapr Approver 经过 Dapr 中国社区十余位贡献者一个多月的努力,Dapr 官方文档中文翻译 v1.5 版本完成翻译和审校,正式发布并上线 Dapr 官网. 访问方式 ...

随机推荐

  1. Linux上安装RePlace

    RePlAce: Advancing Solution Quality and Routability Validation in Global Placement 项目地址 https://gith ...

  2. Oracle数据库包括两个部分数据库和数据库实例

    olsnodes,这个命令用来显示集群点列表(grid即oracle rac的第三个安装包内的软件,可找到) //集群名称[grid@shdb02 ~]$ olsnodes -cshfpdb-clus ...

  3. ORM中聚合函数、分组查询、Django开启事务、ORM中常用字段及参数、数据库查询优化

    聚合函数 名称 作用 Max() 最大值 Min() 最小值 Sum() 求和 Count() 计数 Avg() 平均值 关键字: aggregate 聚合查询通常都是配合分组一起使用的 关于数据库的 ...

  4. 从电路到UI系列之一——常见显示控制接口的认识

    引入 我之前有两方面的使用屏幕的案例.在做的模块上需要用到屏幕来显示的时候,全是SPI屏幕,并口屏幕和IIC屏幕.在研究了驱动(或者是绘图函数更加合适)之后,我发现其实他们就是直接写显存,这个显存在面 ...

  5. clickhouse智能提示编辑器

    对于经常写sql的人来说智能提示是非常重要的,这个非常影响写sql的效率和心情. 这里说的智能提示不仅仅是关键字(select等)的智能提示,还得要做到表字段的智能提示. 例如: 下面是mysql的智 ...

  6. canvas 整个透明

          ctx.globalAlpha=.9

  7. Ubuntu Qt5 Firebird 数据库驱动安装

    Ubuntu Qt5 Firebird 数据库驱动安装 apt install libqt5sql5-ibase

  8. 【大话云原生】煮饺子与docker、kubernetes之间的关系

    云原生的概念最近非常火爆,企业落地云原生的愿望也越发强烈.看过很多关于云原生的文章,要么云山雾罩,要么曲高和寡. 所以笔者就有了写<大话云原生>系列文章的想法,期望用最通俗.简单的语言说明 ...

  9. 集成算法(Bagging & Boosting)

    用多种分类器一起完成同一份任务 Bagging策略(有放回的,随机的,子集大小一样的,m个训练集用同一个模型) Boosting-提升策略(串联) AdaBoost算法

  10. python3 常见错误(一)

    以下全部是在python3中适用. 错误一: 函数默认参数 Python允许为函数的参数提供默认的可选值.但是它可能会导致一些易变默认值的混乱.例子: 我们希望每次调用myFun函数,list1都为默 ...