2013-10-03 4 views
5

2つの警告:このパフォーマンスは中毒性があります。すべてのビットを絞る、あなたはもっとしたい。 英語は私の第二言語なので、間違いがあれば教えてください。Nginx Fastcgi_cacheのパフォーマンス - ディスクキャッシュのVS tmpfsキャッシュされたVSスタティックファイル

とにかく私はさまざまなシナリオでのワードプレスのウェブサイトのnginxのパフォーマンスを比較していると何か変わったようです。だから私はここにあなたと共有し、おそらく私の期待を調整するために来ています。

Software                    
#  NGINX 1.4.2-1~dotdeb.1               
#  PHP5-CGI 5.4.20-1~dotdeb.1              
#  PHP-FPM 5.4.20-1~dotdeb.1              
#  MYSQL Server 5.5.31+dfsg-0+wheezy1            
#  MYSQL Tuner 1.2.0-1                
#  APC opcode 3.1.13-1 

これはEC2スモールインスタンスです。 すべてのテストは、2分間のSIEGE 40同時リクエストを使用して実行されました。 すべてのテストはlocalhost> localhostから行われました。

シナリオ1 - TMPFSにfastcgi_cacheを経由して、キャッシュされたURL(MEMORY)
SIEGE -c 40 -b -t120s 'http://www.joaodedeus.com.br/quero-visitar/abadiania-go'

Transactions:     1403 hits 
Availability:     100.00 % 
Elapsed time:     119.46 secs 
Data transferred:    14.80 MB 
Response time:     3.36 secs 
Transaction rate:    11.74 trans/sec 
Throughput:      0.12 MB/sec 
Concurrency:     39.42 
Successful transactions:  1403 
Failed transactions:    0 
Longest transaction:   4.43 
Shortest transaction:   1.38 

シナリオ2 - 同じURLディスクにfastcgi_cacheを経由して、キャッシュされました(ストレージoninstance EC2 - エフェメラル)ここで、Fiの

Transactions:     1407 hits 
Availability:     100.00 % 
Elapsed time:     119.13 secs 
Data transferred:    14.84 MB 
Response time:     3.33 secs 
Transaction rate:    11.81 trans/sec 
Throughput:      0.12 MB/sec 
Concurrency:     39.34 
Successful transactions:  1407 
Failed transactions:    0 
Longest transaction:   4.40 
Shortest transaction:   0.88 

ここであり最初の質問が出てきます。ディスクへのラムの大きな違いはわかりません。それは普通ですか?つまり、RAMキャッシュの使用に大きなメリットはありません。

シナリオ3 - 同じページ、nginxの

Transactions:     1799 hits 
Availability:     100.00 % 
Elapsed time:     120.00 secs 
Data transferred:    25.33 MB 
Response time:     2.65 secs 
Transaction rate:    14.99 trans/sec 
Throughput:      0.21 MB/sec 
Concurrency:     39.66 
Successful transactions:  1799 
Failed transactions:    0 
Longest transaction:   5.21 
Shortest transaction:   1.30 

で.htmlを、サーバとして保存は、ここでの主な質問です。これは大きな違いです。つまり、キャッシュから提供されているAFAIKは、静的な.htmlファイルを提供するほど速くなるはずです。つまり、nginxは場所のキャッシュルールがあると見て、キャッシュされたバージョンがあると見て、それを提供します。なぜそんなに違いがあるの?

キャッシュは細かい

35449 - 
    10835 HIT 
    1156 MISS 
    1074 BYPASS 
    100 EXPIRED 

敬具を進めています。ここで

答えて

7

はnginxのメーリングリストでの調査の要約(the thread hereを参照)、次のとおりです。すべての

まず、報告された数字は非常に低いです。彼らははるかに大きくなり、オリジナルの質問に答える(「なぜ違いがある」)のは本当に意味をなさない。正しい質問は "なぜそんなに遅い"だろう。 ec2の小さなインスタンスでもうまくいくはずです。

調査中、ホストはCPUに縛られていました.gzipフィルタとページスピードモジュールはほとんどのCPUが空いていました。

基本的な推奨事項は以下のとおりです。静的ファイルの

  1. 使用gzip_static。これにより、事前圧縮されたバージョンを提供し、実行時にCPUを節約できます。
  2. 高いgzip圧縮レベル(gzip_comp_level)を使用しないでください。圧縮率が高いと、デフォルト(1)よりも多くのCPUが必要になりますが、サイズの差は小さくなります。
  3. ページスピードをオフにして、役立つかどうか確認してください。

gzip off; pagespeed off;で30倍のスピードアップが報告されました。

+0

マキシムはnginxメーリングリストでこれを整理する手助けをしました。私のgzippingを飛ばすことは、すべてのCPUを食べていたことが分かります。彼はgzip_staticを使って私に正しい方向を指摘しました。それはあなたが余分なCPUを持っていない限り、多くのシムユーザーは、高いgzipのcompレベルを使用しないでください。貯蓄はそれに値するものではありません。 gzipをpre-gzipして静的に使用すると、タイムスタンプのファイルに注意を払う必要があります.gzipではなく、同じタイムスタンプを持つ必要があります。これが最善の方法です。 – ddutra

+1

@ddutraこれらのアドバイスに従うと、テストの結果はどうなりましたか?彼らは重要な結果を思いついたか? – Zhianc

+0

@ddutra任意の情報が私を助けます –

関連する問題