首页 > 其他分享 >CPU核算控制器 【ChatGPT】

CPU核算控制器 【ChatGPT】

时间:2023-12-09 21:44:37浏览次数:32  
标签:控制器 fs cpuacct CPU sys cgroup ChatGPT 核算

原文:https://www.kernel.org/doc/html/v6.6/admin-guide/cgroup-v1/cpuacct.html

CPU核算控制器

CPU核算控制器用于使用cgroups对任务进行分组,并核算这些任务组的CPU使用情况。

CPU核算控制器支持多层级分组。一个核算组累积其所有子组和直接存在于其组中的任务的CPU使用情况。

可以通过首先挂载cgroup文件系统来创建核算组:

# mount -t cgroup -ocpuacct none /sys/fs/cgroup

通过上述步骤,初始或父核算组将出现在/sys/fs/cgroup中。在启动时,此组包括系统中的所有任务。/sys/fs/cgroup/tasks列出了此cgroup中的任务。/sys/fs/cgroup/cpuacct.usage给出了此组获得的CPU时间(以纳秒为单位),这实质上是系统中所有任务获得的CPU时间。

可以在父组/sys/fs/cgroup下创建新的核算组:

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

上述步骤创建了一个新组g1,并将当前shell进程(bash)移入其中。可以从g1/cpuacct.usage获取由此bash及其子进程消耗的CPU时间,并且这些时间也会累积在/sys/fs/cgroup/cpuacct.usage中。

cpuacct.stat文件列出了一些统计数据,进一步将cgroup获得的CPU时间分为用户和系统时间。目前支持以下统计数据:

  • user:cgroup中任务在用户模式下花费的时间。
  • system:cgroup中任务在内核模式下花费的时间。

用户和系统以USER_HZ单位表示。

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

  1. 理论上可能会看到用户和系统时间的错误值。这是因为在32位系统上,percpu_counter_read()不安全,可能会受到并发写入的影响。
  2. 由于percpu_counter的批处理特性,可能会看到略微过时的用户和系统时间值。

标签:控制器,fs,cpuacct,CPU,sys,cgroup,ChatGPT,核算
From: https://www.cnblogs.com/pengdonglin137/p/17876249.html

相关文章

  • RCU补丁审查清单 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/RCU/checklist.htmlRCU补丁审查清单本文档包含了一个用于生成和审查使用RCU的补丁的清单。违反以下列出的任何规则都会导致与省略锁原语相同类型的问题。这份清单基于审查这类补丁的经验,经历了相当长的一段时间,但总是欢迎改进!RCU是否......
  • Linux通用中断处理 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/core-api/genericirq.htmlLinux通用中断处理版权©2005-2010:ThomasGleixner©2005-2006:IngoMolnar简介通用中断处理层旨在为设备驱动程序提供完整的中断处理抽象。它能够处理所有不同类型的中断控制器硬件。设备驱动程序使用......
  • 循环缓冲区 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/core-api/circular-buffers.html循环缓冲区作者DavidHowellsdhowells@redhat.comPaulE.McKenneypaulmck@linux.ibm.comLinux提供了许多功能,可用于实现循环缓冲区。有两组这样的功能:用于确定2的幂大小缓冲区信息的便利函数。......
  • Linux中的红黑树(rbtree)【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/core-api/rbtree.html红黑树(rbtree)在Linux中日期2007年1月18日作者RobLandleyrob@landley.net红黑树是什么,它们有什么作用?红黑树是一种自平衡的二叉搜索树,用于存储可排序的键/值数据对。这与基数树(用于高效存储稀疏数组,因......
  • 本地原子操作的语义和行为 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/core-api/local_ops.html这篇文档介绍了本地原子操作的语义和行为,以及如何在任何给定的架构中实现它们,并展示了它们如何被正确地使用。它还强调了在读取这些本地变量时必须采取的预防措施,特别是当内存写入的顺序很重要时。注意请注意,......
  • 为内核对象添加引用计数器(krefs)【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/core-api/kref.html为内核对象添加引用计数器(krefs)作者CoreyMinyardminyard@acm.org作者ThomasHellstromthellstrom@vmware.com其中很多内容都是从GregKroah-Hartman的2004年OLS论文和关于krefs的演示中借鉴而来的,可以在......
  • Linux kernel memory barriers 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/core-api/wrappers/memory-barriers.htmlLinux内核内存屏障免责声明本文档不是一个规范;它故意(为了简洁)和无意(因为是人类)不完整。本文档旨在指导如何使用Linux提供的各种内存屏障,但如果有任何疑问(而且有很多),请咨询。一些疑问可能通过参......
  • refcount_t API 与 atomic_t 的比较 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/core-api/refcount-vs-atomic.htmlrefcount_tAPI与atomic_t的比较介绍相关的内存排序类型函数比较非“读/修改/写”(RMW)操作基于增量的操作,不返回值基于减量的RMW操作,不返回值基于增量的RMW操作,返回值通用的减......
  • 中断 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/core-api/irq/index.htmlIRQs什么是IRQ?SMPIRQ亲和性Linux内核中的irq_domain中断号映射库IRQ标志状态跟踪什么是IRQ?IRQ(中断请求)是设备发出的中断请求。目前,它们可以通过引脚或数据包传输而来。多个设备可以连接到同一个引脚上......
  • CPU热插拔在内核中的支持 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/core-api/cpu_hotplug.htmlCPU热插拔在内核中的支持日期2021年9月作者SebastianAndrzejSiewiorbigeasy@linutronix.de,RustyRussellrusty@rustcorp.com.au,SrivatsaVaddagirivatsa@in.ibm.com,AshokRajashok.raj@intel.c......