2011-12-23 183 views
3

我有一個簡單(ISH)Web應用基準設置:如何調試TCP連接被拒絕?

LoadGenerator - >阿帕奇 - > Web應用程序

當我跑我的幾千個測試用戶... evertything按預期工作的基準。

但是,當我將測試用戶的數量增加到14k左右...我的Apache服務器開始拒絕連接到我的LoadGenerator的一些連接。 CPU利用率遠不及容量......並且似乎沒有任何從Apache到我的WebApp的連接斷開。

我相信我的Apache服務器上有一些資源耗盡,但我不知道是什麼?我認爲它可能是港口......但我的聯繫不夠高,我相信。

接下來我試着看tcpdump信息...但我真的沒有看到任何有趣的事情。雖然說實話,我只是在Wireshark中打開了轉儲並尋找了大紅色標記。

有沒有辦法讓跳轉中的內核輸出錯誤消息,我可能會看到一些告訴我發生了什麼事情。在完美的世界中,我會看到一條錯誤消息,如「錯誤:連接數不夠X」。

您可能會推薦的任何其他提示,以瞭解爲什麼我的LoadGenerator持續打擊連接被拒絕?

回答

0

您可以啓用mod_status模塊,看看有多少工人使用等

0

谷歌「TIME_WAIT」 - 你可能耗盡可用的套接字。

+0

起初,我不得不TIME_WAITS成千上萬的,然後我打開保持活動......幾乎所有我的TIME_WAITS就走了。現在我有7K或8K ESTABLISHED連接....但問題仍然存在。所以沒有。 – 2011-12-23 01:27:34

0

如果您想出來的資源,那麼請嘗試

ulimit -a 

這將顯示你的進程的資源限制。 輸出是類似下面

core file size (blocks) 1000000 
    data seg size (kbytes) unlimited 
    file size (blocks)   unlimited 
    max memory size (kbytes) unlimited 
    stack size (kbytes)   8192 
    cpu time (seconds)   unlimited 
    max user processes   unlimited (1) 
    pipe size (512 bytes)   8 
    open files     1024 
    virtual memory (kbytes) 2105343 

這裏您檢查打開的文件。其中描述了fd的限制(包括套接字,管道,文件等)允許通過linux打開。

您可以通過的ulimit -n

更改此請確保您有同樣的問題。否則這是沒有用的。

的ulimit裁判:http://ss64.com/bash/ulimit.html

+0

我檢查了ulimit,主要是看我的打開的文件描述符限制...因爲那是我最初的懷疑。我在下面。我覺得它可能是一些深奧的TCP參數......需要調整每秒超過400個連接。 – 2011-12-23 16:05:49