何回かに分けて 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個作成
- ファイル作成 (with/OPEN)
- データ書き込み 128KB
- ファイルクローズ
- ファイルオープン
- ファイルのランダム書き込み 16KB
- ファイルクローズ
- ファイルのオープン (Random)
- ファイル全体の読み込み 128KB
- ファイルのクローズ
- ファイルの削除
- ファイルの存在チェック
これらの一連の処理を並列スレッドで繰り返し行い、実行できたステップ数をカウン
トするというものです。
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名位のユーザで利用しても、快適に
お使いいただけるレベルではないかと思います。
さて次回は、最近特に話題のアクセスログについて取り上げたいと思います。
それではまた。