【问题标题】:Transfer data measurement between client (raspberry pi) server (http/amqp/mqtt)在客户端 (raspberry pi) 服务器 (http/amqp/mqtt) 之间传输数据测量
【发布时间】:2026-02-08 21:55:02
【问题描述】:

我想测量使用不同协议的客户端和服务器之间的消息传输带宽:在这两种情况下,例如客户端(树莓派)到服务器和服务器到客户端(树莓派)。

假设我从 Ruby 或 Java 程序向 AMQP(RabbitMQ 代理)、Mqtt(Mosquito 代理)或 HTTP 服务器(rails 应用程序)发送/接收以下 json 消息。

留言

{   
"unit1": { "state": [ { "ON": "200", "time": "12212" } ] }
}

如何计算发送/接收此消息所需的带宽量(千字节或字节)?如果我使用 Ruby 或 Java REST 程序将此消息发送到 HTTP 服务器的事件,我如何计算这些所需的数据?

在 Ruby 或 Java 中是否有任何 API 可以从应用层或 TCP 层计算,我可以使用任何工具来计算特定的端口和 IP 地址吗?谁能告诉我还有哪些其他方法可以进行此测量?

【问题讨论】:

  • 你要使用Rabbitmq管理系统:rabbitmq.com/management.html
  • @Anthony 是否可以使用这个 RabbitMq 管理系统测量单个消息传输的带宽?

标签: java ruby ruby-on-rails-4 networking bandwidth


【解决方案1】:

我已经使用 tcpdump 等不同的工具进行了一些处理,但我得到了Wireshark,它提供了许多方便的功能,并且它具有漂亮的图形前端,以及一些集成的排序和过滤选项。解决了从客户端向服务器发送单个 JSON 数据的查询,并找到了测量单个通信带宽信息的简单方法。

【讨论】:

    【解决方案2】:

    毫无疑问,有更好的方法,但我使用的一种简单方法是将请求发送到 nginx 的本地实例(或您喜欢的任何 http 服务器),然后检查日志为 request_body 大小值。

    【讨论】: