今回のチューニング
PostgreSQL本体の基本的なチューニングは前回までで終わりました。そこで今回は、データベースを格納するファイルシステムのチューニングを紹介したいと思います。足回りをもう一歩効率化することで、あと一歩の性能向上を目指します。
ファイルシステムのチューニング
ファイルシステムとは、ディスク上でファイルを管理している機構のことです。Linuxではext3とかReiserFS、XFS、WindowsではFATとかNTFSなどといわれているもののことです。
PostgreSQLの場合、データベースはファイルシステム上に通常のファイルとして格納されますので、ファイルシステムの性能がダイレクトに影 響してきます。ですから、ファイルシステム自体をチューニングできればPostgreSQLサーバの性能も向上できることになります。
なお今回は、Linuxで一般的に使われているext3ファイルシステムを題材に取りあげます。
ファイルが持っている情報
多くのファイルシステムの場合、「ファイル」にはファイル自身のデータのほかに、ファイルの所有者や作成日時など、多くの付加情報が付随しています。
例えばLinuxのext3ファイルシステムでは、次のような情報を持っています(主な付加情報のみピックアップします)。
- owner(所有者)
- group(グループ)
- permission(アクセス権)
- atime(アクセス時間)
- ctime(作成時間)
- mtime(修正時間)
あまり使われることのないatime
これらの付加情報には重要な項目が多いのですが、一部にはあまり使われていない情報も含まれています。
例えばatime(アクセス時間)です。一般のサーバ運用においては、ファイルのアクセス時間を利用することはあまりないと思います。まれに不正ア クセスの検出に使われることもありますが、少なくともデータベース管理システムにとっては使い道の少ない付加情報といえます。
この使い道の少ないatimeですが、何しろアクセス時間ですからファイルへアクセスされる度に毎回更新されています。この情報がユーザにとって必要とされていなくてもです。これはファイルシステムの性能上、かなりもったいない「無駄な」処理といえます。