作成 2014.09.11
更新 2014.09.22
NFS の READDIRPLUS プロシージャを無効化する
トランスウェア社の Active!mail との組み合わせで、NFSサーバーの応答が非常に遅い現象に遭遇。
NFSv3 の READDIRPLUS を無効化することで解決。
問題の構成
まあ、非常によくある構成。
原因
Active!mail は複数人で同じアカウントを閲覧していたり、Active!mail以外にメーラーで閲覧したりしている場合に矛盾が生じないようにするため、 閲覧しているフォルダー配下すべてのメールに対して同期処理が再帰的に実行される(既定の仕様)。新着メールの確認も同様の処理が発生する。 そのため、Web Mail サーバー <-> IMAP サーバー間の問い合わせがフォルダーレベルで頻発する。
IMAP サーバーのストレージエリアを NFS マウントした環境では、ファイル一覧の取得操作をすると既定で READDIRPLUS プロシージャを使用してファイルのリストと各ファイルの属性情報をまとめて取得する。 本来であれば NFS のオーバーヘッドが減るため効率が良いはずだが、IMAP の利用方法に限って言えばファイルの属性情報は使用されないため無駄な処理である。
この結果、保持メール数の多い環境や同時利用ユーザー数の非常に多い環境では、NFS サーバーの処理性能にかかわらず応答がきわめて遅くなる。
なお、メールの同期処理はActive!mailの設定変更により緩和可能。ただし、複数人で同時参照していたり、他のメーラーと併用したりしている環境では不都合が多いためお勧めしない。
対策
NFS クライアント(図中ではIMAPサーバー)のマウントオプションに nordirplus を追加する。
/etc/fstab
nfs_sv:/vol/vol1  /home  nfs  rw,nfsvers=3,intr,nordirplus  0 0
参考
タグ: Linux

©2004-2017 UPKEN IPv4