首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kubernetes分布式测试-J流量计不会启动;sun.rmi.transport.tcp.TCPConnection关闭

Kubernetes分布式测试-J流量计不会启动;sun.rmi.transport.tcp.TCPConnection关闭
EN

Stack Overflow用户
提问于 2022-10-13 15:58:20
回答 2查看 63关注 0票数 0

我的架构:代理、防火墙和其他交换机后面的kubernetes名称空间。我的主人把任务发送给奴隶,当脚本结束时,它关闭奴隶和主人。我有网络,入口和出口配置和运行。我在3端口范围内有开放端口,例如60000-60002,1099-1101.

我的问题是:通常,当我开始测试时,主程序应该发送日志,例如:

代码语言:javascript
运行
复制
"Oct 12, 2022 11:31:39 AM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
Creating summariser <summary>
Created the tree successfully using /mount/10_2022/scenario.jmx
Configuring remote engine: slave-1
Using local port: 60000
Starting distributed test with remote engines: [slave-1] @ October 12, 2022 11:31:41 AM CEST (1665567101036)
Remote engines have been started:[opl-jmeter-distributed-slave-1]
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445"

当主程序发送日志时:

代码语言:javascript
运行
复制
"Oct 12, 2022 11:31:39 AM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
Creating summariser <summary>
Created the tree successfully using /mount/10_2022/scenario.jmx
Configuring remote engine: slave-1
Using local port: 60000
Starting distributed test with remote engines: [slave-1] @ October 12, 2022 11:31:41 AM CEST (1665567101036)

<在这一行之间大约是7-10分钟break.>

代码语言:javascript
运行
复制
"Remote engines have been started:[opl-jmeter-distributed-slave-1]
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445"

在此之后什么都不会发生,除了日志错误,例如:

代码语言:javascript
运行
复制
"2022-10-12 11:40:30,274 ERROR o.a.j.s.RemoteListenerWrapper: testStarted(host) on slave-1
java.rmi.ConnectException: Connection refused to host: <MASTER'S IP>; nested exception is: java.net.ConnectException: Connection timed out (Connection timed out)"

代码语言:javascript
运行
复制
"2022-10-12 11:49:18,668 ERROR o.a.j.s.BatchSampleSender: sampleOccurred
java.rmi.ConnectException: Connection refused to host: <MASTER'S IP>; nested exception is:java.net.ConnectException: Connection timed out (Connection timed out)"

我开始调试我的操作,这就是我从主日志中得到的:

代码语言:javascript
运行
复制
"Oct 13, 2022 10:45:37 AM sun.rmi.transport.tcp.TCPChannel free
FINE: RMI RenewClean-[172.16.28.15:60000,SSLRMIClientSocketFactory(keyStoreLocation=/mount/keyStore/rmi_keystore.jks, type=JKS, trustStoreLocation=/mount/keyStore/rmi_keystore.jks, type=JKS, alias=rmi)]: create reaper
Oct 13, 2022 10:45:52 AM sun.rmi.transport.tcp.TCPChannel$1 run
FINER: RMI Scheduler(0): wake up
Oct 13, 2022 10:45:52 AM sun.rmi.transport.tcp.TCPChannel freeCachedConnections
FINER: RMI Scheduler(0): connection timeout expired
Oct 13, 2022 10:45:52 AM sun.rmi.transport.tcp.TCPConnection close
FINE: RMI Scheduler(0): close connection"

我开始调试我的操作,这就是我从主日志中得到的:

代码语言:javascript
运行
复制
Oct 13, 2022 10:45:37 AM sun.rmi.transport.tcp.TCPChannel free
FINE: RMI RenewClean-[172.16.28.15:60000,SSLRMIClientSocketFactory(keyStoreLocation=/mount/keyStore/rmi_keystore.jks, type=JKS, trustStoreLocation=/mount/keyStore/rmi_keystore.jks, type=JKS, alias=rmi)]: create reaper
Oct 13, 2022 10:45:52 AM sun.rmi.transport.tcp.TCPChannel$1 run
FINER: RMI Scheduler(0): wake up
Oct 13, 2022 10:45:52 AM sun.rmi.transport.tcp.TCPChannel freeCachedConnections
FINER: RMI Scheduler(0): connection timeout expired
Oct 13, 2022 10:45:52 AM sun.rmi.transport.tcp.TCPConnection close
FINE: RMI Scheduler(0): close connection

请帮帮忙。有线索吗?为什么我的测试不开始?

--更新--

我的奴隶yaml:

代码语言:javascript
运行
复制
> apiVersion: v1
kind: Service
metadata:
  name: jmeter-distributed-slave-1
  labels:
    run: jmeter-slave
  namespace: tst-eff
spec:
  type: ClusterIP
  ports:
  - port: 8000
    name: debug
  - port: 60000
    name: input
  - port: 1099
    name: port
  selector:
    id: jmeter-distributed-slave-1
---
apiVersion: v1
kind: Pod
metadata:
  name: jmeter-distributed-slave-1
  labels:
    run: jmeter-slave
    layer: slave
    type: distributed
    id: jmeter-distributed-slave-1
  namespace: tst-eff
