我有很多客戶(約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