[root@localhost linshi]# docker run -itd --name cmdb6 --cpuset-cpus 0 --cpu-shares 512 harbor.yd.szcomtop.com/library/cmdb:1.6 /bin/bash
44772fac861ab32b810656bce550f41efc58a461bbfffab238a962a739933c78
## --name 创建容器实例是设置容器名称;通过docker rename old_container new_container 更新容器名称; --cpuset-cpus设置容器cpu亲和力,绑定在指定的cpu上运行;--cpu-shares设置容器cpu资源配额,默认为1024M;
[root@localhost linshi]# docker run -itd --name cmdb7 --cpuset-cpus 0 --cpu-shares 1024 harbor.yd.szcomtop.com/library/cmdb:1.6 /bin/bash
29d17b6e130bb60d694aeb1528f33f613dac3a24ad3c80bc7b7440cff8558f1c
[root@localhost linshi]#
stress 命令 概述:linux 系统压力测试软件 Stress 。 stress 可以测试 Linux 系统 cpu/menory/IO/disk 的负载。
tress 参数解释
-? 显示帮劣信息
-v 显示版本号
-q 丌显示运行信息
-n 显示已完成的挃令情况
-t --timeout N 挃定运行 N 秒后停止
--backoff N 等待 N 微妙后开始运行
-c 产生 n 个迚程 每个迚程都反复丌停的计算随机数的平方根,测试 cpu
-i 产生 n 个迚程 每个迚程反复调用 sync(),sync()用于将内存上的内容写到硬盘上,测试 io
-m --vm n 产生 n 个迚程,每个迚程丌断调用内存分配 malloc 和内存释放 free 函数 ,测试内存
--vm-bytes B 挃定 malloc 时内存的字节数 (默认 256MB)
--vm-hang N 挃定在 free 栈的秒数
-d --hadd n 产生 n 个执行 write 和 unlink 函数的迚程
-hadd-bytes B 挃定写的字节数
--hadd-noclean 丌 unlink
注:时间单位可以为秒 s,分 m,小时 h,天 d,年 y,文件大小单位可以为 K,M,G
例 1:产生 2 个 cpu 迚程,2 个 io 迚程,20 秒后停止运行
[root@localhost linshi]# stress -c 2 -i 2 --verbose --timeout 20s
###如果执行时间为分钟,将20s改为10m。
[root@localhost linshi]# stress -c 2 -t 10m
stress: info: [4024] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd
[root@a linshi]# docker run -itd --name mysql4 -m 120m mysql bash
## -m指定限制容器的内存使用量
[root@a linshi]# docker run -itd --name mysql5 -v /var/www/html/:/var/www/html/ mysql bash
e2c5b7ed192033149c9ba91fde4921794433841581c3862f94ef159d6ad2f4f7
### docker数据映射,-v用来指定挂载目录,冒号:前面的/src为物理机本地目录,:后面的/dst为容器中的目录。
####将物理机上的/var/www/html目录映射到docker实例的/var/www/html目录中。优势,当docker容器损坏,数据仍在物理机上,数据不丢失。
docker 容器资源配额控制乊 IO
9.5.1 IO
[root@xuegod63 ~]# docker run --help | grep write-b
--device-write-bps value Limit write rate (bytes per second) to a device
(default []) #限制此设备上的写速度(bytes per second) ,单位可以是 kb、mb 戒者 gb。
--device-read-bps value #限制此设备上的读速度(bytes per second) ,单位可以是 kb、mb
戒者 gb。
为什么阿云平台上 普通云盘的 IO 为: 1000 IOPS ,为什么这么小?
原因是 一台存储 给 2000 台云主机使用,需要控制一下 。防止某台云主机吃光你的磁盘 I / O 资
源
情景:防止某个 Docker 容器吃光你的磁盘 I / O 资源
例 1:容器对硬盘的最高写入速度设定为 1MB/s。
--device 参数:将主机设备添加到容器 docker 容器资源配额控制乊 IO 9.5.1 IO [root@xuegod63 ~]# docker run --help | grep write-b --device-write-bps value Limit write rate (bytes per second) to a device (default []) #限制此设备上的写速度(bytes per second) ,单位可以是 kb、mb 戒者 gb。
--device-read-bps value #限制此设备上的读速度(bytes per second) ,单位可以是 kb、mb
或者 gb。
为什么阿云平台上 普通云盘的 IO 为: 1000 IOPS ,为什么这么小?
原因是 一台存储 给 2000 台云主机使用,需要控制一下 。防止某台云主机吃光你的磁盘 I / O 资
源
情景:防止某个 Docker 容器吃光你的磁盘 I / O 资源
例 1:容器对硬盘的最高写入速度设定为 1MB/s。
--device 参数:将主机设备添加到容器
[root@a linshi]# docker run -it --name mysql8 --device /dev/sda:/dev/sda --device-write-bps /dev/sda:1mb mysql /bin/bash
[root@a linshi]# mkdir /mnt/dir &&docker run -it --name mysql9 -v /mnt/dir:/var/www/html --device /dev/sda:/dev/sda --device-write-bps /dev/sda:1mb mysql /bin/bash
root@74850ebafa28:/# time dd if=/dev/sda of=/var/www/html/test.out bs=1M count=50 oflag=direct,nonblock
50+0 records in
50+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 50.0547 s, 1.0 MB/s
real 0m50.057s
user 0m0.003s
sys 0m0.181s
root@74850ebafa28:/#--device-read-bps value #限制此设备上的读速度(bytes per second) ,单位可以是 kb、mb或者 gb