Jmeter 分布式压测记录遇到的坑【持续更新中】

本文详细讲述了Windows主控通过JMeter远程操控Linux傀儡机时遇到的问题,包括网络连接故障、文件读取、内存调整、SSL禁用和端口冲突等,并提供了相应的解决步骤。

这边我把 Windows 的作为主控机,远程操作的叫 傀儡机

一、远程启动傀儡机,未能正确返回响应信息

 Jmeter 启动远程测试后,傀儡机器收到了测试任务,
 且控制台显示:”Starting the test on host 192.168.1.1:5555 @ ***“,
 说明主控机分派给傀儡机上的测试任务启动成功,但是一直卡在这里不动了,
 图形化 Jmeter 一直没有显示响应,而且无法关闭(关闭就是提示:测试进行中)

解决办法:

  1. 先用主控机 Ping 傀儡机,是否可以 Ping 的通
  2. 如果报错连接超时丢包,关闭傀儡机的防火墙,然后再次请求
  3. 如果主控机 Ping 傀儡机成功,就反向拿傀儡机 Ping 主控机
  4. 如果报错连接超时丢包,关闭主控机的防火墙,然后再次请求

二、控制傀儡机读取CSV文件失败

Jmeter 脚本内添加了 CSV 参数文件,
启动远程测试后,傀儡机器收到了测试任务,但是响应没有返回
查看 jmeter-server.log 发现类似如下的报错信息:
java.lang.IllegalArgumentException: File jmeter_DLL.txt must exist and be readable
原因是 windows本地是磁盘目录,跟Linux的jmeter安装目录有差别导致CSV无法正确读取

解决办法:

  1. 将【脚本文件】和 【CSV文件】 统一放到 windows和Linux 的Jmeter 安装的 bin 目录下

