cgroup Linux中的资源限制
参考链接:容器技术的基石: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中的资源限制的更多相关文章
- linux中的namespace
本文将就namespace这个知识点,进行简单的归纳总结,力求通俗易通.在资料汇总的过程中,参考了许多网上的博客资料,在文章尾部给出相关链接. namespace,命名空间,从名字 ...
- 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 ...
- [转]Linux中进程内存与cgroup内存的统计
From: http://hustcat.github.io/about/ Linux中进程内存与cgroup内存的统计 在Linux内核,对于进程的内存使用与Cgroup的内存使用统计有一些相同和不 ...
- 如何查看 Linux 中所有正在运行的服务
有许多方法和工具可以查看 Linux 中所有正在运行的服务.大多数管理员会在 System V(SysV)初始化系统中使用 service service-name status 或 /etc/ini ...
- [转帖]linux中systemctl详细理解及常用命令
linux中systemctl详细理解及常用命令 2019年06月28日 16:16:52 思维的深度 阅读数 30 https://blog.csdn.net/skh2015java/article ...
- linux中systemctl详细理解及常用命令
linux中systemctl详细理解及常用命令 https://blog.csdn.net/skh2015java/article/details/94012643 一.systemctl理解 Li ...
- 【转载】Linux中常用操作命令
说明:开始学习linux系统,为了方便查看,特转载一篇Linux中常用操作命令,转载地址:http://www.cnblogs.com/laov/p/3541414.html 正文: Linux简介及 ...
- Linux中fork的秘密
linux中fork()函数详解 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以 ...
- linux 中/proc 详解
proc 文件系统 在Linux中有额外的机制可以为内核和内核模块将信息发送给进程-- /proc 文件系统.最初设计的目的是允许更方便的对进程信息进行访问(因此得名),现在它被每一个有有趣的东西报告 ...
- <实训|第十三天>linux中ACL权限控制以及磁盘配额,附编译属于自己的linux内核
[root@localhost~]#序言 首先讲讲昨天关于缩容失败,开不机的解决方法:ACL权限也算是一个很重要的知识点,不难,但是很实用:磁盘配额一般不需要自己弄,但是要懂得原理.剩下的就是编译属于 ...
随机推荐
- Tars-Cpp 协程实现分析
作者:vivo 互联网服务器团队- Ye Feng 本文介绍了协程的概念,并讨论了 Tars Cpp 协程的实现原理和源码分析. 一.前言 Tars 是 Linux 基金会的开源项目(https:// ...
- Win Pycharm + Appium + 夜神模拟器 实现APP自动化
前言: 之前的文章已经介绍完通过使用 真机 进行APP自动化.此篇文章将介绍使用 夜神模拟器(Nox) 进行APP自动化测试. 一.基础配置 1.请移步此篇文章(https://www.cnblogs ...
- 使用 Semantic Kernel 实现 Microsoft 365 Copilot 分析
3月16日,微软发布了微软365 Copilot[1]. Microsoft 365 Copilot 将您现有的 Word.Excel.PowerPoint.Outlook 和 Teams 与大型语言 ...
- AI 绘画基础 - 细数 Stable Diffusion 中的各种常用模型 【🧙 魔导士装备图鉴】
AI 绘画新手魔导士在刚开始玩 Stable Diffusion 时总会遇到各种新的概念,让人困惑,其中就包括各种模型和他们之间的关系. 魔法师入门得先认识各种法师装备(各种模型),让我们遇到问题知道 ...
- 2022-03-19:已知一棵二叉树上所有的值都不一样, 给定这棵二叉树的头节点head, 给定一个整型数组arr,arr里放着不同的值,每个值一定在树上 返回数组里所有值的最低公共祖先。
2022-03-19:已知一棵二叉树上所有的值都不一样, 给定这棵二叉树的头节点head, 给定一个整型数组arr,arr里放着不同的值,每个值一定在树上 返回数组里所有值的最低公共祖先. 答案202 ...
- 2021-05-06:给定一个二维数组matrix, 你可以从任何位置出发,走向上下左右四个方向 。返回能走出来的最长的递增链长度。
2021-05-06:给定一个二维数组matrix, 你可以从任何位置出发,走向上下左右四个方向 .返回能走出来的最长的递增链长度. 福大大 答案2021-05-06: 自然智慧即可. 动态规划.二维 ...
- 关于SpringBoot AutoConfiguration
(1)如何导入的自动配置类 首先我们得从@SpringBootApplication注解入手. @SpringBootApplication public class SpringBootDemoAp ...
- Python基础 - 输入和输出
输出 Python提供了 print() 内置函数完成输出 1 print("你好") 2 3 4 # 你好 n = "你好" print(n) # 你好 ...
- Redis系列14:使用List实现消息队列
Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5: ...
- 【Python&GIS】判断图片中心点/经纬度点是否在某个面内
Python的exifread库可以获取图片中的源数据信息,包括经纬度.相机厂商.曝光时间.焦距.拍摄时间.拍摄地点等等信息.我们可以通过exifread库从图片中获取图片的经纬度,再通过shape ...