linux 文件监听 c,Linux CGroup 监控

Linux CGroup 监控

2017-07-23 Sunday

CPU

如果 CPU 被 cgroup 限制了,那么可以通过 cpu.stat 中的 throttled_time 进行查看,也就是由于 cgroup 配置的 CPU 不足导致。

另外,还有一种可能是进程经常被抢占,通常是由于当前 CPU 中的资源不足导致,进程之间频繁切换导致,可以通过 /proc//status 中的 nonvoluntary_ctxt_switches 字段查看。

监控文件

cgroup 中的 CPU 监控涉及到了几个文件,包括了 cpuacct.stat cpuacct.usage cpu.stat 三个。

cpuacct.usage 统计了所有 CPU 核的累加使用时间,单位是纳秒。在 cpuacct.stat 中统计了该控制组中进程用户态和内核态的 CPU 使用量,其单位是 USER_HZ。

注意,相比 cpuacct.stat 来说,cpuacct.usage 的值会更加精确一些。

cpu.stat

该文件主要包含了下面三项统计结果。

nr_periods 使用了多少个 cpu.cfs_period_us 里面配置的时间周期;

nr_throttled 在上面的这些周期中,有多少次是受到了限制,也就是 cgroup 中的进程在指定的时间周期中用光了它的配额;

throttled_time 进程被限制使用 CPU 持续了多长时间(纳秒)。

MEM

cgroup 中对于内存提供了很精细的控制,会按照不同的范围进行划分,例如物理内存 (memory)、物理 + Swap (memsw)、内核TCP (kmem.tcp) 等等。

每个子类又包括了当前内存使用 usage_in_bytes、最大使用内存 max_usage_in_bytes、内存限制 limit_in_bytes,还包括了内存详细的使用情况 memory.stat 。

memory.stat

在 3.10 内核中对应了 memcg_stat_show() 函数,

cache- # of bytes of page cache memory.

rss- # of bytes of anonymous and swap cache memory (includes

transparent hugepages).

rss_huge- # of bytes of anonymous transparent hugepages.

mapped_file- # of bytes of mapped file (includes tmpfs/shmem)

swap- # of bytes of swap usage

如果喜欢这里的文章,而且又不差钱的话,欢迎打赏个早餐 ^_^

支付宝打赏

微信打赏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值