5

EBS によって完全にサポートされている AWS サーバーで nginx の正しいチューニングを見つけようとしています。基本的な問題は、約 100 MB の静的ファイルをダウンロードするときに、一貫して約 60K/秒のダウンロード速度が見られることです。scp を使用して AWS サーバーから同じファイルをコピーすると、約 1MB/秒のレートが表示されます。(そのため、ここで EBS が機能するかどうかはわかりません)。

最初は、基本的にすぐに使える構成(CentOS 6.x用)でnginxを実行していました。しかし、速度を上げようとして、さまざまなチューニング パラメータを試してみましたが、役に立ちませんでした。速度は基本的に同じままです。

現時点での私の構成からの関連フラグメントは次のとおりです。

location /download {
    root /var/www/yada/update;
    disable_symlinks off;
    autoindex  on;

    # Transfer tuning follows
    aio        on;
    directio   4m;
    output_buffers 1 128k;
}

当初、これらのチューニング設定は次のとおりでした。

sendfile       on;
tcp_nopush     on;
tcp_nodelay    on;

大量のトラフィックを最適化しようとしているわけではないことに注意してください。一度にダウンロードできるクライアントは 1 つだけである可能性があります。AWS サーバーは、617MB のメモリを備えた「マイクロ」インスタンスです。とにかく、scp が ~1MB/s でダウンロードできるという事実は、HTTP がそのスループットに匹敵するか、それを上回ることができるはずだと私に信じさせます。

どんな助けでも大歓迎です。

【追記】 追加情報です。ダウンロードの実行中に「top」コマンドを実行すると、次のようになります。

top - 07:37:33 up 11 days,  1:56,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  63 total,   1 running,  62 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

そして「iostat」は次を示します:

Linux 3.2.38-5.48.amzn1.x86_64      04/03/2013  _x86_64_    (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.02    0.00    0.03    0.03    0.02   99.89

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
xvdap1            0.23         2.66         8.59    2544324    8224920
4

3 に答える 3

3

sendfile をオンにすることを検討しましたか? Sendfileを使用すると、nginx はカーネルを直接使用して静的ファイルを送信できるため、他のどのオプションよりも高速になるはずです。

于 2013-05-28T08:24:14.683 に答える
2

デフォルトでは、scp は HTTP 接続よりもはるかに高速です。あなたに提案があります。静的ファイルを提供している場合は、クラウド フロントで S3 を使用することを好みます。それはそれをより速くします。ファイル転送がある場合、パフォーマンスを向上させるのは非常に困難です。

于 2013-04-03T09:28:30.503 に答える