nginxが何をしているかをどのように観察できますか?(解決するには:「1024 worker_connectionsでは不十分です」)


8

nginxで実行されている非常にトラフィックの少ないサイトで、4つのワーカーがあり、それぞれ1024の接続があります。

数時間ごとに「1024 worker_connectionsでは不十分」というエラーログが表示され、サイトの速度が低下したり、不安定になったりします。nginxの再起動により、次の数時間は問題が完全に解決されます。

明らかに奇妙なことが起こっています。アプリケーションの4k同時ユーザーにサービスを提供する方法はありません。

アクセスログ(正常に見える)を見る以外に、nginxが何をしているのかを詳細に観察する方法はありますか?

古い接続が開いたままになり、閉じられないという悪名高い設定の組み合わせはありますか?

ありがとう。

編集 このルックス権利はありません

# lsof |grep nginx |grep CLOSE_WAIT |wc -l
1271

プロキシパスを使用していますか?
Dan R

いいえ、プロキシ設定は使用していません。それは乗客のレールサイトです。
John Bachir、2010

1
nginx.org/en/docs/debugging_log.htmlを有効にして、どのリクエストが発生したかを確認してみてください。乗客・レールに詳しくない。これがWebクライアントに接続するポート上にある場合、クライアントは接続を閉じていますが、nginxはその側を閉じていません。
Dan R

回答:


7

プロキシパス/リバースプロキシなし

max_clients = worker_processes * worker_connections

リバースプロキシあり

max_clients = (worker_processes * worker_connections ) / (X * 2)

2はあなたがプロキシしているものへの接続を開くためです

ただし、Xは、これらのクライアントからの同時接続数が多い

どの接続がぶら下がっているのかを確認するには、を実行しlsof -i :PORTます。nginxに開いているすべての接続とその状態が表示されます。


それを試して…Ubuntuでlsof 4.81… "不正なオプション文字:I"
John Bachir

上記の編集のlsof出力を参照
John Bachir

1
-iを大文字にするという意味ではありませんでした
Dan R
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.