linux cgroup 原理,深刻理解 Linux Cgroup 系列(二):玩转 CPU

上篇文章主要介绍了 cgroup 的一些基本概念,包括其在 CentOS 系统中的默认设置和控制工具,并以 CPU 为例阐述 cgroup 如何对资源进行控制。这篇文章将会经过具体的示例来演示如何经过 cgroup 来限制 CPU 的使用以及不一样的 cgroup 设置对性能的影响。linux

1. 查看当前 cgroup 信息

有两种方法来查看系统的当前 cgroup 信息。第一种方法是经过 systemd-cgls 命令来查看,它会返回系统的总体 cgroup 层级,cgroup 树的最高层由 slice 构成,以下所示:bash

$ systemd-cgls --no-page

├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 22

├─user.slice

│ ├─user-1000.slice

│ │ └─session-11.scope

│ │ ├─9507 sshd: tom [priv]

│ │ ├─9509 sshd: tom@pts/3

│ │ └─9510 -bash

│ └─user-0.slice

│ └─session-1.scope

│ ├─ 6239 sshd: root@pts/0

│ ├─ 6241 -zsh

│ └─11537 systemd-cgls --no-page

└─system.slice

├─rsyslog.service

│ └─5831 /usr/sbin/rsyslogd -n

├─sshd.service

│ └─5828 /usr/sbin/sshd -D

├─tuned.service

│ └─5827 /usr/bin/python2 -Es /usr/sbin/tuned -l -P

├─crond.service

│ └─5546 /usr/sbin/crond -n

复制代码

能够看到系统 cgroup 层级的最高层由 user.slice 和 system.slice 组成。由于系统中没有运行虚拟机和容器,因此没有 machine.slice,因此当 CPU 繁忙时,user.slice 和 system.slice 会各得到 50% 的 CPU 使用时间。session

user.slice 下面有两个子 slice:user-1000.slice 和 user-0.slice,每一个子 slice 都用 User ID (UID) 来命名,所以咱们很容易识别出哪一个 slice 属于哪一个用户。例如:从上面的输出信息中能够看出 user-1000.slice 属于用户 tom,user-0.slice 属于用户 root。ssh

systemd-cgls 命令提供的只是 cgroup 层级的静态信息快照,要想查看 cgroup 层级的动态信息,能够经过 systemd-cgtop 命令查看:工具

$ systemd-cgtop

Path Tasks %CPU Memory Input/s Output/s

/ 161 1.2 161.0M - -

/system.slice - 0.1 - - -

/system.slice/vmtoolsd.service 1 0.1 - - -

/system.slice/tuned.service 1 0.0 - - -

/system.slice/rsyslog.service 1 0.0 - - -

/system.slice/auditd.service 1 - - - -

/system.slice/chronyd.service 1 - - - -

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值