spec:
  restartPolicy: Never
  containers:
  - name: jmeter-distributed-slave-1
    image: performance/jmeter:5.5
    imagePullPolicy: Always
    env:
    - name: JVM_ARGS
      value: "-server -d64 -Xms12g -Xmx31g -Xss256k -XX:+UseConcMarkSweepGC -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:+DisableExplicitGC"
    ports:
    - containerPort: 60000
    - containerPort: 8000
    volumeMounts:
    - mountPath: "/mount"
      name: properties
    - mountPath: "/users"
      name: users
    command: ["jmeter.sh"]
    args: ["-s", "-Jserver.rmi.localport=60000", "-Jserver.rmi.ssl.keystore.file=/mount/keyStore/rmi_keystore.jks", "-Jhttpclient4.retrycount=1", "-Jhttpclient4.idletimeout=5000", "-Jhttp.connection.stalecheck$Boolean=true", "-q", "/mount/prod.properties", "-D", "javax.net.ssl.keyStore=/mount/keyStore/keystore_prod.jks", "-D", "javax.net.ssl.keyStorePassword=passwordpassword", "-j", "/mount/logs_jmeter/jmeter-distributed-slave-1_'YYYYMMdd_HHmm'.log"]
    resources:
      requests:
        cpu: 2
        memory: 12G
      limits:
        cpu: 3
        memory: 30G
  imagePullSecrets:
  - name: credentials
  securityContext:
    fsGroup: xxx
  volumes:
  - name: properties    
    nfs:
      server: xxx.xx.xx.xx
      path: /performance_tst_eff/jmeter/
  - name: users
    nfs:
      server: yyy.yy.yy.yy
      path: /performance_tst_eff/jmeter-1-r1

我的主人yaml:

代码语言:javascript
运行
复制
apiVersion: v1
kind: Service
metadata:
  name: jmeter-distributed-master
  labels:
    run: jmeter-master
  namespace: tst-eff
spec:
  type: ClusterIP
  ports:
  - port: 8000
    name: debug
  - port: 60000
    name: input
  - port: 1099
    name: port
  selector:
    id: jmeter-distributed-master
---
apiVersion: v1
kind: Pod
metadata:
  name: jmeter-distributed-master
  labels:
    run: jmeter-master
    type: distributed
    layer: master
    id: jmeter-distributed-master  
  namespace: tst-eff
spec:
  restartPolicy: Never
  containers:
  - name: jmeter-distributed-master
    image: performance/jmeter:5.5
    imagePullPolicy: Always
    env:
    - name: UMASK
      value: "011"
    - name: JVM_ARGS
      value: "-server -d64 -Xms1g -Xmx2g -Xss256k -XX:+UseConcMarkSweepGC -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:+DisableExplicitGC"
    ports:
    - containerPort: 60000
    volumeMounts:
    - mountPath: "/mount"
      name: properties
    - mountPath: "/users"
      name: users
    command: ["bash"]
    resources:
      requests:
        cpu: 1
        memory: 4G
      limits:
        cpu: 4
        memory: 8G
    args: ["-c", "/jmeter/bin/jmeter.sh -n -Jserver.rmi.localport=60000 -Jserver.rmi.ssl.keystore.file=/mount/keyStore/rmi_keystore.jks -Jclient.tries=3 -Jclient.retries_delay=10000 -Ghttpclient4.retrycount=1 -Ghttpclient4.idletimeout=5000 -Ghttp.connection.stalecheck$Boolean=true -D javax.net.ssl.keyStore=/mount/keyStore/keystore_prod.jks -D javax.net.ssl.keyStorePassword=passwordpassword -q /mount/prod.properties -l /mount/results/mini_smoke_$(date +%Y%m%d%H%M).jtl -t /mount/10_2022/mini.jmx -j /mount/logs_jmeter/jmeter-distributed-master_$(date +%Y%m%d%H%M).log -R jmeter-distributed-slave-1 -X"]
  imagePullSecrets:
  - name: credentials
  securityContext:
    fsGroup: xxxx
  volumes:
  - name: properties
    nfs:
      server: xxx.xx.xx.xx
      path: /performance_tst_eff/jmeter/
  - name: users
    nfs:
      server: yyy.yy.yy.yy
      path: /performance_tst_eff/jmeter-1-r1  

哪里出问题了?下面是我在防火墙上打开的端口: 1099-1101 8000-8002 60000-60002

EN

Stack Overflow用户

发布于 2022-10-14 05:05:12

很可能你的RMI配置不正确

您需要创建一个服务并公开以下端口:

  • 1099或其他什么是你的server_port
  • 4000或其他什么是你的server.rmi.localport

与奴隶的Dockerfile类似:

代码语言:javascript
运行
复制
EXPOSE 1099 4000

在k8s服务中

代码语言:javascript
运行
复制
spec:
  clusterIP: None
  ports:
    - port: 1099
      name: server_port
      targetPort: 1099
    - port: 4000
      name: server_rmi_localport
      targetPort: 4000

并在client.rmi.localport主服务器端对JMeter执行同样的操作。

更多信息:基于Docker的JMeter分布式测试

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74058685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档