gpt4 book ai didi

docker - Jmeter 和 Docker

转载 作者:行者123 更新时间:2023-12-04 14:10:31 25 4
gpt4 key购买 nike

我看到一些博客文章,人们谈论 JMeter 和 Docker。我知道 Docker 将有助于设置具有所有依赖项的容器。但是它们都在同一主机中运行/创建容器。所以理想情况下,所有容器都将共享主机资源。就像您在同一主机上运行多个 jmeter 实例一样。产生更多负载将无济于事。

当主机有 12GB RAM 时,我认为 1 个具有 10GB 堆的 JMeter 实例比在每个容器中运行 10 个具有 1 个 jmeter 实例的容器产生更多的负载。

在这里运行docker有什么意义?

最佳答案

made an automatic solution可以轻松与 Jenkins 集成.

dockerfile 应该从 java8 扩展并添加 JMeter 构建。我将这个 Docker 镜像称为 jmeter-base:

FROM java:8

RUN mkdir /jmeter \
&& cd /jmeter/ \
&& wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-3.3.tgz \
&& tar -xvzf apache-jmeter-3.3.tgz \
&& rm apache-jmeter-3.3.tgz

ENV JMETER_HOME /jmeter/apache-jmeter-3.3/

# Add Jmeter to the Path
ENV PATH $JMETER_HOME/bin:$PATH

如果你想使用主从解决方案,这是jmeter master Dockerfile:
FROM jmeter-base

WORKDIR $JMETER_HOME
# Ports to be exposed from the container for JMeter Master
RUN mkdir scripts

EXPOSE 60000

这是 jmeter 从属 Dockerfile:
FROM jmeter-base

# Ports to be exposed from the container for JMeter Slaves/Server
EXPOSE 1099 50000

# Application to run on starting the container
ENTRYPOINT $JMETER_HOME/bin/jmeter-server \
-Dserver.rmi.localport=50000 \
-Dserver_port=1099

现在,使用这两个图像,您应该执行一个脚本来执行您应该知道所有从属 IP。这个脚本完成了所有的工作:
#!/bin/bash

COUNT=${1-1}

docker build -t jmeter-base jmeter-base
docker-compose build && docker-compose up -d && docker-compose scale master=1 slave=$COUNT

SLAVE_IP=$(docker inspect -f '{{.Name}} {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq) | grep slave | awk -F' ' '{print $2}' | tr '\n' ',' | sed 's/.$//')
WDIR=`docker exec -it master /bin/pwd | tr -d '\r'`
mkdir -p results
for filename in scripts/*.jmx; do
NAME=$(basename $filename)
NAME="${NAME%.*}"
eval "docker cp $filename master:$WDIR/scripts/"
eval "docker exec -it master /bin/bash -c 'mkdir $NAME && cd $NAME && ../bin/jmeter -n -t ../$filename -R$SLAVE_IP'"
eval "docker cp master:$WDIR/$NAME results/"
done

docker-compose stop && docker-compose rm -f

关于docker - Jmeter 和 Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35960164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com