乐鑫技术交流
直播中

杨静

7年用户 1446经验值
私信 关注
[问答]

求助,关于使用iperf测量mesh节点吞吐量问题求解

我把esp-mesh-lite的no-route例程和iperf例程合在一起,想测试两个mesh节点间tcp通信的吞吐量,实际过程中一开始流量正常,数秒后客户端发数据这边monitor卡死没有任何输出,只能手动ctrl+]退出,服务端收数据这边吞吐量归零,正常走完iperf测试时间(我设定的15s)后出现W (897098) iperf: tcp server recv error, error code: 11, reason: No more processes。 客户端那里因为卡死了没输出我也看不了错误原因,我直接使用iperf例程用wifi连接的时候测吞吐量没问题,请问是什么原因呢?用的是esp32-devkitc,esp-idf-v5.2.2

回帖(1)

淡淡的爱

2024-7-23 17:25:53
从您的描述来看,问题可能出现在以下几个方面:

1. **内存问题**:当您将两个例程合并时,可能存在内存不足的情况。ESP32的内存有限,尤其是在运行较大的程序时。您可以尝试优化代码,减少内存占用,或者使用更小的堆栈大小。

2. **任务调度问题**:在ESP32中,任务调度可能会影响程序的运行。您需要确保在您的程序中,任务调度是合理的,以避免死锁或任务饿死。

3. **网络问题**:由于您提到在WiFi连接下使用iperf例程没有问题,这可能表明问题与ESP-Mesh网络有关。请检查您的Mesh网络配置,确保网络连接稳定。

4. **iperf参数设置**:您可能需要检查iperf的参数设置,确保它们适用于您的Mesh网络环境。例如,您可以尝试调整TCP窗口大小或使用不同的拥塞控制算法。

5. **ESP-Mesh Lite版本问题**:您使用的是ESP-IDF v5.2.2,但ESP-Mesh Lite可能在这个版本中存在一些已知问题。您可以尝试升级到最新版本的ESP-IDF,看看问题是否得到解决。

6. **错误处理**:在您的程序中,可能存在一些未处理的错误。当错误发生时,程序可能无法正常运行。您可以在代码中添加更多的错误处理逻辑,以便在出现问题时能够及时发现并解决问题。

7. **调试信息**:由于客户端卡死,您可能无法获取详细的错误信息。您可以尝试在程序中添加更多的日志输出,以便在出现问题时能够更容易地定位问题。

综上所述,您需要从多个方面检查和优化您的程序,以解决这个问题。希望这些建议对您有所帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分