我有很多客户(大约4000个)。 每个客户端每 2 秒 ping 一次我的服务器。 这些 ping 请求会给服务器带来负载并减慢速度吗?
如何监控此负载? 现在服务器响应缓慢,但处理器几乎空闲,可用内存也可以。 我在 Ubuntu 上运行 Apache。
假设您的意思是 UDP/ICMP ping 只是为了查看主机是否处于活动状态,4000 个主机可能负载并不大,并且相当容易计算。 CPU 和内存方面,ping 由内核处理,并且应该进行优化以不占用太多资源。因此,您需要查看网络资源。最关键的一点是,如果您有半双工链路,因为所有主机都很活跃,您将导致大量冲突和重新传输(以及 ping 丢失)。如果链路都是全双工的,我们来计算一下服务器实际需要的带宽量。
如果这是一个 LAN 环境,我会说这基本上根本没有负载,如果它经过 T1 那么它是一个巨大的负载。因此,您基本上应该对哪些网络链接也可能成为瓶颈进行相同的计算。
最后,如果您不使用 ICMP ping 来检查主机,而是使用应用程序级别 ping,则您将承担所使用协议的所有开销,并且 ping 需要一直沿协议栈向上进行,并且您的应用程序需要响应。同样,这可能是一个非常小的负载,也可能是巨大的负载,具体取决于实现细节和网络速度。如果主机空闲,我怀疑这对你来说是个问题。
除了带宽之外的另一个问题是CPU。如果将 ping 定向到 CPU 进行处理,则数千个 ping 可能会对任何 CPU 造成负载。它值得监控 - 但正如你所说,你的几乎闲置,所以它可能能够应对。不过值得记住。
根据客户端的不同,ping 数据包的大小可能不同 - 它们的有效负载可能只是“aaaaaaaaa”,但有些可能是“thequickbrownfoxjumpedoverthelazydog” - 这显然又是进一步的带宽要求。