お知らせ

FOBAS CSC でベンチマークをやってみる

何回かに分けて FOBAS CSC Ver.3 の特徴のご紹介して行くシリーズの第7回目です。
これくらい続くと、ようやく3日坊主と言われるリスクが減ってきました。(^^;

今回は、以前少し予告しましたが、FOBAS CSC が実際どの程度性能が出るのか
試してみようという企画です。

性能の確認と言えばベンチマークプログラムですね。世の中には Disk の I/O 性能を
測定するベンチマークは数多く存在ますが、ここでは filebench を利用してみました。

Filebench は、単にシンプルなシーケンシャル I/O やランダム I/O の性能を計測する
マイクロベンチマークとは異なり、実際の利用を想定したワークロードモデルを作成し
その全体スループットを測定する事ができる非常に柔軟なベンチマークプログラムです。

とはいえ、いろいろな環境で共通のワークロードで比較する事が重要ですので、製品に
標準的に含まれている fileserver ワークロードを利用してテストしてみました。

実際の構築手順を含めてご紹介します。

1) filebench のインストール

事前準備として、ビルドに必要なパッケージをインストールします。
以下の例は CentOS での例です。FOBAS CSC 内部で動かす場合にはインストール
済みのため不要です。

# yum -y install gcc make
http://sourceforge.net/projects/filebench/ から最新のソースコードを
ダウンロードします。本記事記載時の最新バージョンは、1.4.9.1 でした。

# wget http://sourceforge.net/projects/filebench/files/latest/download \
-O filebench-1.4.9.1.tar.gz
ダウンロードしたアーカイブを展開して、コンパイル、インストールします。

# tar xvfz filebench-1.4.9.1.tar.gz
# cd filebench-1.4.9.1
# ./configure
# make
# make install

2) filebench の実行

filebench コマンドを実行すると、filebench 専用のプロンプトが起動します。

# filebench
Filebench Version 1.4.9.1
IMPORTANT: Virtual address space randomization is enabled on this machine!
It is highly recommended to disable randomization to provide stable Filebench runs.
Echo 0 to /proc/sys/kernel/randomize_va_space file to disable the randomization.
17034: 0.000: Allocated 170MB of shared memory
filebench>

プロンプトに対して、実行したいワークロードを指定します。ここでは fileserver
ワークロードを使用します。

filebench> load fileserver
17034: 122.255: File-server Version 3.0 personality successfully loaded
17034: 122.255: Usage: set $dir=<dir>
17034: 122.255: set $meanfilesize=<size> defaults to 131072
17034: 122.255: set $nfiles=<value> defaults to 10000
17034: 122.255: set $nthreads=<value> defaults to 50
17034: 122.255: set $meanappendsize=<value> defaults to 16384
17034: 122.255: set $iosize=<size> defaults to 1048576
17034: 122.255: set $meandirwidth=<size> defaults to 20
17034: 122.255: run runtime (e.g. run 60)
filebench>

表示される Usage に従って、ベンチマーク用のプロパティを指定します。
今回は、テストを行うディレクトリ、スレッド数を変更してあとは初期値を利用しま
した

filebench> set $dir=/cscfs3/default/users/cscadm
filebench> set $nthreads=100

いよいよ実行です。あまり時間が短いと誤差が大きくなり適正な計測ができなくなり
ますので、5分間実行してみました。

filebench> run 300

3) 今回使用した仮想マシン環境および FOBAS CSC バージョンおよび変更プロパティ

純粋にソフトウェアアプライアンスとしての性能を知るために、ハードウェアリソー
スがネックになっては元も子もありません。少し潤沢な(といってもエントリーの
IAサーバより低スペックですが・・・)リソースを使ってみました。

CPU : 2.4GHz 4VCPU (4core 1CPU 相当)
Memory : 4GB
HDD : 20GB SSD (Sequencial I/O 450MB/sec, Random 42,000 IOPS)

FOBAS CSC は Ver.3.1.3 を使用し、以下のプロパティをデフォルトから変更して
います。

USE_RECYCLE = FALSE

4) fileserver ワークロードの内容

ベンチマークに使われる fileserver ワークロードでは、どのような処理が行われて
いるのか簡単に調べてみました。ドキュメントによれば SPECsfs を模したものとの
記述がありますので、文字通りファイルサーバのワークロードをシミュレーションし
たもののようです。スクリプトを読み解くと以下のような処理をしています。

テスト前に 128KB のファイルを10,000個作成

  1. ファイル作成 (with/OPEN)
  2. データ書き込み 128KB
  3. ファイルクローズ
  4. ファイルオープン
  5. ファイルのランダム書き込み 16KB
  6. ファイルクローズ
  7. ファイルのオープン (Random)
  8. ファイル全体の読み込み 128KB
  9. ファイルのクローズ
  10. ファイルの削除
  11. ファイルの存在チェック

これらの一連の処理を並列スレッドで繰り返し行い、実行できたステップ数をカウン
トするというものです。

5) 結果

比較対象として ext4, ext3 そのままと、前回取り上げた s3fs をやってみました。
もちろん、s3fs をこういう用途で使うのはアンチパターンですので念のため。

ext4 6207.362 ops/sec
ext3 5428.292 ops/sec
CSCFS3 2844.107 ops/sec
s3fs 52.499 ops/sec

ext4 や ext3 をそのまま使う場合と比較すると、明らかにオーバヘッドがあります。
とはいえ、アンチウィルスのリアルタイムスキャン、アクセスログ取得、マルチノー
ドクラスタのレプリケーション機能が含まれてこの性能なので、まぁ良しとしていた
だけると嬉しいです。

s3fs をファイルサーバ的に使おうというのも、この値を見るとかなり無理があると
いうことがご理解いただけると思います。
今回は、FOBAS CSC が実際どれくらいの性能が出るのか試してみる企画でした。
2,500 ops/sec 以上が出ていますので、1,000名位のユーザで利用しても、快適に
お使いいただけるレベルではないかと思います。

さて次回は、最近特に話題のアクセスログについて取り上げたいと思います。
それではまた。


ページトップへ戻る