通过Kubernates中的2个容器执行时,活动用户数不匹配



我们使用Kubernetes中的2个容器通过Tauras运行jmx。我们在结果中只看到50个用户,而不是100个(50*2个容器(。如果我们这里遗漏了什么,有人能透过光线吗。我们得到了两个jtl,并对它们进行单独或组合检查,总用户数仅为50。它和正在生成并记录在jtl文件中的相同线程名称有关吗。

以下是yml的详细信息:

apiVersion: v1
kind: ConfigMap
metadata:
name: joba
namespace: AAA
data:
protocol: "https"
serverUrl: “testurl”
users: "50”
duration: "1m"
nodeName: "Nodename"
---
apiVersion: /v1
kind: Job
metadata:
name: perftest
namespace: dev
spec:
template:
spec:
containers:
- args: ["split -l ${users} --numeric-suffixes Test.csv Test-; /bin/bash ./Shellscripttoread_assignvariables.sh;"]
command: ["/bin/bash", "-c"]
env:
- name: JobNumber
value: "00"
envFrom:
- configMapRef:
name: job-multi
image: imagepath
name: ubuntu-00
resources:
limits:
memory: “8000Mi"
cpu: "2880m"
- args: ["split -l ${users} --numeric-suffixes Test.csv Test-; /bin/bash ./Shellscripttoread_assignvariables.sh;"]
command: ["/bin/bash", "-c"]
env:
- name: JobNumber
value: "01”
envFrom:
- configMapRef:
name: job-multi
image: imagepath
name: ubuntu-01
resources:
limits:
memory: “8000Mi"
cpu: "2880m"

您的YAML非常好,但它没有告诉您如何启动JMeter或您调用的这些shell脚本正在做什么。

如果您只是通过k8s启动两个独立的JMeter实例,那么JMeter将查看.jtl文件中的活动线程数,并且给定Sampler/Transaction名称是相同的JMeter"认为";测试是在一台发动机上进行的。

解决方法是将machineName((或__machineIP((函数添加到采样器/事务标签中,这样JMeter将区分来自不同实例的结果,您将看到实际数量的活动线程。

解决方案是在分布式模式下运行JMeter测试,因此主设备将在一个pod中运行,从设备将在自己的pod中运行。主设备将负责将.jmx脚本传输到从设备并从其收集结果

最新更新