我有一台 Linux 设备,在 7/24 环境下每 1 分钟向远程云服务发送一次数据。为了确保通过互联网发送数据的可靠性,而不是依赖内部内核缓冲区,我需要监控以下统计数据,我认为 RX / TX 代表了进入/离开接口的数据包的真实数量,对吗?如果正确,以下最大数字是多少,uint32 还是 uint64?当达到最大数字导致溢出时,它将如何处理?
猫/ sys /类/净/ eth0 /统计/ rx_bytes
猫/ sys /类/净/ eth0 /统计/ rx_packets
猫/ sys /类/净/ eth0 /统计/ tx_packets
猫/ sys /类/净/ eth0 /统计/ tx_bytes
非常感谢。
亲切的问候,
木星
答案1
为了确保通过互联网发送数据的可靠性,不受内部内核缓冲区的影响,我需要监控以下统计数据,我相信 RX / TX 代表传入/传出接口的数据包的真实数量,对吗?
这是一种奇怪而愚蠢的监控方式。
首先,如果您使用 TCP/IP,则可以假设传输是可靠的。例如,如果传输超时或连接失败,您将遇到某种连接故障,您可以登录应用程序。这将提供比单纯的数据包计数器更准确的信息。
其次,如果您知道您每分钟发送一条消息,请计算收到的消息数。不是数据包数(第 2 层),而是消息数(大致在第 4 层到第 7 层之间)。这比计算数据包数更能让您了解情况。
如果计算 L2 数据包,这包括对 ping 的回复、广播流量和网络上所有其他类型的流量。