繁体   English   中英

如何减少 docker 在命令行上的资源分配?

[英]How to decrease docker's resource allocation on command line?

我正在使用 Digital Ocean Droplet vm。 我有一个生产虚拟机,它运行一个简单的 spring 应用程序、react 应用程序和 mysql 作为服务。 我想在 docker 上运行所有这些,以便能够使用 compose 文件轻松配置 spring 应用程序属性,因此我为测试环境打开了一个新的 vm 并安装了 docker。 我只在测试环境中的 docker 上运行 spring app 和 mysql,但 cpu 在测试环境中的使用率非常高。 Prod 正在使用 %1-2,而测试正在使用 %97 的 CPU。 如下所示: 在此处输入图像描述

2 个虚拟机之间的唯一区别是 docker,所以我认为这是由于 docker。 如何降低 docker 的 CPU 限制? 我已经检查过 docs.docker 也有一些这样的网站,但我无法弄清楚。 他们在谈论 CPU 的数量,但我的虚拟机只有 1 个 CPU,所以我对 CPU 数量或份额等感到困惑。这是我的测试虚拟机中docker stats命令的结果: 在此处输入图像描述

如您所见,容器使用的 CPU 非常低,但总的来说(以 Digital Ocean Page 的指标计)我的虚拟机的 CPU 使用率很高。 如何降低 docker 的 CPU 限制? 提前致谢。

注意:我正在从 docker-compose 文件运行容器,所以我应该向 compose 文件添加一些环境变量吗? 容器已经使用了非常低的 cpu %0.13 等。但是 docker 本身使用了巨大的 cpu 分配。 所以我的问题不是特定容器使用了多少 cpu。 我需要像在 docker 仪表板应用程序首选项中一样限制整个 docker 的使用。

要减少分配给 Docker 容器的 CPU 资源,您可以在启动容器时使用 --cpus 标志。

例如,如果你想启动一个只有 0.5 个 CPU 的容器,你可以使用以下命令:

docker run --cpus=0.5 ubuntu:14.04 /bin/bash

可以找到更多信息CPU Docker Docs

除了限制 Docker 容器的 CPU 资源外,您还可以尝试限制主机本身的 CPU 资源。 您可以使用 cpulimit 来执行此操作。

如果你想将系统的 CPU 使用率限制在 50% → cpulimit -l 50

请记住,限制主机系统的 CPU 资源可能会影响系统上运行的所有其他进程和应用程序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM