2013-11-03 81 views
5

我想看看我的nginx + node.js安裝程序可以走多遠,我可以做出什麼樣的改變來擠出額外的性能我已經絆倒了a great article,詳細介紹了可以對操作系統進行一些調整,以承受更多的請求(這我不確定我完全理解)如何模擬大量的併發請求到Web服務器?

說我想看看它在一段時間內每秒處理60,000個請求的方式。

我試過apachebench和beeswithmachineguns。 apachebench似乎侷限於約3500個請求或其他東西。提高併發性只能以某種方式降低平均需求。 我能夠看到(聲稱)〜每秒5000個請求到beeswithmachineguns的測試頁面,但這仍然與我想要的無關。然而,它似乎有點在越野車方面。

有沒有可靠的方法來模擬這樣的大量請求?

回答

5

你也可以試試siege

您鏈接的文章對我來說看起來不錯。

生成60,000 rq/s並同時回答它們將會是一個問題,因爲您肯定會耗盡資源。最好有一些其他計算機(可能在同一網絡上)生成請求,並讓服務器只處理這些請求。

下面是一個您希望的60,000 rq/s的攻擊配置示例,它會在一分鐘內觸發您的服務器。

# ~/.siegerc 

logfile   = $(HOME)/siege.log 
verbose   = true 
csv    = true 
logging   = true 
protocol  = HTTP/1.1 
chunked   = true 
cache   = false 
accept-encoding = gzip 
benchmark  = true 
concurrent  = 60000 
connection  = close 
delay   = 1 
internet  = false 
show-logfile = true 
time   = 1M 
zero-data-ok = false 

如果您沒有生成負載的基礎結構,請將其租用。一個非常好的服務是Blitz.IO(我不隸屬於他們)。他們有一個簡單直觀的界面和(最重要的)他們可以爲您生成幾乎任何流量。

+0

看起來不錯,我會給它一個鏡頭。服務器的哪一部分首先會在這種負載下發出?它會用完tcp套接字還是隻是CPU/RAM負載等問題?我期望構建一個可以無限處理這種類型負載的系統。我正在考慮使用nginx中的一臺機器來完成負載均衡。這可能嗎? –

+0

您耗盡的第一件事是TCP套接字。 nginx(正確配置)具有非常低的CPU和RAM佔用空間。 Node.js會隨着代碼量的增加而增加,從而吞噬你的CPU(以及隨後的RAM)。其他語言可能會爲您提供更多的性能(例如編譯的PHP,PHP \ w OP緩存,C/C++)。無限期地不可能,否則你會有一個系統,你可以很容易地出售給亞馬遜,Facebook和谷歌。 Nginx作爲負載均衡器根本沒有問題。 – Fleshgrinder

+0

如果nginx需要篩選傳入的請求以將它們轉移到其他10臺服務器,那麼如果它被用作負載平衡器,是不是也會遇到TCP套接字的問題,或者我錯過了什麼?感謝您的回覆 –

相關問題