docker对cpu资源做限制

这篇具有很好参考价值的文章主要介绍了docker对cpu资源做限制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

`

一、cgroup

1.groups四大功能

资源限制:可以对任务使用的资源总额进行限制
优先级分配:通过分配的cpu时间片数量以及磁盘IO带宽大小,实际上相当于控制了任务运行优先级
资源统计:可以统计系统的资源使用量,如cpu时长,内存用量等
任务控制:cgroup可以对任务执行挂起、恢复等操作

2.CPU 资源控制

1、设置CPU使用率上限
Linux通过CFS(Completely Fair Scheduler,完全公平调度器)来调度各个进程对CPU的使用。CFS默认的调度周期是100ms。
CPU周期:指的是CFS调度CPU遍历处理一次容器所有的进程时长,默认是0.1s。设置范围为1ms~1s
Cgroups限制时间:使用cpu.cfs_quota_us 即可设置在每个周期内容器能使用的CPU的时长,默认是-1即不限制。
CPU利用率:Cgroups限制时间/CPU周期,默认Cgroups是-1而CPU周期为0.1s表示用满CPU
查看CPU默认配置:
docker对cpu资源做限制
docker对cpu资源做限制

-1为不设置时间

docker对cpu资源做限制

echo 50000 >cpu.cfs_quota_us
cat cpu.cfs_quota_us
再运行死循环脚本查看top进程发现只有50%对其做了限制

docker对cpu资源做限制

docker run -itd --name c3 --cpu-quota 30000 soscscs/myapp:v1
cd /sys/fs/cgroup/cpu/docker

docker对cpu资源做限制
docker对cpu资源做限制文章来源地址https://www.toymoban.com/news/detail-476325.html

二、

1.限制可用的 swap 大小, --memory-swap

强调一下,–memory-swap 是必须要与 --memory 一起使用的。
正常情况下,–memory-swap 的值包含容器可用内存和可用 swap。
所以 -m 300m --memory-swap=1g 的含义为:容器可以使用 300M 的物理内存,并且可以使用 700M(1G - 300)的 swap。
如果 --memory-swap 设置为 0 或者 不设置,则容器可以使用的 swap 大小为 -m 值的两倍。
如果 --memory-swap 的值和 -m 值相同,则容器不能使用 swap。
如果 --memory-swap 值为 -1,它表示容器程序使用的内存受限,而可以使用的 swap 空间使用不受限制(宿主机有多少 swap 容器就可以使用多少)。

2.对磁盘IO配额控制(blkio)的限制

--device-read-bps:限制某个设备上的读速度bps(数据量),单位可以是kb、mb(M)或者gb。
docker run -itd --name test9 --device-read-bps /dev/sda:1M  centos:7 /bin/bash
1
--device-write-bps : 限制某个设备上的写速度bps(数据量),单位可以是kb、mb(M)或者gb。
docker run -itd --name c2 --device-write-bps /dev/sda:1M centos:7
docker exec -it c2 bash
dd if=/dev/zero of=./text.txt bs=1M count=10 oflag=direct
--device-read-iops :限制读某个设备的iops(次数)
--device-write-iops :限制写入某个设备的iops(次数)
docker run -itd --name c5 --device-write-bps /dev/sda:1M soscscs/myapp:v1

总结

到了这里,关于docker对cpu资源做限制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 极简组调度-CGroup如何限制cpu

    1. 说明 1 linux内核关于task调度这块是比较复杂的,流程也比较长,要从源码一一讲清楚很容易看晕,因此需要简化,抓住主要的一个点,抛开无关的部分才能讲清楚核心思想 2 本篇文章主要是讲清楚在cfs公平调度算法中,CGroup如何限制cpu使用的主要过程,所以与此无关的代码

    2023年04月15日
    浏览(32)
  • 如何在Linux上通过cgroup限制一个进程使用CPU和内存

    Cgroup(Control Group)是 Linux 内核的一个功能,可以通过它来限制进程的 CPU 和内存占用。Cgroup 实现了对系统资源的细粒度控制和管理,可以将一组进程放入同一个 Cgroup 中,并对该 Control Group 中的所有进程共享相应的资源配额。 下面举个实际的例子,演示如何使用 Cgroup 限制一

    2024年02月15日
    浏览(36)
  • 使用cgroup工具对服务器某些/全部用户进行计算资源限制

    主要介绍,如何对指定/所有用户进行资源限定(这里主要介绍cpu和内存占用限制),防止某些用户大量占用服务器计算资源,影响和挤占他人正常使用服务器。 安装 cgroup 管理工具 使用 mount -t cgroup 命令检查验证 可以通过编写 /etc/cgconfig.conf 和 /etc/cgrules.conf 文件进行计算资

    2024年02月10日
    浏览(44)
  • Docker资源控制cgroups

    Docker 通过 Cgroup 来控制容器使用的资源配额,包括 CPU、内存、磁盘三大方面, 基本覆盖了常见的资源配额和使用量控制。 Cgroup 是 ControlGroups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如 CPU、内存、磁盘 IO 等等) 的机制,被 LXC、docker 等

    2024年02月10日
    浏览(40)
  • 十七、Docker之Cgroup资源配置

    其实在日常的工作中,我们一般都没有对docker容器进行资源限制,也就是默认情况下,可以使用宿主机的所有资源。但是如果你运行的服务有问题,就有可能对宿主机和宿主机上的其他业务造成影响,这还是有一定的风险。那么本文会给大家介绍一下如何对容器进行资源配置

    2024年02月16日
    浏览(47)
  • 【云原生】Docker Cgroups资源控制管理

    目录 一、cgroups简介 cgroups有四大功能: 二、cpu时间片的概念 三、对CPU使用的限制 3.1 设置CPU使用率上限 (1)查看容器的默认CPU使用限制 (2)进行压力测试 (3)创建容器时设置CPU使用时间限制 (4)对已存在的容器进行CPU限制 3.2 设置CPU资源占用比(设置多个容器时才有效

    2024年02月12日
    浏览(43)
  • docker cgroup资源占用及docker的镜像创建

    基本复写了常见的资源配额和使用量控制 cgroup是controlgroup的缩写 设置cpu使用率的上限 linux通过cfs(完全公平调度器)来调度各个进程对cpu的使用,cfs默认的调度周期是100ms 我们可以设置每个容器进程的调度周期,以及再这个周期内各个容器最多能使用cpu时间。 cpu分多少时间

    2024年02月08日
    浏览(46)
  • 【云原生】Docker网络及Cgroup资源控制

    Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的 Container-IP 直

    2024年02月16日
    浏览(43)
  • docker网路原理及cgroup硬件资源占用控制

    docker网络模式有bridge、host、none、containe和自定义 1.host模式 相当于Vmware中的桥接模式,与宿主机在同一个网络中,但没有独立IP地址。 Docker使用了Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。 一个Network N

    2024年02月08日
    浏览(48)
  • linux 内核资源配置--cgroups详解以及在docker中的应用

    1.1、cgroups 是什么 Linux cgroup (Control Groups)是 Linux 内核提供的一种机制, 用于限制进程组使用的资源(如 CPU、内存、磁盘 I/O 等) 。通过将进程组划分为层次结构,并将资源限制应用于不同层次的组,可以实现对系统资源的统一管理和限制。 cgroup 提供了一套 API,用于创建

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包