TOP設計・移行・活用> atimeの更新を止める
今すぐできるPostgreSQLチューニング
今すぐできるPostgreSQLチューニング

第6回:ファイルシステムで、もう一歩の性能アップ
著者:日本PostgreSQLユーザ会  片岡 裕生   2005/8/31
前のページ  1  2   3  次のページ
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以上の性能向上が達成できました。

前のページ  1  2   3  次のページ


日本PostgreSQLユーザ会 片岡 裕生
著者プロフィール
日本PostgreSQLユーザ会  片岡 裕生
1995年よりインターウィズという屋号で個人事業を営む。普段はPostgreSQLを用いたウェブアプリケーション開発などを行う。各コンピュータ情報誌にてPostgreSQL関連記事や連載を執筆。日本PostgreSQLユーザ会の創立メンバーの1人で、同会の技術担当理事、PostgreSQLのしくみ分科会座長を経て、2004年度からは理事長を勤める。


INDEX
第6回:ファイルシステムで、もう一歩の性能アップ
  今回のチューニング
atimeの更新を止める
  総まとめ