sql >> データベース >  >> RDS >> PostgreSQL

postgresで最大接続数を増やす方法は?

    max_connectionsを増やすだけです 悪い考えです。 shared_buffersを増やす必要があります およびkernel.shmmax 同様に。

    考慮事項

    max_connections データベースサーバーへの同時接続の最大数を決定します。デフォルトは通常100接続です。

    接続数を増やす前に、デプロイメントをスケールアップする必要がある場合があります。ただし、その前に、接続制限を増やす必要があるかどうかを検討する必要があります。

    各PostgreSQL接続は、接続またはそれを使用するクライアントを管理するためにRAMを消費します。接続数が多いほど、データベースの実行に使用できるRAMが多くなります。

    適切に作成されたアプリは、通常、多数の接続を必要としません。多数の接続を必要とするアプリがある場合は、接続をプールできるpg_bouncerなどのツールの使用を検討してください。各接続はRAMを消費するため、それらの使用を最小限に抑えることを検討する必要があります。

    最大接続数を増やす方法

    1。 max_connectionを増やします およびshared_buffers

    /var/lib/pgsql/{version_number}/data/postgresql.confにあります

    変更

    max_connections = 100
    shared_buffers = 24MB
    

    max_connections = 300
    shared_buffers = 80MB
    

    shared_buffers 構成パラメータは、メモリの量を決定します 専用 データのキャッシュに使用するPostgreSQLへ 。

    • 1 GB以上のRAMを搭載したシステムの場合、shared_buffersの適切な開始値は、システムのメモリの1/4です。
    • RAMの40%以上を使用して、少量(25%など)よりもうまく機能することはほとんどありません。
    • システムまたはPostgreSQLビルドが32ビットの場合、shared_buffersを2〜2.5GBより大きく設定するのは実用的でない可能性があることに注意してください。
    • Windowsでは、shared_buffersの大きな値はそれほど効果的ではなく、比較的低く保ち、代わりにOSキャッシュをより多く使用する方が良い結果が得られる場合があることに注意してください。 Windowsでは、有用な範囲は64MBから512MBです

    2。 kernel.shmmaxを変更する

    カーネルの最大セグメントサイズを少し大きく増やす必要があります shared_buffersより 。

    ファイル/etc/sysctl.conf 以下のようにパラメータを設定してください。 postgresqlのときに有効になります 再起動します(次の行により、カーネルが最大で96Mbになります )

    kernel.shmmax=100663296
    

    参考資料

    Postgresの最大接続数と共有バッファ

    PostgreSQLサーバーの調整



    1. HibernateのScrollableResultsを使用して9千万件のレコードをゆっくりと読み取る

    2. MariaDB SYSTEM_USER()の説明

    3. MySQLコピーデータベース

    4. SQL Serverデータベースの復元(T-SQL)