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以上の性能向上が達成できました。