1

我们正在使用带有UbikLoadPack视频流插件的Apache JMeter ,提供 HLS、MPEG-DASH 和 MS Smooth 格式,我们将很快开始从我们的注入器进行大规模负载测试。

在以下方面推荐的配置是什么:

  • 机器
  • 操作系统
  • 系统调优
  • 爪哇
4

1 回答 1

0

很难回答这样的问题,因为行为至少取决于以下因素:

  • Stream 的类型:HLS 将比 MPEG-DASH 和 HSS 执行得更好,由于 XML 格式,最新的 2 个更消耗 CPU
  • Manifest 的持续时间,最大的是需要更多的内存和解析
  • 刷新周期,越短越消耗内存和CPU

所以最好的建议是根据你的清单进行校准。

关于您的问题的一些建议:

机器:

  • 确保您有足够的带宽和网卡
  • 使用“平均清单”,使用 m5.2xlarge 类型的机器(8 vCPU / 16 到 32 Go)负载测试 700 到 1500 个线程(虚拟用户)应该没有问题

操作系统

  • 我们建议您使用 Linux/MacOS 而不是 Windows 操作系统,因为您将在相同的虚拟/物理配置上获得更多线程。
  • 但是自从使用Java以来​​所有工作

对于 linux 应用以下调整:

 net.ipv4.tcp_syncookies=1
 net.core.netdev_max_backlog=5000
 net.ipv4.tcp_max_syn_backlog=4096
 net.core.somaxconn=5000
 net.core.rmem_max=8388608
 net.core.wmem_max=8388608
 net.ipv4.tcp_no_metrics_save=1
 net.ipv4.tcp_keepalive_probes=2
 net.ipv4.tcp_keepalive_intvl=20
 net.ipv4.tcp_fin_timeout=15
 net.ipv4.tcp_max_syn_backlog=5000
 net.ipv4.tcp_keepalive_time=300
 net.ipv4.tcp_tw_recycle=0
 net.ipv4.tcp_tw_reuse=1
 net.ipv4.tcp_sack=1
 net.ipv4.tcp_dsack=0
 net.ipv4.ip_local_port_range= 1025 65000
 vm.swappiness = 5
 net.ipv4.tcp_slow_start_after_idle = 0

爪哇

  • 确保使用 Java 8 或 9 的最新次要版本。
  • 确保使用 Java 64 位能够分配超过 1.5/2GB 的内存。通过运行检查

    java版本

根据您的校准分配足够的堆,例如分配 6g 堆:

 -Xmx6g -Xms6g

检查 jmeter.log 内存确实是你分配的,像这样,对于 2g 你会得到:

 2018-03-14 21:55:09,662 INFO o.a.j.JMeter: Max memory     =2058 354 688

一些建议的 GC 调整:

 -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=30 
 -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 
 -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false 
 -XX:MaxMetaspaceSize=256m -XX:G1HeapRegionSize=32m -Xss256k 

您可以在此博客中阅读更多内容:

于 2018-03-17T13:54:21.750 回答