0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的備忘録:PostgreSQLのパフォーマンス改善に効くshared_buffersのチューニング方法について

Posted at

はじめに

PostgreSQLのパフォーマンスチューニングを行う際に、最も基本かつ重要な設定項目の一つが shared_buffers パラメータです。

個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。

この記事では、shared_buffers の役割や設定方法、注意点について解説します。

shared_buffers とは?

shared_buffers は、PostgreSQLがデータベースのデータをメモリ上に保持するために使う共有メモリ領域のサイズを設定するパラメータです。

この領域は、ディスクから読み込んだページのキャッシュや変更されたデータの一時的な保存に使用されます。

つまり、shared_buffers のサイズを適切に設定することで、ディスクI/Oを削減し、クエリのレスポンス速度を向上させることができます。

デフォルト値と推奨設定

  • デフォルト値:通常、インストール直後のPostgreSQLでは、shared_buffers の値はシステムメモリの128MBや256MB程度に設定されています。

参考文献

  • 推奨値
    • 小規模システム:物理メモリの25%程度
    • 中〜大規模システム:メモリの30%〜40%を目安に設定するケースもあります。

ただし、システム全体の使用状況(他アプリケーションやOSキャッシュとのバランス)も考慮する必要があります。

設定方法

postgresql.conf ファイルを編集するか、SQLで変更します。

方法1:postgresql.conf の編集

shared_buffers = 1GB

設定後、PostgreSQLの再起動が必要です。

方法2:SQLで確認・設定

-- 現在の値を確認
SHOW shared_buffers;

-- 動的変更はできないため、変更には設定ファイル編集と再起動が必要

注意点

  • 物理メモリとのバランスshared_buffers を大きくしすぎると、OSや他プロセスに使えるメモリが減少し、逆効果になる場合があります。
  • OSのキャッシュとのバランス:PostgreSQLでは、shared_buffers とは別に、OSのファイルキャッシュも利用されるため、両者のバランスを意識することが重要です。
  • 巨大な値にする意味は薄い:PostgreSQLは、shared_buffers 以外にも効果的なキャッシュ戦略を持っており、闇雲に値を増やしても性能向上につながらない場合があります。

まとめ

shared_buffers はPostgreSQLの基本的なメモリ設定のひとつであり、適切な設定によってパフォーマンス向上が期待できます。

環境ごとの最適値を見極め、OSや他プロセスとのバランスも考慮しながら、慎重にチューニングを行いましょう!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?