0
我正在構建一個Windows服務,它監聽TCP上的連接,並且一旦建立連接,就會發送穩定的數據流。這非常簡單...一旦發出初始請求,通信就是單向的(當然是在應用層)。網絡服務器應用程序的負載測試策略
有什麼好的方法來測試這種負載很重的情況,比如多達3000個同時連接?有這種標準的工具嗎,還是應該自己寫?
我正在構建一個Windows服務,它監聽TCP上的連接,並且一旦建立連接,就會發送穩定的數據流。這非常簡單...一旦發出初始請求,通信就是單向的(當然是在應用層)。網絡服務器應用程序的負載測試策略
有什麼好的方法來測試這種負載很重的情況,比如多達3000個同時連接?有這種標準的工具嗎,還是應該自己寫?
我感覺你已經編寫了你自己的協議,所以我認爲你就像堅持實現你自己的負載測試客戶端。
爲這樣的事情寫一個負載測試客戶端並不難。我建議的唯一的事情就是真正考慮你是要測試一臺物理機器還是多臺機器的連接。我並不是說你應該從3000臺物理機器上進行測試,但是像10臺或20臺機器這樣的設備會是一個好主意。否則,客戶機很可能會成爲瓶頸。
此外,要真正測試服務器,您必須具有良好的負載測試實施。如果您看到負載測試儀的處理器使用率保持在100%,那麼您並未測試服務器;你正在測試客戶端。
感謝您的建議。我想我可能會走這條路。也許當我完成後,我將構建一個通用測試實用程序並將其發佈給其他人使用。可以將預定義的數據塊發送到服務器並接受響應的東西。我對自己的優化能力並不那麼自信,這就是爲什麼我希望標準工具已經存在,但檢查測試儀是否過載的情況很簡單。再次感謝。 – Brad 2010-11-16 18:38:30
那麼,我可以給的最好的建議是去一個異步實現('BeginRead' /'BeginWrite')而不是多個進程。這是最重要的一點,並且會增加客戶端的吞吐量。 – 2010-11-16 18:49:56