【Docker】限制已运行容器的Cpu和内存

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

docker限制已运行容器的Cpu和内存

本文首发于 慕雪的寒舍

1.问题描述

最近云服务器的内存经常不够用,而且是莫名其妙的增多,在腾讯云的控制台里面看,4g的内存占用了3.2g,就卡到连ssh都连不上了

PS: 已换过网络和设备,确认不是网络问题导致无法ssh

【Docker】限制已运行容器的Cpu和内存

实在没辙了,只能把我的几个不热门的kook-bot移植到replit白嫖,再限制一下lsky图床docker镜像的内存用量

其实主要是nsfw-api的内存用量,我发现有人故意给我的图床上传h图。lsky后台由于鉴黄不通过,不允许上传,也看不到是谁干的。隔这压力测试呢?

我的图床基本只对自己的博客使用。开放游客上传,也只是方便大家临时上传一些图片,还请大家手下留情!!!😥

这个操作我做了几次,也算是一个高频操作了。在此记录一下如何更改一个正在运行中容器的内存限制

2.修改内存限制

先使用ps命令查看当前容器和对应的id

docker ps

可以看到,lsky图床和nsfw的镜像分别是第二个和第三个

【Docker】限制已运行容器的Cpu和内存

再用stats命令查看当前的状态

docker stats

【Docker】限制已运行容器的Cpu和内存

可以看到,图床的内存没有进行限制,nsfw的内存已经被限制到了618mb,当前已用565mb,基本要满了

重启一下容器,发现初始化的时候只需要100mb左右的内存,合计着现在就有人在往图床里面上传图片?🤣🤣🤣

【Docker】限制已运行容器的Cpu和内存

这怎么行,直接给它内存限制干到512mb,能省一点内存是一点,不能因为图床导致我服务器卡死。

修改限制,要使用的是container update命令

参考文档

名称,简写 默认值 描述
–blkio-weight 0 阻塞IO(相对权重),介于101000之间,或0禁用(默认为0)
–cpu-period 0 限制CPU CFS(完全公平的调度程序)周期
–cpu-quota 0 限制CPU CFS(完全公平的调度程序)配额
–cpu-rt-period 0 限制CPU实时周期(以微秒为单位)
–cpu-rt-runtime 0 以微秒为单位限制CPU实时运行时间
–cpu-shares, -c 0 CPU份额(相对权重)
–cpuset-cpus 允许执行的CPU(0-3,0)
–cpuset-mems 允许执行的内存率(0-3,0.1)
–kernel-memory 内核内存限制
–memory, -m 内存限制
–memory-reservation 内存软限制
–memory-swap 交换限制等于内存加交换:-1以启用无限制的交换
–restart 重新启动在容器退出时应用的策略

模板如下

docker container update 容器名 --memory="2g"  --memory-swap="-1"

上面的命令会限制容器的内存为2gb,交换内存设置为-1(以启用无限制的交换)

比如我现在想修改nsfw容器的内存限制,应该如下操作

docker container update nsfw-api --memory="0.5g" 

然后发现报错了

Error response from daemon: Cannot update container 418fc2a79fa7ad2e637babe17424ee60e9027ef4a7fada3f279864e76bdaaa10: Memory limit should be smaller than already set memoryswap limit, update the memoryswap at the same time

大概意思是让我们同时更新交换内存

docker container update nsfw-api --memory="0.5g"  --memory-swap="-1"

现在就ok了,执行成功会显示镜像的名字

nsfw-api

stats看一下,发现已经修改成功了

docker stats

【Docker】限制已运行容器的Cpu和内存

修改其他容器的效果也是一样的,目的已经达到啦!

3.修改cpu限制

下面的命令意思是限制容器只能使用主机上两个cpu

docker container update  容器名 --cpus=2

但我没有理解这个两个cpu是什么含义。考虑到大部分时期,cpu负载都不会很大,暂时先不设置这个了

https://www.cnblogs.com/sparkdev/p/8052522.html

https://zhuanlan.zhihu.com/p/388012843文章来源地址https://www.toymoban.com/news/detail-425102.html

