9

深入剖析Kubernetes-笔记(1)cgroup

 3 years ago
source link: http://www.chenshake.com/in-depth-profiling-kubernetes-notes-1-cgroup/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

 

以前看书的时候,没有动手的习惯,也经常导致理解的有问题,这次为了深入学习kubernetes,把书上原理的东西,都动手验证一遍。

我是在CentOS 7.6,安装了Docker的最新版本来验证这本书里的内容。

 mount -t cgroup
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_prio,net_cls)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)

cpu限制的目录

# ls /sys/fs/cgroup/cpu
cgroup.clone_children  container             cpu.cfs_period_us  cpu.shares         release_agent
cgroup.event_control   cpuacct.stat          cpu.cfs_quota_us   cpu.stat           system.slice
cgroup.procs           cpuacct.usage         cpu.rt_period_us   docker             tasks
cgroup.sane_behavior   cpuacct.usage_percpu  cpu.rt_runtime_us  notify_on_release  user.slice

下面就是操作的例子

cd /sys/fs/cgroup/cpu
mkdir container
ls container/

刚刚创建完的目录下,就已经一堆文件。运行一行代码,这是一个死循环,cpu占有 100%,看看如何通过cgoup来限制这种cpu占有。

# while : ; do : ; done &
[1] 25737

第一行代码是一个死循环,输出25737,是进程id号。通过top,你可以看到这个进程的cpu占用情况

可以很清楚看到 25737进程,已经95%。

查看当前的设置

# cat /sys/fs/cgroup/cpu/container/cpu.cfs_quota_us 
-1
[root@devops ~]# cat /sys/fs/cgroup/cpu/container/cpu.cfs_period_us
100000

修改参数,就可以实现对cpu的控制

echo 2000 > /sys/fs/cgroup/cpu/container/cpu.cfs_quota_us 

把限制的进程id,写入tasks里,这里就是:25737

echo 25737 > /sys/fs/cgroup/cpu/container/tasks 

这时候,你再使用top命令查看cpu占用情况。

看看cpu的限制的效果。

人生第一次做CPU限制,顺利完成。

收尾工程,杀死进程

kill 9 25737

这样你用top就无法看到这个进程。


Recommend

  • 54
    • www.10tiao.com 6 years ago
    • Cache

    Container技术之cgroup入门

    What is Cgroup? Cgroups 是 control groups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如:cpu,memory,IO 等等)的机制。最初由 google 的工程师提出,后来被整合进 Lin...

  • 53

    背景 从 Linux 内核 2.6.25 开始,CGroup 支持对进程内存的隔离和限制,这也是 Docker 等容器技术的底层支撑。 使用 CGroup 有如下好处: 在共享的机器上,进程相互隔离,互不影响,对其它进程是种保护...

  • 25
    • 微信 mp.weixin.qq.com 4 years ago
    • Cache

    Linux Cgroup浅析

    戳蓝字「TopCoder 」关注我们哦!

  • 25
    • 微信 mp.weixin.qq.com 4 years ago
    • Cache

    CGroup 介绍

    CGroup 全称  Control Group 中文意思为  控制组 ,用于控制(限制)进程对系统各种资源的使用,比如  CPU 、 内存 、 网络 和  磁盘I/O...

  • 18
    • 微信 mp.weixin.qq.com 4 years ago
    • Cache

    Docker原理之 - CGroup实现原理

    前面我们介绍了 CGroup 的使用与基本概念,接下来将通过分析源码(本文使用的 Linux2.6.25 版本)来介绍  CGroup 的实现原理。在分析源码前,我们先介绍几个重要的数据结构,因为  CGroup 就是通...

  • 10

    K8S 问题排查:cgroup 内存泄露问题 2020-10-22...

  • 0
    • qiankunli.github.io 2 years ago
    • Cache

    《深入剖析kubernetes》笔记

    本文来自对极客时间《深入剖析kubernetes》的学习,作者本身对k8s 有一定的基础,但认为同样一个事情 听听别人 如何理解、表述 是很有裨益的,尤其是作者 还是k8s 领域的大牛。 作者在开篇中提到的几个问题 ,也是笔者一直的疑惑 容器技术纷...

  • 6

    什么是 cgroupCgroup 是一个 Linux 内核特性,对一组进程的资源使用(CPU、...

  • 3

    Kubernetes 1.25: cgroup v2 graduates to GAWednesday, August 31, 2022Authors:: David Porter (Google), Mrunal Patel (Red Hat)Kubernetes 1.25 brings cgroup v2 to GA (general availability), lett...

  • 1

    Docker & Kubernetes 背景传统 Paas 项目如 Cloud Foundry 最...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK