英文原文:

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. 适配手机端rpx像素

    <script src="static/js/adaptive.js"></script> <script type="text/javas ...

  2. git概述

    学习资料来源-人家写得比我好 #视频教程: https://www.bilibili.com/video/BV1vy4y1s7k6?spm_id_from=pageDriver #文档教程 https ...

  3. 状态机引擎在vivo营销自动化中的深度实践 | 引擎篇02

    本文是<vivo营销自动化技术解密>的第3篇文章,分析了营销自动化业务背景和状态机引入原因.状态机的三种基本实现方式,同时介绍了几种业界流行的开源状态机框架实现和特点,以及在项目开发过程中 ...

  4. 学习day43

    开始学习html知识

  5. Codeforces Round #771 (Div. 2), problem: (B) Odd Swap Sort

    Problem - B - Codeforces 就是给你个序列, 给他整成升序的, 每次操作可以使相邻两个数交换位置, 交换条件是二数之和为奇数 结果只需输出是否可以整成升序的 思路: 需要奇数偶数 ...

  6. openlayers API实现鹰眼图OverviewMap时地图不断闪烁等问题的解决思路

    前言:我吐了,OpenLayers的巨坑之一--鹰眼图OverviewMap创建之必备注意事项. 许久没有更新博客的我,在今天饱受折磨之后一定要分享一下(这么过分一定要说出来.jpg) 相信大家如果使 ...

  7. 解决go-micro与其它gRPC框架之间的通信问题

    在之前的文章中分别介绍了使用gRPC官方插件和go-micro插件开发gRPC应用程序的方式,都能正常走通.不过当两者混合使用的时候,互相访问就成了问题.比如使用go-micro插件生成的gRPC客户 ...

  8. MySQL数据存储

    MySQL体系架构 客户端连接器 提供与MySQL服务器建立的支持.目前几乎支持所有主流的服务端编程技术,例如常见的 Java.C.Python..NET等,它们通过各自API技术与MySQL建立连接 ...

  9. Unreal 输入系统 解析

    前言 输入系统,输入某个键,响应到GamePlay层做对应的事.例如 点击鼠标,前进还是开枪之类,是如何响应的.这里只说应用层逻辑,硬件层逻辑不讲述. 详解 1.问题来源 先看下面一个例子:跳跃的事件 ...

  10. 蓝桥杯Web:【功能实现】菜单树检索

    [功能实现]菜单树检索 背景介绍 实际工作中很多前端攻城狮都会遇到这样一个需求:在多级菜单树中模糊搜索匹配的菜单项,并显示出来. 本题需要在已提供的基础项目中使用 Vue.js 知识,实现对已提供的二 ...