一、简介

stress 可以对linux机器做压力测试,是一个比较好用的命令

二、创建一个ubuntu image

[root@iZ2vceej7yes1abpm7yec2Z ~]# docker run -it ubuntu
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
6a5697faee43: Pull complete
ba13d3bc422b: Pull complete
a254829d9e55: Pull complete
Digest: sha256:fff16eea1a8ae92867721d90c59a75652ea66d29c05294e6e2f898704bdb8cf1
Status: Downloaded newer image for ubuntu:latest
[root@iZ2vceej7yes1abpm7yec2Z ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              d70eaf7277ea        2 weeks ago         72.9MB

三、在容器中安装stress

由于pull下来的ubuntu是一个基础班,非常的干净,连vim都没有,所以先更换源:

root@76c25bdb1008:/# echo "deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse" >/etc/apt/sources.list
root@76c25bdb1008:/#
root@76c25bdb1008:/# more etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
root@76c25bdb1008:/#
root@76c25bdb1008:/# echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse" >> /etc/apt/sources.list
root@76c25bdb1008:/#
root@76c25bdb1008:/# echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list
root@76c25bdb1008:/#
root@76c25bdb1008:/# echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse" >> /etc/apt/sources.list
root@76c25bdb1008:/#
root@76c25bdb1008:/# echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list
root@76c25bdb1008:/#
root@76c25bdb1008:/# echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse" >> /etc/apt/sources.list
root@76c25bdb1008:/#
root@76c25bdb1008:/# echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse" >> /etc/apt/sources.list
root@76c25bdb1008:/#
root@76c25bdb1008:/# echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list
root@76c25bdb1008:/#
root@76c25bdb1008:/# echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse" >> /etc/apt/sources.list
root@76c25bdb1008:/#
root@76c25bdb1008:/# echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list

apt-get update && apt-get install -y stress

root@76c25bdb1008:/# apt update
Get:1 http://mirrors.aliyun.com/ubuntu xenial InRelease [247 kB]
Get:2 http://mirrors.aliyun.com/ubuntu xenial-security InRelease [109 kB]
Get:3 http://mirrors.aliyun.com/ubuntu xenial-updates InRelease [109 kB]
Get:4 http://mirrors.aliyun.com/ubuntu xenial-proposed InRelease [260 kB]
Get:5 http://mirrors.aliyun.com/ubuntu xenial-backports InRelease [107 kB]
Get:6 http://mirrors.aliyun.com/ubuntu xenial/universe Sources [9802 kB]
Get:7 http://mirrors.aliyun.com/ubuntu xenial/restricted Sources [5179 B]
Get:8 http://mirrors.aliyun.com/ubuntu xenial/main Sources [1103 kB]
Get:9 http://mirrors.aliyun.com/ubuntu xenial/multiverse Sources [215 kB]
Get:10 http://mirrors.aliyun.com/ubuntu xenial/multiverse amd64 Packages [176 kB]
Get:11 http://mirrors.aliyun.com/ubuntu xenial/universe amd64 Packages [9827 kB]
Get:12 http://mirrors.aliyun.com/ubuntu xenial/restricted amd64 Packages [14.1 kB]
Get:13 http://mirrors.aliyun.com/ubuntu xenial/main amd64 Packages [1558 kB]
Get:14 http://mirrors.aliyun.com/ubuntu xenial-security/universe Sources [244 kB]
Get:15 http://mirrors.aliyun.com/ubuntu xenial-security/multiverse Sources [4952 B]
Get:16 http://mirrors.aliyun.com/ubuntu xenial-security/main Sources [299 kB]
Get:17 http://mirrors.aliyun.com/ubuntu xenial-security/restricted Sources [3239 B]
Get:18 http://mirrors.aliyun.com/ubuntu xenial-security/main amd64 Packages [1841 kB]
Get:19 http://mirrors.aliyun.com/ubuntu xenial-security/multiverse amd64 Packages [9249 B]
Get:20 http://mirrors.aliyun.com/ubuntu xenial-security/universe amd64 Packages [969 kB]
Get:21 http://mirrors.aliyun.com/ubuntu xenial-security/restricted amd64 Packages [15.9 kB]
Get:22 http://mirrors.aliyun.com/ubuntu xenial-updates/universe Sources [533 kB]
Get:23 http://mirrors.aliyun.com/ubuntu xenial-updates/restricted Sources [3941 B]
Get:24 http://mirrors.aliyun.com/ubuntu xenial-updates/multiverse Sources [13.5 kB]
Get:25 http://mirrors.aliyun.com/ubuntu xenial-updates/main Sources [655 kB]
Get:26 http://mirrors.aliyun.com/ubuntu xenial-updates/universe amd64 Packages [1513 kB]
Get:27 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 Packages [2353 kB]
Get:28 http://mirrors.aliyun.com/ubuntu xenial-updates/restricted amd64 Packages [16.4 kB]
Get:29 http://mirrors.aliyun.com/ubuntu xenial-updates/multiverse amd64 Packages [26.7 kB]
Get:30 http://mirrors.aliyun.com/ubuntu xenial-proposed/main Sources [9460 B]
Get:31 http://mirrors.aliyun.com/ubuntu xenial-proposed/universe Sources [4365 B]
Get:32 http://mirrors.aliyun.com/ubuntu xenial-proposed/universe amd64 Packages [18.3 kB]
Get:33 http://mirrors.aliyun.com/ubuntu xenial-proposed/main amd64 Packages [98.5 kB]
Get:34 http://mirrors.aliyun.com/ubuntu xenial-backports/universe Sources [12.3 kB]
Get:35 http://mirrors.aliyun.com/ubuntu xenial-backports/main Sources [7276 B]
Get:36 http://mirrors.aliyun.com/ubuntu xenial-backports/universe amd64 Packages [12.6 kB]
Get:37 http://mirrors.aliyun.com/ubuntu xenial-backports/main amd64 Packages [10.9 kB]
Fetched 32.2 MB in 7s (4906 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
root@76c25bdb1008:/#
root@76c25bdb1008:/#
root@76c25bdb1008:/#
root@76c25bdb1008:/#
root@76c25bdb1008:/# apt-get install -y stress
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:stress
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 16.7 kB of archives.
After this operation, 75.8 kB of additional disk space will be used.
Get:1 http://mirrors.aliyun.com/ubuntu xenial/universe amd64 stress amd64 1.0.4-1 [16.7 kB]
Fetched 16.7 kB in 0s (59.7 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package stress.
(Reading database ... 4121 files and directories currently installed.)
Preparing to unpack .../stress_1.0.4-1_amd64.deb ...
Unpacking stress (1.0.4-1) ...
Setting up stress (1.0.4-1) ...
root@76c25bdb1008:/# which stress
/usr/bin/stress
root@76c25bdb1008:/#

stress --help

 stress --help
`stress' imposes certain types of compute stress on your systemUsage: stress [OPTION [ARG]] ...-?, --help         show this help statement--version      show version statement-v, --verbose      be verbose-q, --quiet        be quiet-n, --dry-run      show what would have been done-t, --timeout N    timeout after N seconds--backoff N    wait factor of N microseconds before work starts-c, --cpu N        spawn N workers spinning on sqrt()-i, --io N         spawn N workers spinning on sync()-m, --vm N         spawn N workers spinning on malloc()/free()--vm-bytes B   malloc B bytes per vm worker (default is 256MB)--vm-stride B  touch a byte every B bytes (default is 4096)--vm-hang N    sleep N secs before free (default none, 0 is inf)--vm-keep      redirty memory instead of freeing and reallocating-d, --hdd N        spawn N workers spinning on write()/unlink()--hdd-bytes B  write B bytes per hdd worker (default is 1GB)

stress --vm 1 --verbose

启动一个worker ,分配256MB 然后释放 ,一直循环往复

:/# stress --vm 1 --verbose
stress: info: [440] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
stress: dbug: [440] using backoff sleep of 3000us
stress: dbug: [440] --> hogvm worker 1 [441] forked
stress: dbug: [441] allocating 268435456 bytes ...
stress: dbug: [441] touching bytes in strides of 4096 bytes ...
stress: dbug: [441] freed 268435456 bytes
stress: dbug: [441] allocating 268435456 bytes ...
stress: dbug: [441] touching bytes in strides of 4096 bytes ...
stress: dbug: [441] freed 268435456 bytes
stress: dbug: [441] allocating 268435456 bytes ...
stress: dbug: [441] touching bytes in strides of 4096 bytes ...
stress: dbug: [441] freed 268435456 bytes
stress: dbug: [441] allocating 268435456 bytes ...

如果分配的内存超过宿主机内存会发生什么?

/# stress --vm 1 --vm-bytes 50000M --verbose
stress: info: [442] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
stress: dbug: [442] using backoff sleep of 3000us
stress: dbug: [442] --> hogvm worker 1 [443] forked
stress: dbug: [443] allocating 52428800000 bytes ...
stress: FAIL: [443] (494) hogvm malloc failed: Cannot allocate memory
stress: FAIL: [442] (394) <-- worker 443 returned error 1
stress: WARN: [442] (396) now reaping child worker processes
stress: FAIL: [442] (451) failed run completed in 0s

容器 无法分配。

四、编写docker file 然后build一个命令行程序

ubuntu-stress]# more Dockerfile
FROM ubuntu
RUN apt-get update && apt-get install -y stress
ENTRYPOINT ["/usr/bin/stress"]
CMD []

ubuntu-stress]# docker build -t ninesun0318/ubuntu-stress .

ubuntu-stress]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED              SIZE
ninesun0318/ubuntu-stress   latest              675f527c4ed1        About a minute ago   99.7MB
ninesun0318/flask           latest              1f7f63f7ff02        26 hours ago         884MB
python                      3.6                 1297140c6dd2        6 days ago           874MB
ubuntu                      latest              d70eaf7277ea        2 weeks ago          72.9MB
centos                      latest              0d120b6ccaa8        3 months ago         215MB
hello-world                 latest              bf756fb1ae65        10 months ago        13.3kB

通过entrypoint + cmd 是一种流行的运行命令行方式

已一种传参的方式在容器中运行命令

 ubuntu-stress]# docker run -it ninesun0318/ubuntu-stress --vm 1 --verbose
stress: info: [1] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
stress: dbug: [1] using backoff sleep of 3000us
stress: dbug: [1] --> hogvm worker 1 [5] forked
stress: dbug: [5] allocating 268435456 bytes ...
stress: dbug: [5] touching bytes in strides of 4096 bytes ...
stress: dbug: [5] freed 268435456 bytes
stress: dbug: [5] allocating 268435456 bytes ...
stress: dbug: [5] touching bytes in strides of 4096 bytes ...
stress: dbug: [5] freed 268435456 bytes
stress: dbug: [5] allocating 268435456 bytes ...
stress: dbug: [5] touching bytes in strides of 4096 bytes ...
stress: dbug: [5] freed 268435456 bytes
stress: dbug: [5] allocating 268435456 bytes ...

docker build stress命令相关推荐

  1. Dockerfile介绍 和 docker build常用命令介绍

    docker使用教程相关系列 目录 目录 什么是 dockerfile docker镜像制作的工作逻辑 Dockerfile的基本结构 Dockerfile格式 案例: Build镜像 我们之前学习, ...

  2. docker build命令详解_Docker 搭建你的第一个 Node 项目到服务器

    本文你能学到什么 Docker 是什么 Docker 概念 关于 Docker 的概念是确实不太好总结,下面我通过四点向你说明 Docker 到底是个什么东西. Docker 是世界领先的软件容器平台 ...

  3. Docker(45)- docker build 命令详解

    docker build 命令原理 docker build 命令从 Dockerfile 和上下文构建镜像 构建的上下文:位于指定 PATH 或 URL 中的一组文件 构建过程可以引用上下文中的任何 ...

  4. 了解docker build 命令后点号( . )的意思

    了解docker build 命令后点号( . )的意思 ​ 在使用docker build命令构建镜像时,我们会看到命令行的最后有一个点号..这此来研究以下这个.号是什么意思? 没有仔细研究过的人员 ...

  5. docker build命令详解

    docker build命令用于根据给定的Dockerfile和上下文以构建Docker镜像. docker build命令的使用格式: docker build [OPTIONS] <PATH ...

  6. Docker build命令

    docker build 命令用于使用 Dockerfile 创建镜像. 1.使用当前目录的 Dockerfile 创建镜像,标签为 runoob/ubuntu:v1 $ docker build - ...

  7. docker build命令详解_Docker镜像与容器常用命令图文详解

    一.系统命令 #查看docker版本 docker version #查看docker的系统信息,包含镜像容器的数量 docker info #查看docker的所有命令 docker --help ...

  8. Docker客户端常用命令整理

    之前在 https://blog.csdn.net/fengbingchun/article/details/109584460 中介绍过在Windows10家庭版和Ubuntu16.04上安装Doc ...

  9. Docker初学3:Docker的常用命令

    Docker的常用命令 帮助命令 帮助命令可以在我们遇到不懂的命令时帮助我们去了解它们怎么使用. docker version # 显示 Docker 版本信息. docker info # 显示 D ...

  10. Docker(七):Docker build 、Docker Dockerfile 详解

    什么是dockerfile? Dockerfile是一个包含用于组合映像的命令的文本文档.可以使用在命令行中调用任何命令. Docker通过读取Dockerfile中的指令自动生成映像. docker ...

最新文章

  1. 使用slice和concat对数组的深拷贝和浅拷贝
  2. “完美论文”过于真实,道出了科研狗的痛
  3. kfold_机器学习gridsearchcv(网格搜索)和kfold validation(k折验证)
  4. 使用javassist动态注入代码
  5. linux boot分区有什么用,/ boot分区的真正作用是什么?
  6. Github pull request 工作流总结
  7. isless()函数与C ++中的示例
  8. javascript判断是否手机设备+滑动事件
  9. 如何解决linux标准输出中带颜色的字符
  10. 应对DDOS***需要“多管齐下”
  11. 计算机组成原理唐朔飞第八章ppt,计算机组成原理唐朔飞课件
  12. Google的快照的用户体验感觉不如之前
  13. 使用 Power Apps CLI
  14. #.net在技术上远超Java,可是为什么大多数公司还是选择使用Java
  15. [其他] 月份, 星期英文
  16. 如何在项目中利用 git 提高工作效率
  17. RAR文件解压缩时系统提示“CRC校验失败,文件被破坏”,修复损坏文件的办法!
  18. 10个必须掌握的SQL常用语句
  19. js实现判断输入内容是否为数字
  20. figma和sketch应该选择哪个?

热门文章

  1. cordova弹框插件 cordova-plugin-dialogs
  2. logo免费设计app有哪些?好用的logo设计app分享
  3. 视频分配器的特点以及应用
  4. ionic 配置java_ionic开发环境搭建
  5. 【资料】分享北京某培训机构全部学习课程加个人的一些学习上的建议
  6. 拼音表大全图_阿波罗 STM32F767 开发板资料连载第五十九章 T9 拼音输入法实验
  7. 如何将PDF转换成xls格式的表格
  8. Matplotlib可视化数据分析图表上(解决中文乱码、解决负号不显示问题、round函数、为图表中各个数据点添加文本标签、坐标轴范围、添加文本标签、设置标题和图例、添加注释)
  9. [kubernetes]-kubernetes+nfs创建高可用mysql
  10. 聊聊Dotnetty