今すぐできるPostgreSQLチューニング 5

atimeの更新を止める

atimeの更新を止める

   実は、ファイルシステムによるatimeの更新は止めさせることができます。Linuxのext3ファイルシステムであれば、マウント時にnoatimeオプションを与えることでそれが可能です。

   もしもデータベース用に独立したファイルシステムを使っているのであれば、そのファイルシステムのマウントオプションにnoatimeを追加しましょう。これにより無駄なatimeの更新がなくなるので、データベースサーバの性能を向上できます。

mountコマンドの例

   UNIX系OSにおいてファイルシステムを手動でマウントする場合には、下記のようなmountコマンドを用いていると思います。

mount /dev/sda1 /disk1

   これに対して、下記のようにnoatimeオプションを与えてマウントすると、atimeの更新を抑制できます。


mount -o noatime /dev/sda1 /disk1

 

fstabの例

   サーバマシンの起動時にファイルシステムを自動でマウントさせている場合には、マウントオプションは/etc/fstab(あるいは同等のファイル)に記述します。

   下記はfstabの例です(抜粋)。Linuxの場合、4番目のカラムにマウントオプションを記述します。

/dev/sda1    /disk1    ext3    noatime    1    2

 

テスト用サーバマシンをチューニング

   それでは、テスト用サーバマシンをチューニングしてみましょう。テスト用サーバマシンの仕様などは本連載の第1回の記事を参照してください。

   テスト用サーバマシンではデータベース用に2台のSCSIハードディスク(/dev/sda1、/dev/sdb1)を使用していますが、ともに データベース専用のファイルシステムとしていますので、両方にnoatimeオプションを指定することにします。指定後のfstabは次のようになってい ます(関連行のみ抜粋)。
 

/dev/sda1    /disk1    ext3    noatime    1    2
/dev/sdb1    /disk2    ext3    noatime    1    2

   そしてサーバマシンを再起動して、noatimeのオプション設定を有効にすれば準備OKです。

 

チューニングの結果

   それでは、データベースを格納するext3ファイルシステムにnoatimeオプションを指定した場合に、PostgreSQLの性能がどのように変わるのかを確認してみましょう。前回とまったく同じ条件でベンチマーク試験を行った結果が図1です。


前回のチューニング結果とファイルシステム調整後の比較
図1:前回のチューニング結果とファイルシステム調整後の比較
 

   負荷の高い場合に大きく性能が向上しています。このように、ファイルシステムの設定を変えるだけで10tps以上の性能向上が達成できました。

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る