stress负载生成器使用简介
一、Stress工具原始网页:
https://people.seas.harvard.edu/~apw/stress/
二、Docker镜像的构建过程(dockerfile):
progrium/stress镜像的 Dockerfile内容 :
FROM ubuntu:trusty
MAINTAINER Jeff Lindsay <progrium@gmail.com>
RUN apt-get update && apt-get install -y stress
ENTRYPOINT ["/usr/bin/stress", "--verbose"]
CMD []
该镜像的Dockerfile文件说明Ubuntu 1404系统中自带stress小工具,该镜像较大,282MB。
另一个stress镜像polinux/stress,它使用alpine作为基础镜像,从源码进行编译,整个镜像大小7.5MB,Dockerfile文件如下:
FROM alpine:3.5
# Stress Version can be found on offcial website of stress
# https://people.seas.harvard.edu/~apw/stress/
ENV STRESS_VERSION=1.0.4 \
SHELL=/bin/bash
RUN \
apk add --update bash g++ make curl && \
curl -o /tmp/stress-${STRESS_VERSION}.tgz https://people.seas.harvard.edu/~apw/stress/stress-${STRESS_VERSION}.tar.gz && \
cd /tmp && tar xvf stress-${STRESS_VERSION}.tgz && rm /tmp/stress-${STRESS_VERSION}.tgz && \
cd /tmp/stress-${STRESS_VERSION} && \
./configure && make && make install && \
apk del g++ make curl && \
rm -rf /tmp/* /var/tmp/* /var/cache/apk/* /var/cache/distfiles/*
CMD ['/usr/local/bin/stress']
三、命令参考:
$ docker run --rm -it polinux/stress stress --help

四、Stress容器使用示例:
$docker run --rm -it progrium/stress --cpu 2 --io 1 --vm 2 --vm-bytes 128M --timeout 60s
或者:
$ docker run --rm -it polinux/stress stress --cpu 2 --io 1 --vm 2 --vm-bytes 128M --timeout 60s --verbose
--cpu 和--io 和--vm 后面的数值,分别是创建CPU、磁盘读写和内存的线程数,可根据需要单独使用,或者组合使用。
运行3个容器,指定容器的--cpu-share的值分别为512、512、1024,这3个容器使用CPU的时间比例为1:1:2,使用ctop或者top查看CPU利用率,理想的情况下,CPU占用接近25%、25%、50%:
docker run -itd --rm --cpu-share 512 progrium/stress --cpu 1 --timeout 100s
docker run -itd --rm --cpu-share 512 progrium/stress --cpu 1 --timeout 100s
docker run -itd --rm --cpu-share 1024 progrium/stress --cpu 1 --timeout 100s

运行2个stress容器,测试内存的占用,每个容器产生4个线程,第一个容器每个线程消耗256MB内存,第二个容器的4个线程每个消耗128MB内存:
docker run -itd --rm progrium/stress --vm 4 --vm-bytes 256M --timeout 100s
docker run -itd --rm progrium/stress --vm 4 --vm-bytes 128M --timeout 100s

参考链接:
https://people.seas.harvard.edu/~apw/stress/
https://people.seas.harvard.edu/~apw/stress/README
https://hub.docker.com/r/polinux/stress/builds/
https://hub.docker.com/r/progrium/stress/
Docker下使用stress进行压力测试
http://blog.51cto.com/molewan/1757918
docker高级应用之cpu与内存资源限制
https://blog.csdn.net/pdw2009/article/details/78137759
配置docker限制容器对cpu 内存和IO的资源使用
https://www.centos.bz/2017/08/docker-limit-container-cpu-memory-io/
Docker 运行时资源限制-内存memory、交换机分区Swap、CPU
https://blog.csdn.net/candcplusplus/article/details/53728507
Linux资源控制-CPU和内存
https://www.cnblogs.com/wang_yb/p/3942208.html
stress负载生成器使用简介的更多相关文章
- loadrunner 场景设计-负载生成器管理
场景设计-负载生成器管理 by:授客 QQ:1033553122 1 简介 当执行一个场景时,Controller把场景中的每个用户配到负载生成器(Load generator). 所谓的负载生成器 ...
- Loadrunner场景设计篇——负载生成器
1 简介 当执行一个场景时,Controller把场景中的每个用户配到负载生成器(Load generator). 所谓的负载生成器(Load Generator)就是执行Vuser脚本,运行Vus ...
- 性能测试工具LoadRunner15-LR之负载生成器(Load Generators)
简介 对场景进行设计后,需要对负载生成器进行管理和配置.Load Generators是运行脚本的负载引擎(相当于加压机)主要功能是生成虚拟用户进行负载,在默认情况下使用本地的负载生成器来运行脚本. ...
- LoadRunner测试场景中添加负载生成器
如何在LoadRunner测试场景中添加负载生成器 本文对如何在LoadRunner的测试场景中添加负载生成器,如何使用负载生成器的方法,总结形成操作指导手册,以指导测试人员指导开展相关工作. 1.什 ...
- Loadrunner:场景中添加负载生成器
场景中添加负载生成器: (1)远程机子(假设ip为192.168.134.23)开启负载生成器 开始菜单找到:LoadRunner Agent Process 开启后任务栏会显示如下图: (2)场景中 ...
- LR12集合点设置和多个负载生成器策略
今天给大家分享几个有关LR12的Controller使用过程中的几个常用问题: 一,脚本中添加集合点函数---lr_rendezvous 1,在被测接口事物函数之前加入集合点函数--lr_rendez ...
- Nginx 负载均衡原理简介与负载均衡配置详解
Nginx负载均衡原理简介与负载均衡配置详解 by:授客 QQ:1033553122 测试环境 nginx-1.10.0 负载均衡原理 客户端向反向代理发送请求,接着反向代理根据某种负载机制 ...
- loadrunner 场景设计-IP Spoofer-多ip负载生成器(Windows平台)
IP Spoofer-多ip负载生成器 by:授客 QQ:1033553122 1 适用协议 LoadRunner的多ip功能允许运行在单一负载生成器上的Vuser可以通过多ip被识别.服务器和路由 ...
- LoadRunner11学习记录七 -- 负载生成器、事务&集合点顺序、HTML&URL录制
1.什么情况下用到负载生成器? 当需要使用多台测试机对同一服务器同时压力测试时,需要配置负载生成器. 2.LoadRunner中事务和集合点的放置顺序问题 1)事务放在集合点前面 这时事务的时间包含了 ...
随机推荐
- 解决git冲突造成的Please move or remove them before you can merge
git clean -d -fx “” 其中x —–删除忽略文件已经对git来说不识别的文件d —–删除未被添加到git的路径中的文件f —–强制运行如果你确定这货已经没用了,并且git status ...
- filter与map函数
·filter()函数filter()函数包括两个参数,分别是function和list.该函数根据function参数返回的结果是否为真来过滤list参数中的项,最后返回一个新列表,如下例所示:&g ...
- JavaScript监控页面input输入整数且只能输入2位小数
<input type="text" id="money" /> <script> $(function () { $('#money' ...
- php普通传值和引用传值 (相当通俗易懂的一篇讲解)
首先,要理解变量名存储在内存栈中,它是指向堆中具体内存的地址,通过变量名查找堆中的内存; 普通传值,传值以后,是不同的地址名称,指向不同的内存实体; 引用传值,传引用后,是不同的地址名称,但都指向同一 ...
- GET和POST两种基本请求方法(转自博主--在途中#)
GET和POST两种基本请求方法的区别 GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过req ...
- 放弃antd table,基于React手写一个虚拟滚动的表格
缘起 标题有点夸张,并不是完全放弃antd-table,毕竟在react的生态圈里,对国人来说,比较好用的PC端组件库,也就antd了.即便经历了2018年圣诞彩蛋事件,antd的使用者也不仅不减,反 ...
- C#中方法、类等的默认访问修饰符~
C# 方法默认访问级别 : private C# 类默认访问级别 : internal 1.命名空间下的元素的默认访问修饰符 public : 同一程序集的其他任何代码或引用该程序集的其他程序集都可以 ...
- Java设计模式之动态代理
关于Proxy: 1,他是所有动态代理的父类: 2,他可以用作创建动态代理类和动态代理对象: 3,JDK中自带的动态代理. 1,首先创建一个接口,方法申明如下: package com.proxy; ...
- logback 指定每隔一段时间创建一个日志文件
我使用的logback版本是1.2.3 目前logback支持根据时间来配置产生日志文件,但是只支持每周,每天,每个小时,每分钟等创建一个文件,配置如下: <appender name=&quo ...
- 关于CSS中的定位使用子绝父相(子类绝对位置和父类相对位置)
关于CSS中的定位使用子绝父相(子类绝对位置和父类相对位置) 欢迎转发,但是请填写原博客地址https://www.cnblogs.com/JNovice/p/9536910.html 前言:最近在 ...