2013-11-03 11 views
5

私はnginx + node.jsのセットアップがどれくらい進んでいるか見たいと思っています。追加のパフォーマンスを絞り出すためにどのような変更を加えることができますか?a great article OSに多くの要求に耐えることができるチューニングについて詳しく説明しています。膨大な量の同時リクエストをWebサーバーにシミュレートする方法は?

私はそれがどのようにして1秒間に60,000リクエストを処理するのかを見たいと思う。

私はapachebenchとbeeswithmachinegunsを試しました。 apachebenchは約3500のリクエストや何かにローカルに制限されているようです。並行性を高めることは、何らかの形で平均req/sを減少させるためだけに役立ちます。 私はbeeswithmachinegunsでテストページに~5000リクエスト/秒を見ることができましたが、それはまだ私が望むものに近いところです。しかし、それはバギー側に少しあるようだ。

このような膨大なリクエストをシミュレートする信頼できる方法はありますか?

答えて

5

siegeでも試してみることができます。

あなたがリンクしている記事がよろしいですか。

60,000 rq/sを生成して同時に回答することは、リソースが不足しているため問題になります。要求を生​​成し、サーバーがそれらの応答のみを処理できるようにするために、他のコンピュータ(おそらく同じネットワーク上にある)を置くことが最善の方法です。

ここでは、サーバーに1分間ぶつかる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で1台のマシンを使用することを考えていました。これは可能ですか? –

+0

最初にあなたが使い果たしたのはTCPソケットです。 nginx(適切に設定されている)はCPUとRAMの占有スペースが非常に小さくなっています。 Node.jsが増えてコードベースが増え、CPU(および後でRAM)が消費されます。他の言語では、ここでパフォーマンスを向上させることができます(PHP、PHP、OP C、C/C++など)。無期限にはできません。そうしないと、Amazon、Facebook、Googleに簡単に売ることができるシステムになります。ロードバランサとしてのNginxはまったく問題ありません。 – Fleshgrinder

+0

もしnginxが、例えば10台の他のサーバにそれをポーンさせるために入ってくるリクエストを見分けなければならない場合は、ロードバランサとして使用されている場合にTCPソケットで問題にならないのですか?応答ありがとう –

関連する問題