Docker容器技术应用 实验指导书 项目7 部署Docker安全.docx
任务7.2.1设置容器的CPU使用率与CPU周期
(1)任务目标
掌握设置容器CPU使用率的方法
掌握设置CPU周期的方法
(2)任务内容
创建Stress工具镜像
设置容器占用CPU资源的份额
设置CPU周期
(3)完成任务所需的设备和软件
一台安装Windows10操作系统的计算机
VMwareWorkstation,Docker
远程管理工具MobaXterm
(4)任务实施步骤
第一步:使用Dockerfile创建Stress工具镜像,操作命令如下:
[root@docker~]#dockerpullcentos:7
[root@docker~]#mkdirstress
[root@docker~]#cdstress/
[root@dockerstress]#vimDockerfile
Dockerfile代码如下:
FROMcentos:7
MAINTAINERzskzsk@
RUNyum-yinstallwget\
wget-O/etc/yum.repos.d/epel.repo/repo/epel-7.repo\
yum-yinstallstress
[root@dockerstress]#dockerbuild-tcentos:stress.
[root@dockerstress]#dockerimages
命令运行结果如图7-3所示。
图7-3构建Stress工具镜像
第二步:启动容器container1,查看CPU的使用百分比。此处模拟系统负载较高时的场景,开启了8个stress进程,从而让Cgroup生效,操作命令如下:
[root@docker~]#dockerrun-itd--namecontainer1--cpu-shares521centos:stressstress-c8
--cpu-shares:同时运行多个容器时,分配容器所占用的CPU份额。
[root@docker~]#dockerps-a
[root@docker~]#dockerexec-itcontainer1bash
[root@53654d0c7f97/]#top
命令运行结果如图7-4所示。
图7-4查看container1资源占用情况
(1)系统显示信息说明,见表7-1、7-2、7-3、7-4、7-5所示。
表7-1top:系统运行时间和平均负载
显示信息
说明
-06:07:20
当前时间
up4:50
已运行时间
0users
当前登录用户数
loadaverage:8.77,11.53,14.46
系统负载平均值:过去1分钟、5分钟、15分钟的均值。
表7-2Tasks:当前运行的进程情况
显示信息
说明
11total
进程的总数
9running
正在运行进程数
2sleeping
睡眠进程数
0stopped
停止进程数
0zombie
僵尸进程数
表7-3%Cpu(s):CPU使用率
显示信息
说明
100.0us
用户进程CPU使用率
0.0sy
系统进程CPU使用率
0.0ni
用户改变优先级进程的CPU使用率
0.0id
空闲进程CPU使用率
0.0wa
等待I/O的CPU使用率
0.0hi
硬件中断CPU使用率
0.0si
软件中断CPU使用率
0.0st
抢断CPU使用率
表7-4KiBMem:物理内存使用情况
显示信息
说明
1863252total
物理总内存(默认单位KB)
1101264free
空闲物理内存
279344used
已使用物理内存
482644buff/cache
用作缓存的内存
表7-5KiBSwap:交换区使用情况
显示信息
说明
2097148total
交换区总量(默认单位KB)
2097148free
空闲交换区
0used
已使用交换区
1424680availMem
缓冲交换区
(2)进程表格信息说明,见表7-6所示。
表7-6进程表格信息说明
显示信息
说明
PID
进程ID
USER
用户名
PR
进程优先级
NI
用户进程nice值,负值表示高优先级,正值表示低优先级
VIRT
进程占用虚拟内存大小,单位KB,VIRT=SWAP+RES
RES
常驻内存大小,单位KB,RES=CODE(可执行代码占用的物理内存)+DATA
SHR
共享内存大小,单位KB
S
进程状态,R表示运行,S表示睡眠,D表示不可中断的睡眠状态,T表示跟踪或停止,Z表示僵尸进程
%CPU
CPU使用率
%MEM
内存使用率
TIME+
累计使用CPU时间,单位1/10