参考链接:容器技术的基石:cgroup

直接上实验:

# docker run --rm -d  --cpus=0.1 --memory=100M --name=test redis:alpine
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
f2bd078c1486b3c24f0f62a4a56ac37c6bb325f172e75ca2e2490f527e919f6d # docker stats f2bd0
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
f2bd078c1486 test 0.12% 2.496MiB / 100MiB 2.50% 656B / 0B 0B / 0B 5 # docker exec -it f2b sh
/data #
/data # cat /dev/urandom | md5sum ## 将cpu打满 # docker stats f2bd0 ## 最高到10%,略有偏差
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
f2bd078c1486 test 10.09% 3.035MiB / 100MiB 3.04% 796B / 0B 0B / 0B 8 ## 查看相关配置文件
dewan@Cloud-VM /sys/fs/cgroup/cpu/docker/f2bd078c1486b3c24f0f62a4a56ac37c6bb325f172e75ca2e2490f527e919f6d% ll cpu.cfs*
-rw-r--r-- 1 root root 0 2022-08-29 16:24 cpu.cfs_period_us # 表示一个cpu带宽
-rw-r--r-- 1 root root 0 2022-08-29 16:24 cpu.cfs_quota_us # 表示Cgroup可以使用的cpu的带宽
dewan@Cloud-VM /sys/fs/cgroup/cpu/docker/f2bd078c1486b3c24f0f62a4a56ac37c6bb325f172e75ca2e2490f527e919f6d% cat cpu.cfs*
100000
10000

查看当前cgroup信息