<think>好的,我现在需要帮助用户在Linux环境下使用JMeter进行试,并监控系统资源利用率,同时生成截图。首先,我得理清楚整个步骤,确保每一步都正确无误,并且符合用户的需求。 用户的问题分为两部分:使用JMeter进行和监控系统资源。JMeter部分可能需要安装、配置试计划,运行试。而资源监控可能需要用到其他工具,比如top、vmstat、sar,或者图形化工具如nmon、htop。截图的话,可能需要用户在命令行下使用截图工具,或者在运行监控工具时保存输出结果。 首先,JMeter在Linux上的安装。通常可以通过下载二进制包,解后配置环境变量。用户可能需要Java环境,所以需要检查Java是否安装。这部分需要提醒用户确认Java版本,因为JMeter需要Java 8或更高版本。 接下来是创建试计划。用户可能需要指导如何添加线程组、HTTP请求、监听器等。这里可能需要示例配置,比如设置线程数、循环次数,以及目标URL。监听器部分,比如聚合报告或查看结果树,但要注意监听器可能会消耗较多资源,影响试结果,所以建议在正式时禁用,或者仅在需要时启用。 然后是运行JMeter试。命令行的方式是非GUI模式,这样可以减少资源消耗,提高效率。命令类似于`jmeter -n -t test.jmx -l result.jtl`。需要提醒用户正确指定试计划文件和结果文件路径。 关于资源监控,用户需要实时查看CPU、内存、磁盘I/O和网络使用情况。常用的工具有top、vmstat、iostat、sar(sysstat包),以及nmon。这些工具的使用方法可能需要简要说明,比如运行top并记录输出,或者使用sar定期收集数据。对于截图,可能需要结合使用这些工具的命令行输出和截图工具,比如scrot或gnome-screenshot,但如果是无GUI的服务器,可能需要将输出重定向到文件,或者使用其他方法。 另外,用户可能需要同时运行和监控工具,这可以通过在后台运行监控命令,或者在另一个终端窗口中运行。例如,使用`top -b -d 1 -n 60 > top.log`将top的输出保存到文件,之后可以处理这个文件生成图表或截图。 关于截图教程,可能需要分步骤说明如何安装截图工具,如何捕获特定窗口或屏幕区域。如果用户使用的是带图形界面的Linux,可能更容易;如果是纯命令行,可能需要使用其他方法,比如将监控数据保存为文本或CSV,再生成图表。 可能需要考虑用户是否具备图形界面,或者是否需要通过SSH进行操作。如果是SSH连接,可能需要使用X11转发来显示图形工具,或者建议用户使用基于终端的监控工具,并将输出保存为文件,之后用其他工具处理成截图。 另外,JMeter分布式试也是一个可能涉及的点,尤其是当单机无法模拟足够并发时。引用中提到了JMeter分布式试的原理和Docker配置,但用户当前的问题可能不需要分布式,除非并发量特别大。不过可能需要简要提及,作为扩展内容。 需要确保所有步骤的命令正确,并且考虑到不同Linux发行版的差异,比如安装软件包时使用yum还是apt。例如,安装sysstat在Ubuntu上是`apt-get install sysstat`,而在CentOS是`yum install sysstat`。 最后,整理步骤时要逻辑清晰,分点说明,确保用户能一步步跟随操作,并注意可能遇到的常见问题,比如权限问题、工具未安装、Java环境问题等。同时,引用相关的资料,比如引用[^1]提到JMeter分布式试,引用[^4]提到fio用于磁盘试,但当前问题可能不需要fio,除非用户需要同时试I/O性能。 总结步骤大致如下: 1. 安装JMeter和Java环境。 2. 创建JMeter试计划,配置线程组、HTTP请求、监听器。 3. 运行JMeter试(非GUI模式)。 4. 同时运行系统监控工具(如top、vmstat、nmon等)。 5. 保存监控数据,生成截图或报告。 6. 分析结果,查看资源利用率。 需要详细说明每个步骤的具体命令和操作,并给出示例。例如,如何安装JMeter,如何编写试计划,如何运行试,如何启动监控,如何截图等。 可能还需要提醒用户,在过程中监控工具本身可能会消耗资源,因此需要权衡监控频率和资源开销。例如,使用sar每秒钟收集一次数据可能比较合理。 对于截图部分,如果用户无法直接截图,可以将监控数据保存为日志文件,之后用工具如gnuplot生成图表,或者使用Excel处理数据生成图表,再截图保存。或者,使用像nmon这样的工具,它可以生成图表文件,直接截图。 另外,需要确保所有命令和步骤在Linux环境下可行,并考虑权限问题,比如是否需要sudo来安装软件包,或者运行某些监控命令。 最后,验证整个流程是否正确,是否有遗漏步骤,比如JMeter试计划的保存、监控数据的收集时间与时间同步等。</think>### 如何在 Linux 上用 JMeter 进行并监控系统资源利用率(附带截图教程) --- #### **步骤 1:安装 JMeter 和依赖环境** 1. **安装 Java** JMeter 依赖 Java 环境(需 JDK 8 或以上版本): ```bash sudo apt-get install openjdk-11-jdk # Ubuntu/Debian # 或 sudo yum install java-11-openjdk # CentOS/RHEL ``` 2. **下载并安装 JMeter** ```bash wget https://downloads.apache.org/jmeter/binaries/apache-jmeter-5.6.3.tgz tar -xzf apache-jmeter-5.6.3.tgz cd apache-jmeter-5.6.3/bin ``` --- #### **步骤 2:创建 JMeter 试计划** 1. **启动 JMeter GUI(仅用于配置)** ```bash ./jmeter.sh # 图形界面仅用于设计试脚本 ``` - **添加线程组**:右键 `Test Plan` → `Add` → `Threads (Users)` → `Thread Group`,设置线程数(并发用户数)和循环次数。 - **添加 HTTP 请求**:右键 `Thread Group` → `Add` → `Sampler` → `HTTP Request`,填写目标 URL 和参数。 - **添加结果监听器**:右键 `Thread Group` → `Add` → `Listener` → `Aggregate Report`(用于汇总结果)。 2. **保存试计划** 保存为 `test.jmx` 文件。 --- #### **步骤 3:运行 JMeter (非 GUI 模式)** ```bash ./jmeter -n -t /path/to/test.jmx -l result.jtl ``` - `-n`:非 GUI 模式(减少资源占用)[^1] - `-l`:指定结果日志文件。 --- #### **步骤 4:监控系统资源利用率** 1. **使用 `top` 实时查看 CPU 和内存** 运行以下命令并截图: ```bash top ``` - 按 `Shift + PrtSc` 截图(需图形界面),或使用 `scrot` 工具: ```bash sudo apt-get install scrot # 安装截图工具 scrot top_monitor.png ``` 2. **使用 `vmstat` 监控系统整体状态** ```bash vmstat 1 60 > vmstat.log # 每秒采样一次,持续60秒 ``` - 生成日志后,使用 `gnuplot` 或 Excel 可视化数据。 3. **使用 `nmon` 生成资源报告** ```bash sudo apt-get install nmon # Ubuntu/Debian sudo yum install nmon # CentOS/RHEL nmon -f -s 1 -c 60 # 每秒采样,持续60秒,生成 .nmon 文件 ``` - 使用 `nmon_analyzer` 转换 `.nmon` 文件为图表(需 Windows 工具)。 --- #### **步骤 5:结果分析与截图示例** 1. **JMeter 结果分析** - 查看 `result.jtl` 文件,或使用 `Aggregate Report` 监听器加载文件生成汇总报告。 2. **资源监控截图示例** - **CPU 使用率**(通过 `top` 或 `nmon`): ![CPU Usage](https://example.com/cpu_usage.png) - **内存占用**(通过 `free -m` 或 `vmstat`): ![Memory Usage](https://example.com/memory_usage.png) --- #### **注意事项** - **分布式**:若单机性能不足,可参考 JMeter 分布式配置[^1],通过多台机器分担负载。 - **减少监听器开销**:正式时禁用图形监听器,以降低资源消耗。 - **监控工具选择**:`nmon` 适合生成详细报告,`top` 适合实时查看。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值