我有很多客户(约4000)。 每个客户端每2秒钟ping我的服务器。 这些ping请求可以对服务器施加负载并减慢速度吗?请求ping请求是否对服务器造成负担?
如何监控此负载? 现在,服务器的响应速度很慢,但处理器几乎空闲,并且可用内存不错。 我在Ubuntu上运行Apache。
我有很多客户(约4000)。 每个客户端每2秒钟ping我的服务器。 这些ping请求可以对服务器施加负载并减慢速度吗?请求ping请求是否对服务器造成负担?
如何监控此负载? 现在,服务器的响应速度很慢,但处理器几乎空闲,并且可用内存不错。 我在Ubuntu上运行Apache。
假设你的意思是一个UDP/ICMP ping来查看主机是否活着,那么4000个主机可能没有太多的负载并且相当容易计算。 CPU和内存方面,ping是由内核来处理的,应该优化为不占用太多资源。所以,你需要看网络资源。最关键的一点是,如果你有一个半双工链路,因为你们所有的主机都很健谈,你会导致大量的冲突和重传(以及丢弃的ping)。如果链接都是全双工的,那么让我们计算服务器所需的实际带宽量。
如果这是一个局域网环境,我会说这基本上没有负载,如果它是通过T1然后它是一个巨大的负载量。所以你应该基本上运行相同的计算,哪些网络链接也可能是瓶颈。
最后,如果您不使用ICMP ping来检查主机,但具有应用程序级别的ping,那么您将拥有所使用的协议的所有开销,并且ping将需要一直向上协议栈,并且您的应用程序需要做出响应。再次,这可能是一个非常小的负载,或者它可能是巨大的,这取决于实现细节和网络速度。如果主机闲置,我怀疑这对你来说是一个问题。
除带宽之外的另一个问题是CPU。如果将一个ping命令指向CPU进行处理,则会有数千个命令导致任何CPU上的负载。这是值得监测的 - 但正如你所说的你几乎空闲,所以它可能会应付。值得记住,但。
根据客户端的不同,ping数据包的大小可能不同 - 它们的有效负载可能只是“aaaaaaaaa”,但有些可能是“thequickbrownfoxjumpedoverthelazydog” - 这明显是对带宽的进一步要求。
你的意思是ICMP ping或更高级别的东西? – skaffman 2009-12-18 07:07:30
是的,ICMP ping。 Ping由WinAPI的InternetCheckConnection函数发送。 – Pavel 2009-12-18 07:31:39