Linux にはファイルの配置場所を高速に検索する機能として locate コマンドがあります。この機能が使用しているファイル名データベースを更新するため、定期的に updatedb コマンドが実行されます。updatedb コマンドは各ファイルシステム上のファイルを検索し、ファイル名データベースを更新します。
参照
updatedb コマンドおよび locate コマンドの詳細は、オンラインマニュアルページの updatedb(8) および locate(1) を参照してください。
updatedb コマンドが GFS 共用ファイルシステムに対して、ファイルを検索している間、ファイルアクセス性能が顕著に劣化することがあります。この現象を回避するため、GFS 共用ファイルシステム上のファイルをファイル名データベースへ登録しないように設定することを推奨します。
注意
この設定をした場合、locate コマンドによって GFS 共用ファイルシステム上のファイルを検索することができなくなります。
GFS 共用ファイルシステム上のファイルをファイル名データベースへ登録しないようにするには、/etc/updatedb.conf で定義されている updatedb コマンドによる検索除外ファイルシステムリスト (PRUNEFS) に "sfcfs" を追加します。GFS 共用ファイルシステムを共用するすべてのノードで設定する必要があります。以下に指定例を示します。
# cat /etc/updatedb.conf <Enter> PRUNE_BIND_MOUNTS = "yes" PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc (中略) tmpfs ubifs udf usbfs sfcfs" PRUNENAMES = ".git .hg .svn" PRUNEPATHS = "/afs /media /mnt /net /sfs /tmp /udev /var/cache/ccache /var/lib/yum/yumdb /var/spool/cups /var/spool/squid /var/tmp" |
GFS 共用ファイルシステム上のファイルをファイル名データベースへ登録する場合は、次の設定を行うことで updatedb コマンドが動作中のファイルアクセス性能の劣化を軽減することができます。
ユーザー運用に合わせて、GFS 共用ファイルシステムへのアクセスが少ない時間帯で updatedb コマンドが実行されるようにします。
GFS 共用ファイルシステムの共用ノード間で、updatedb コマンドが同時に実行されないように、updatedb コマンドの実行時間を調整します。
updatedb コマンドは通常 mlocate-updatedb サービスから実行されるように設定されており、mlocate-updatedb サービスの実行時間は /usr/lib/systemd/system/mlocate-updatedb.timer で設定されています。必要に応じて mlocate-updatedb.timer の設定を変更してください。
mlocate-updatedb.timer の設定は、以下の手順で変更します。
/usr/lib/systemd/system/mlocate-updatedb.timer ユニットファイルを /etc/systemd/system ディレクトリにコピーします。
# cp /usr/lib/systemd/system/mlocate-updatedb.timer /etc/systemd/system/ <Enter> |
コピー先のユニットファイルを編集します。
# vi /etc/systemd/system/mlocate-updatedb.timer <Enter> |
コピー先のユニットファイルを systemd に反映します。
# systemctl daemon-reload <Enter> |
参照
mlocate-updatedb.timer の変更手順の詳細は、Red Hat 社のマニュアル“基本的なシステム設定の構成”の“systemd ユニットファイルでの作業”を参照してください。
mlocate-updatedb.timer の記述内容の詳細は、オンラインマニュアルページの systemd.timer(5) を参照してください。