# systemd-cgls  ## Ubuntu 中执行的结果与Centos中不同,不包括一般系统进程的的cgroup信息
Working directory /sys/fs/cgroup/cpu,cpuacct/docker:
├─db5cdc70d5f568c2797130184f82051aeda1ea94b0f168c9feacdec7978a3db9
│ └─19890 mariadbd
├─1a8e010dce9de03329bfa2ccb79c3989e2e9ff0b927cb3b04c89d48465de189b
│ └─18511 grafana-server --homepath=/usr/share/grafana --config=/etc/grafana/grafana.ini --packaging=docker cfg:default.log.mode=console cfg:default.paths.data=/var/lib/grafana cfg:default.paths.logs=/var/log/grafana cfg:default.paths.plugins=/var/lib
├─5343ee092cd7098ba5ae53718c5d33ee17f0a81f746293ce3ae10ab33a068c6d
│ ├─18626 /bin/sh /sbin/entrypoint.sh
│ ├─18851 nginx: master process nginx
│ ├─18852 php-fpm: master process (/etc/php7/php-fpm.conf)
│ ├─18853 nginx: worker process
│ ├─18864 php-fpm: pool www
│ └─18865 php-fpm: pool www
├─6190b707b2620fd02ca91d29b5df93257df18f261cef736728e2fba43a3a9c78
│ └─18459 /bin/node_exporter --path.rootfs=/host --collector.filesystem.ignored-mount-points ^/(sys|proc|dev|host|etc)($|/)
├─ea343244eb76dca2dde216ac5a2aff8a09e2fb5b55f9794c0dd180bb18f744a6
│ └─18753 /bin/pushgateway
├─e128a8d4c78eb9ec45a79d548503dd27eb218180f0c261feb70dc31faa59e51f
│ └─9572 redis-server *:6379
└─1cfa3cbb9e4fb5dc8e031b08871895212e39b81d1aef6700deb5359bbda72a11
├─18707 /usr/bin/dumb-init /bin/sh /usr/local/bin/docker-entrypoint.sh agent -dev -client 0.0.0.0
└─18902 consul agent -data-dir=/consul/data -config-dir=/consul/config -bind=172.17.0.5 -dev -client 0.0.0.0 # systemd-cgtop -n 1 ## 这里的显示较为全面
Control Group Tasks %CPU Memory Input/s Output/s
/ 474 - 3.1G - -
/docker 70 - 421.0M - -
/docker/1a8e010dce9de03329bfa2ccb79c3989e2e9ff0b927cb3b04c89d48465de189b 10 - 46.7M - -
/docker/1cfa3cbb9e4fb5dc8e031b08871895212e39b81d1aef6700deb5359bbda72a11 9 - 48.5M - -
/docker/5343ee092cd7098ba5ae53718c5d33ee17f0a81f746293ce3ae10ab33a068c6d 6 - 13.5M - -
/docker/6190b707b2620fd02ca91d29b5df93257df18f261cef736728e2fba43a3a9c78 4 - 9.0M - -
/docker/db5cdc70d5f568c2797130184f82051aeda1ea94b0f168c9feacdec7978a3db9 30 - 287.0M - -
/docker/e128a8d4c78eb9ec45a79d548503dd27eb218180f0c261feb70dc31faa59e51f 5 - 2.5M - -
/docker/ea343244eb76dca2dde216ac5a2aff8a09e2fb5b55f9794c0dd180bb18f744a6 6 - 9.2M - -
/system.slice 296 - 1.2G - -
/system.slice/ModemManager.service 3 - 4.6M - -
/system.slice/NetworkManager.service 7 - 15.2M - -
/system.slice/accounts-daemon.service 3 - 3.2M - -
/system.slice/apache2.service 11 - 71.4M - -
/system.slice/atd.service 1 - 452.0K - -
/system.slice/c.mount - - 236.0K - -
/system.slice/chrony.service 1 - 1.2M - -
/system.slice/cloudResetPwdUpdateAgent.service 16 - 48.2M - -
/system.slice/containerd.service 92 - 73.3M - -
/system.slice/cron.service 1 - 108.5M - -
/system.slice/data-mariadb.mount - - 104.0K - -
/system.slice/dbus.service 1 - 2.0M - -
/system.slice/dev-mqueue.mount - - 80.0K - -
/system.slice/docker.service 79 - 196.4M - -
/system.slice/lvm2-lvmetad.service 1 - 688.0K - -
/system.slice/lxcfs.service 11 - 6.3M - -
/system.slice/lxd.socket - - 44.0K - -
/system.slice/networkd-dispatcher.service 2 - 9.4M - -
/system.slice/p8s_data.mount - - 152.0K - -
/system.slice/polkit.service 3 - 2.1M - -
/system.slice/proc-sys-fs-binfmt_misc.mount - - 48.0K - -
/system.slice/rsyslog.service 4 - 4.6M - -
/system.slice/snapd.socket - - 16.0K - -
/system.slice/snmpd.service 1 - 7.3M - -
/system.slice/srv-iso.mount - - 112.0K - -
/system.slice/srv.mount - - 112.0K - -
/system.slice/ssh.service 1 - 5.6M - -
/system.slice/sys-fs-fuse-connections.mount - - 48.0K - -
/system.slice/sys-kernel-config.mount - - 48.0K - -
/system.slice/system-getty.slice 1 - 452.0K - -
/system.slice/system-getty.slice/getty@tty1.service 1 - - - -
/system.slice/system-lvm2\x2dpvscan.slice - - 448.0K - -
/system.slice/system-serial\x2dgetty.slice 1 - 332.0K - -
/system.slice/system-serial\x2dgetty.slice/serial-getty@ttyS0.service 1 - - - -
/system.slice/systemd-journald.service 1 - 182.1M - -
/system.slice/systemd-logind.service 1 - 2.3M - -
/system.slice/systemd-udevd.service 1 - 25.6M - -
/system.slice/unattended-upgrades.service 2 - 10.1M - -
/system.slice/uniagent.service 9 - 46.1M - -
/system.slice/uuidd.service 1 - 416.0K - -
/system.slice/wpa_supplicant.service 1 - 2.4M - -
/system.slice/zabbix-agent.service 6 - 10.4M - -
/system.slice/zabbix-server.service 34 - 42.4M - -
/user.slice 27 - 1.3G - -

