标题 | 浅析云计算中Docker容器的资源管理 |
范文 | 吴小青 [摘 ? ?要] Docker是一个开源的应用容器引擎,用于开发,打包和运行应用程序的开放平台。Docker能够将应用程序与基础架构分开,让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到Linux机器上。Docker使得开发者可以用与管理应用程序相同的方式来管理基础架构,利用 Docker的方法来快速交付、测试和部署代码。 本文主要围绕哪些分配给容器的资源可被使用和管理,容器实际使用了多少资源,如何对容器使用的资源进行管理三个问题展开论述。 [关键词] Docker;容器;资源管理;云计算 doi : 10 . 3969 / j . issn . 1673 - 0194 . 2020. 21. 065 [中图分类号] TP315 ? [文献标识码] ?A ? ? ?[文章编号] ?1673 - 0194(2020)21- 0147- 03 0 ? ? ?引 ? ?言 云计算领域中,Docker是开发者需要具备的基本技能,它是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache 2.0 协议开源。Docker 是一个用于开发,打包和运行应用程序的开放平台。Docker能够将应用程序与基础架构分开,让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker使得开发者可以用与管理应用程序相同的方式来管理基础架构。通过利用 Docker的方法来快速交付、测试和部署代码,可以大大减少编写代码和在生产环境中运行代码之间的延迟。 如果开发者想在实际生产环境中使用Docker,并且能够有效地处理问题必须对以下三个问题有深刻的认知: (1)哪些分配给容器的资源可被使用和管理; (2)容器实际使用了多少资源; (3)如何对容器使用的资源进行管理。 1 ? ? ?可管理的资源类型 启动一个容器与启动PC机的程序基本是一致的,它可以使用CPU、内存、网络、I/O、GPU等一些系统资源。这些资源是在启动容器时,需要考虑和可被管理的。比如,可以执行docker run --help 查看docker run命令所支持的全部参数,现在 docker run 命令所支持的参数非常丰富,读者可以自行翻阅资料查看。 2 ? ? ?查看容器实际使用的资源 2.1 ? docker stats Docker提供了一个很方便的命令docker stats用来返回运行中的容器的实时数据流,可供我们查看和统计容器所占用的资源情况。以下我们以启动一个Redis容器作为示例来演示。 默认情况下,stats 使用参数-a或--all,命令会每隔 1 秒刷新一次输出内容, 是一种持续的动态流式输出方式,直到按下ctrl + c。而这里使用了一个--no-stream参数,它就只输出一次便会退出了。它输出的各个部分内容的含义: [CONTAINER]:以短格式显示容器的 ID,是一个容器生命周期内不会变化的信息; [CPU %]:容器正在使用的 CPU 资源的百分比; [MEM USAGE / LIMIT]:当前使用的内存和容器最大可以使用的内存; [MEM %]:以百分比的形式显示内存使用情况,测试用的电脑内存容量为16G; [NET I/O]:容器通過其网络接口发送和接受到的数据量; [BLOCK I/O]:容器通过块设备读取和写入的数据量; [PIDS]:容器创建的进程或线程数。 2.2 ? docker top 除了上面提到的 docker stats 命令外,Docker还提供了另一个比较简单的命令docker top,用于查看容器中运行的进程信息,支持 ps 命令参数。 3 ? ? ?管理容器使用的资源 3.1 ? 容器的CPU资源管理 CPU和内存是使用容器时尤为关注的资源,对于CPU资源的管理涉及的内容会偏底层一些,有些涉及内核的 CPU 调度器。 可以使用 docker run --help |grep CPU来查看Docker提供了哪些控制 CPU 资源相关的参数。 下面以几个示例来分别进行说明: 3.1.1 ? 默认无限制 以下演示均在一个4核CPU的电脑上进行。 首先,启动一个容器,以体积较小的 Alpine Linux 为例: 然后,在另一个窗口,执行上文中介绍的查看容器资源的命令: 从返回数据可以看出,当前容器内CPU的消耗几乎没有,且 PIDS 为 1,也即是当前只有一个进程。 现在,再切换回刚才启动的容器,执行以下命令: sha256sum是一个用来计算和检查SHA256信息的命令行工具,而/dev/zero是 Linux系统里一个特殊的设备,它可以提供无限的空字符串。这个命令,会让 sha256sum 持续地读/dev/zero产生的空串,并进行计算,这样的动作会迅速消耗计算机的CPU资源。此时,再来查看容器的资源使用情况: 从返回数据中的CPU使用率可以看出,单个CPU芯片已经在满负荷运转了。此时,我们再新打开一个窗口,进入容器内,执行与上面相同的命令: |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。