4

これは以下の私のnginxステータスです:

Active connections: 6119
server accepts handled requests
 418584709 418584709 455575794 
Reading: 439 Writing: 104 Waiting: 5576

Waiting の値が Reading や Writing よりもはるかに高いのですが、これは正常ですか?

「キープアライブ」が開いているためですか?

ただ、サーバーに大量のリクエストを送ってもReadingとWritingの価値が上がらないので、nginxなどのボトルネックがあるに違いないと思います。

4

2 に答える 2

2

Waiting時刻は です。Active - (Reading + Writing)つまり、接続がまだ開かれており、新しい要求またはキープアライブの有効期限が切れるのを待っています。

キープアライブのデフォルト (75 秒) を変更できます。

keepalive_timeout 20s;

または、ブラウザに送信されるヘッダーにオプションの 2 番目のタイムアウトを追加して、いつ接続を閉じる必要があるかをブラウザに伝えます。

keepalive_timeout 20s 20s;

しかし、このキープアライブに関する nginx ページでは、一部のブラウザーがヘッダーを気にしないことがわかります (とにかく、このオプションのパラメーターのおかげで、サイトはあまり得られません)。

キープアライブは、ほとんどの場合、ユーザーがサイトなどをナビゲートするため、接続を作成するオーバーヘッドを削減する方法です... (さらに、単一のページからcssjavascript画像などをダウンロードするための複数の要求...)

サイトにもよりますが、キープアライブを減らすことができますが、接続の確立にはコストがかかることに注意してください。これは、サイトの統計に応じて調整する必要があるトレードオフです。また、タイムアウトを少しずつ減らして (75 秒 -> 50 秒、1 週間後に 30 秒...)、サーバーの動作を確認することもできます。

于 2013-02-06T05:22:50.127 に答える
0

「待機」はキープアライブ接続を意味するため、実際には修正したくありません。ほとんどリソースを消費しません (ソケット + nginx の 10000 接続あたり約 2.5M のメモリ)。

リクエストは短命ですか?読み取り/書き込みを行ってから、短時間で終了する可能性があります。

それを修正することに本当に興味がある場合は、nginx がボトルネックになっているかどうかをテストして、nginx 構成で keep-alive を 0 に設定できます。

keepalive_timeout 0;
于 2013-02-06T04:27:15.130 に答える