cgroup Linux中的资源限制的更多相关文章

  1. linux中的namespace

         本文将就namespace这个知识点,进行简单的归纳总结,力求通俗易通.在资料汇总的过程中,参考了许多网上的博客资料,在文章尾部给出相关链接.      namespace,命名空间,从名字 ...

  2. linux中使用top获取进程的资源占用信息

    在linux中使用top获取进程的资源占用信息: Cpu(s):  1.0%us,  0.0%sy,  0.0%ni, 98.3%id,  0.7%wa,  0.0%hi,  0.0%si,  0.0 ...

  3. [转]Linux中进程内存与cgroup内存的统计

    From: http://hustcat.github.io/about/ Linux中进程内存与cgroup内存的统计 在Linux内核,对于进程的内存使用与Cgroup的内存使用统计有一些相同和不 ...

  4. 如何查看 Linux 中所有正在运行的服务

    有许多方法和工具可以查看 Linux 中所有正在运行的服务.大多数管理员会在 System V(SysV)初始化系统中使用 service service-name status 或 /etc/ini ...

  5. [转帖]linux中systemctl详细理解及常用命令

    linux中systemctl详细理解及常用命令 2019年06月28日 16:16:52 思维的深度 阅读数 30 https://blog.csdn.net/skh2015java/article ...

  6. linux中systemctl详细理解及常用命令

    linux中systemctl详细理解及常用命令 https://blog.csdn.net/skh2015java/article/details/94012643 一.systemctl理解 Li ...

  7. 【转载】Linux中常用操作命令

    说明:开始学习linux系统,为了方便查看,特转载一篇Linux中常用操作命令,转载地址:http://www.cnblogs.com/laov/p/3541414.html 正文: Linux简介及 ...

  8. Linux中fork的秘密

    linux中fork()函数详解         一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以 ...

  9. linux 中/proc 详解

    proc 文件系统 在Linux中有额外的机制可以为内核和内核模块将信息发送给进程-- /proc 文件系统.最初设计的目的是允许更方便的对进程信息进行访问(因此得名),现在它被每一个有有趣的东西报告 ...

  10. <实训|第十三天>linux中ACL权限控制以及磁盘配额,附编译属于自己的linux内核

    [root@localhost~]#序言 首先讲讲昨天关于缩容失败,开不机的解决方法:ACL权限也算是一个很重要的知识点,不难,但是很实用:磁盘配额一般不需要自己弄,但是要懂得原理.剩下的就是编译属于 ...

随机推荐

  1. java无效发源版本xx

    这三个地方统一一下 就可以解决了

  2. Appweb-6.1.1 移植到ARM

    Appweb-6.1.1 移植到ARM 编译环境:ubuntu-12.04 x64 开发平台:Hi3535 arm版 编译版本:appweb-6.1.1.zip ESP下载地址=> ESP we ...

  3. Prism Sample 14-UsingEventAggregator

    这次是事件聚合器的应用. 事件聚合器应用第一步:定义一个事件聚合器,应该是一个可访问的公共区域,例14为它做了一个core的项目.代码很简单: using Prism.Events; namespac ...

  4. 2021-07-20:最小区间。你有 k 个 非递减排列 的整数列表。找到一个 最小 区间,使得 k 个列表中的每个列表至少有一个数包含在其中。我们定义如果 b-a < d-c 或者在 b-a ==

    2021-07-20:最小区间.你有 k 个 非递减排列 的整数列表.找到一个 最小 区间,使得 k 个列表中的每个列表至少有一个数包含在其中.我们定义如果 b-a < d-c 或者在 b-a ...

  5. vue cli3 整合Cesium,处理build 时内存溢出问题

    一直使用cesium,但是都是使用script直接引入的,但是在将其放置在增加路由的子页面中中时会出现一个问题,刷新后提示cesium is undefined 看直接引入cesium.js < ...

  6. Cesium中监听MOUSE_MOVE事件获取经纬度和高度

    有时候在这个圆球上获取精确的经度纬度还不容易,特别是高度 还好在cesium提供了接口,看 let selft = this; const scene = this.viewer.scene; var ...

  7. 用BP软件 批量注册用户

    第五步:查看管理员后台----用户界面, 有没有批量添加进用户

  8. Java笔试真题及参考答案

    题目 使用Swing实现一个窗口程序,窗口包括一个菜单栏,请按以下要求实现相应功能. (1)窗口标题为"GUI程序",大小为400X300, 居中显示:窗口上有一个面板,面板背景色 ...

  9. SpringBoot整合OSS文件上传

    一.注册阿里云账号并开通OSS服务 1.登录阿里云账号 2.创建一个bucket 3.创建子用户 对自用户分配权限,打开操作OSS的全部权限(也可根据业务需求进行更改) 4.配置上传跨域规则 任何来源 ...

  10. tryhackme-OWASP

    tryhackme-OWASP Top 10部分记录 敏感信息泄露 在assets目录中 可以看到到一个sqlite数据库的webapp.db文件 使用sqlite3 webapp.db .table ...