CentOS FS-Cache のパフォーマンスを試す

こんにちは。
グローバルソリューション事業部の後野です。

NFSを使う際のパフォーマンスが悪いので、今回は以前から気になっていたFS-Cacheを試してみます。

今まで、FS-Cacheはローカルディスクでキャッシュするので、FS-Cacheを使うとパフォーマンスは必ず向上するだろうと思っていましたが、Red Hat のFS-Cache マニュアルを見るとそうでもないような記載がある…!

FS-Cache では パフォーマンの向上は保証していません。

でも

ネットワークの帯域幅を使用せずローカルに読み取り要求に対応することでネットワークおよびサーバー側の負荷を大幅に低減させることができます。

とも記載されており、NWやサーバ側の負荷を下げられるのであればやっぱり良さそうと思いました。

キャッシュバックエンドを使用することによりパフォーマンスの低下が起こります。

これがどのくらいなのかを試していきます。

fscache1

 

 

 

 

 

最近、CentOS7がHOTですが、今回はあえて CentOS6.5 で検証していきます。

NFSサーバ設定

NFSパッケージをインストールします。

nfs サービス自動起動有効

 

公開用ディレクトリ作成

 

NFS公開情報を設定

サービス起動

 

NFS クライアント設定

NFSパッケージインストール

データ用ディレクトリ作成

サービス起動

ファイルシステムが user_xattr に対応していることを確認します

パフォーマンス確認

  • NFSサーバ上に 250MByte,400MByte,650MByte のファイルを保存
  • OS上でキャッシュしきれないようにした状態で、各ファイルに対して md5 を実行
  • その際の 処理時間を測定
  • md5 は 5秒置きに5回試行

 

FS-Cache 無しでの結果

計測結果

NFSサーバパフォーマンス

NFSクライアントパフォーマンス

所感

毎回NFSにデータを取りに行っている事がわかります。
詳細は FS-Cache の結果を見てからにしましょう

FS-Cache での結果

計測結果

NFSサーバパフォーマンス

NFSクライアントパフォーマンス

 

所感

初回のみNFSへアクセスし以降はローカルディスクからデータを取得していることがわかります。
処理時間が、FS-Cache 未使用時と比べて大きくなっています。
RedHatのマニュアルにあるように、FS-Cacheでお手軽にパフォーマンス向上とは以下内容でした。

またクライアント側に直接ファイルを置いても FS-Cache 未使用時より処理時間は大体12秒と長くなりました。これは、NFSサーバ側がキャッシュしていたため、サーバのメモリキャッシュ+NW通信のほうが、ローカルディスクの読み込みよりも早かった様です。

検証内容としては、中途半端な感も有りますが、安易に導入するのは良くないことがわかりました。
NFSサーバやNWに負荷がかかった際に、検討するような扱いになるのでしょうか。

Share on LinkedIn
LINEで送る
Pocket

claraer

claraer