私は Postgres データベースをホストする Linux サーバー (Ubuntu 18.04) を使用しています。PostgreSQL により CPU 使用率が最大 100% になり、関連する Web サイトがダウンすることがありますが、サーバーを再起動するとサイトが正常に動作するようになります。
クエリを実行します:
SELECT
(now() - pg_stat_activity.query_start) as interval, state
FROM pg_stat_activity
複雑なクエリを同時に実行し、サイト ナビゲーション要求に応答し、接続しているユーザーの数に応じて結果が異なります。
問題は、接続ユーザーの数が増加するとサイトがブロックされ、データベース サーバーを再起動すると正常に動作するようになることです。
この問題を解決する方法を教えてください。
サーバーのRAMは23GB以上です。
答え1
共有メモリだけでなく接続プールも増やす必要があると思います。このリンクをクリックすると、適切な場所にたどり着くはずです。
https://stackoverflow.com/questions/30778015/how-to-increase-the-max-connections-in-postgres
しかし、振り返ってみると、これらのロックアップを引き起こすためにユーザーは何をしているのでしょうか?