到了这里,关于【Docker】限制已运行容器的Cpu和内存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • docker限制容器内存的方法

    在服务器中使用 docker 时,如果不对 docker 的可调用内存进行限制,当 docker 内的程序出现不可预测的问题时,就很有可能因为内存爆炸导致服务器主机的瘫痪。而对 docker 进行限制后,可以将瘫痪范围控制在 docker 内。 因此,本文将介绍使用 docker 进行容器内存限制的方法。

    2024年02月01日
    浏览(16)
  • ubuntu 如何在docker容器内部查看允许使用的cpu详细信息以及管理员是否限制了docker容器可使用的cpu核心范围

    如题。最近在跑强化学习代码,发现自己的代码跑的好慢好慢好慢,怀疑是可使用的cpu数量被管理员限制了,于是去学习了一下如何查看docker容器中cpu的相关信息。 这将输出关于系统处理器的详细信息,包括每个 CPU 的数量、型号和速度。 在 Docker 容器中,默认情况下,可以

    2024年02月13日
    浏览(16)
  • 【云原生】监视Docker桌面的容器内存和CPU使用情况

    目录 一、如何监视Docker桌面的容器内存和CPU使用情况 1、stats命令 2、Docker 统计命令stats是如何工作的 2.1、命令与描述 2.2、OPTIONS 2.3、例子 2.4、格式化 3、满足资源使用扩展 4、如何安装“资源使用情况”扩展插件? 5、总结     Docker 有一个内置的 stats 命令,可以简单地查看

    2023年04月09日
    浏览(13)
  • Docker网络(网络通信),资源控制(CPU优化,内存优化,磁盘优化),数据管理(数据卷,端口映射,容器互联)

    目录 docker网络 网络实现原理 网络实现实例 网络模式 查看Docker中的网络列表: 指定容器网络模式 模式详解 Host模式(主机模式): Container模式(容器模式): None模式(无网络模式): Bridge模式(桥接模式): 自定义网络: cpu优化概述 1. 资源限制: 2. CPU 实时调度策略:

    2024年01月16日
    浏览(30)
  • k8s pod “cpu和内存“ 资源限制

    转载用于收藏学习:原文 为了保证充分利用集群资源,且确保重要容器在运行周期内能够分配到足够的资源稳定运行,因此平台需要具备 Pod的资源限制的能力。 对于一个pod来说,资源最基础的2个的指标就是:CPU和内存。 Kubernetes提供了个采用requests和limits 两种类型参数对资

    2024年02月13日
    浏览(21)
  • 如何在Linux上通过cgroup限制一个进程使用CPU和内存

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

    2024年02月15日
    浏览(14)
  • 【云原生|Kubernetes】10-Namespace的cpu和内存的请求与限制

    ​ 一个 Kubernetes 集群可被划分为多个命名空间。 如果你在具有默认内存限制的命名空间内尝试创建一个 Pod,并且这个 Pod 中的容器没有声明自己的内存资源限制, 那么控制面会为该容器设定默认的内存限制。 创建namespace 为该 namespace 创建内存 LimitRange 查看 namespace 详细信息

    2024年02月08日
    浏览(17)
  • 【云原生|Kubernetes】09-Pod的CPU和内存的请求与限制

    在 Kubernetes 中,请求(request)和限制(limit)是用于管理容器资源的两个重要概念。 请求是指容器所需的资源量,可以视为容器启动时保证其正常运行所需的最小资源量。 例如,如果一个容器需要 1 个 CPU 和 256MB 内存才能运行,那么可以在 Pod 的容器定义中设置这些资源的请

    2024年02月08日
    浏览(21)
  • docker对cpu资源做限制

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

    2024年02月08日
    浏览(17)
  • [3D数据深度学习] (PC/服务器集群cluster)CPU内存/GPU显存限制及解决办法

    3D数据的深度学习目前研究远不如2D深度学习成熟,其中最大的一个原因之一就是收到硬件条件的限制。3D数据虽说只比2D数据增加了一个维度,但所占据的内存却是成倍的增长。对于3D数据的深度学习,我们会分析其在CPU内存和GPU显存两方面的限制,希望大家能够充分利用自己

    2024年02月10日
    浏览(20)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包