技术改变生活

博客园 首页 新随笔 联系 订阅 管理

 

 

[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

posted on 2020-04-17 16:49  小阿峰  阅读(205)  评论(0编辑  收藏  举报