2016-11-15 3 views
1

私はpgbouncerを私のDjango Webアプリケーションで使用しています。アプリケーションサーバーとデータベースサーバーは2つの別々のVMです。 pgbouncerがアプリケーションサーバーにインストールされています。 pgbouncer.iniの該当設定は次のとおりです。djangoプロジェクトのpgbouncerログエントリを説明しています

[databases] 
dbname = host=80.211.128.113 port=5432 dbname=dbname 

pool_mode = transaction 
max_client_conn = 250 
default_pool_size = 100 

pgbouncerが引き継いだ後は、私はpgbouncer.logをチェックし、次のようにエントリの多くが見つかりました:密接に分析されている場合

2016-11-15 12:26:27.514 582 LOG S-0x1192740: dbname/[email protected]:5432 new connection to server 
2016-11-15 12:26:27.517 582 LOG C-0x11afcb8: dbname/[email protected]:42262 login attempt: db=dbname user=myuser 
2016-11-15 12:26:27.523 582 LOG S-0x1192a10: dbname/[email protected]1.128.113:5432 new connection to server 
2016-11-15 12:26:27.528 582 LOG C-0x11af880: dbname/[email protected]:42250 closing because: client close request (age=0) 
2016-11-15 12:26:27.528 582 LOG S-0x1191a98: dbname/[email protected]:5432 closing because: unclean server (age=0) 
2016-11-15 12:26:27.548 582 LOG C-0x11afb50: dbname/[email protected]:42258 closing because: client close request (age=0) 
2016-11-15 12:26:27.556 582 LOG C-0x11aff88: dbname/[email protected]:42256 closing because: client close request (age=0) 
2016-11-15 12:26:27.556 582 LOG S-0x1191c00: dbname/[email protected]:5432 closing because: unclean server (age=0) 
2016-11-15 12:26:27.564 582 LOG C-0x11aff88: dbname/[email protected]:42264 login attempt: db=dbname user=myuser 
2016-11-15 12:26:27.569 582 LOG C-0x11afb50: dbname/[email protected]:42265 login attempt: db=dbname user=myuser 
2016-11-15 12:26:27.570 582 LOG S-0x1191c00: dbname/[email protected]:5432 new connection to server 
2016-11-15 12:26:27.593 582 LOG C-0x11af448: dbname/[email protected]:42255 closing because: client close request (age=0) 
2016-11-15 12:26:27.593 582 LOG C-0x11afcb8: dbname/[email protected]:42262 closing because: client close request (age=0) 
2016-11-15 12:26:27.593 582 LOG S-0x1191c00: dbname/[email protected]:5432 closing because: unclean server (age=0) 
2016-11-15 12:26:27.597 582 LOG C-0x11afb50: dbname/[email protected]:42265 closing because: client close request (age=0) 
2016-11-15 12:26:27.603 582 LOG C-0x11afb50: dbname/[email protected]:42267 login attempt: db=dbname user=myuser 
2016-11-15 12:26:27.604 582 LOG C-0x11afcb8: dbname/[email protected]:42268 login attempt: db=dbname user=myuser 

closing because: unclean serverclosing because: client close requestの多くのインスタンスが中に発見されましたログファイル。誰がこれが何であるか説明できますか?おそらく、私は何か間違っていると思います。表面上、私のアプリケーションはこれまで正しく動作しているようです。しかし、ログファイルに何が表示されているのかを理解する必要があるため、何が何であるかを確認することができます。前もって感謝します。

答えて

0
  • LOG C - このヘッダを持つログは pgbouncer(ないPostgreSQLサーバ)に接続しているクライアントに関連しています。
  • LOG S - 約 pgbouncerとサーバー間の通信( posgresサーバーへの実際の接続)です。
  • age=0 - 使用時間を示します。はage=0です。 は、クライアントが接続を1秒未満で使用したことを示します。

答え

決算理由:クライアントがクローズ要求

は完全に正常な、何も心配することはありません。そのクライアントは、クライアントがpgbouncerにライブ接続していないことをログに記録します。

通常のログがのようなものです:

ライン1 pgbouncerに接続するための最初の試み - pgbouncerする接続の試みを。

2行目 - pgbouncerがpostgresqlサーバーへの接続を試みています。

3行目 - クライアントのリクエストが完了すると、クライアント・pgbouncer接続が

2016-11-15 12:26:27.517 582 LOG C-0x11afcb8: dbname/[email protected]:42262 login attempt: db=dbname user=myuser 
2016-11-15 12:26:27.523 582 LOG S-0x1192a10: dbname/[email protected]:5432 new connection to server 
2016-11-15 12:26:27.528 582 LOG C-0x11af880: dbname/[email protected]:42250 closing because: client close request (age=0) 

1行目閉じている - 新しいクライアントによってpgbouncerする接続の試みを。クライアントの要求が完了すると、クライアント・pgbouncer接続が

2016-11-15 12:26:27.569 582 LOG C-0x11afb50: dbname/[email protected]:42265 login attempt: db=dbname user=myuser 
2016-11-15 12:26:27.593 582 LOG C-0x11af448: dbname/[email protected]:42255 closing because: client close request (age=0) 
を閉じている

1行目& 2 - それは

2行目(最後のクライアントのために開かれた)は、すでにPostgreSQLサーバへの接続をオープンし、再使用します -

ライン4(すでに1を開いた最初のものは再利用されます)2番目のクライアントのために、PostgreSQLサーバへの第二の接続の試行を行うpgbouncer -

3行目をpgbouncerへの接続を試みる2の同時クライアント& 5 - クライアントの要求が完了しているとクライアントpgbouncer接続が

2016-11-15 12:26:27.564 582 LOG C-0x11aff88: dbname/[email protected]:42264 login attempt: db=dbname user=myuser 
2016-11-15 12:26:27.569 582 LOG C-0x11afb50: dbname/[email protected]:42265 login attempt: db=dbname user=myuser 
2016-11-15 12:26:27.570 582 LOG S-0x1191c00: dbname/[email protected]:5432 new connection to server 
2016-11-15 12:26:27.593 582 LOG C-0x11af448: dbname/[email protected]:42255 closing because: client close request (age=0) 
2016-11-15 12:26:27.593 582 LOG C-0x11afcb8: dbname/[email protected]:42262 closing because: client close request (age=0) 
を閉じている決算ため

:それはそうと

は、問題になる可能性が汚れたサーバーpgbouncerがなっているようにし、それに接続するすべての新しいクライアント(pgbouncer)とともに、postgresサーバへの新しい接続を閉じます。

可能な解決策/way-outは、どのようにしてDjango works by defaultと関係があるかもしれません。通常のプーリングpgbouncerと同様に

は、(クライアント接続を閉じる時)のpostgresサーバへのそれの接続を閉じてはいけません - 接続がそうではない、server_lifetimeまたはserver_idle_timeoutアイドル時に達する可能性がするときは、メッセージ/ログこのサーバー接続が近いかもしれません。


+0

返信ありがとうございました。私のログエントリの95%以上が ''クライアントクローズ要求 ''のために 'age = 0'を持っています。それは普通だと思いますか? –

+0

Yh、pgbouncerログは、この行でいっぱいになります。上で述べたように、ログイン試行(pgbouncerに接続しているクライアント)ごとに実行されます。 –

関連する問題