Sambaパラメーターとパフォーマンス
Sambaパラメーターとパフォーマンス
Sambaには350近いパラメーターがあります。その役割や意味はオンラインのドキュメントや書籍などを参照すれば、知ることができます。しかし、パラメーターがどの程度パフォーマンスに影響するのか、Windowsとの関連ではどのような動作となるのか、パラメーター同士の組み合わせ方、あるいは正確な利用方法について、不明な部分もあるでしょう。
本連載では「Sambaサーバーのチューニング」と題して、Sambaのパラメーターについて、あらためて確認していきます。現在のSambaではパフォーマンス面でも熟成されてきており、パラメーターによるパフォーマンスチューニングの余地はそれほどありませんが、知らずに不適切なパラメーターを設定していると、思わぬパフォーマンス劣化につながる恐れがあります。
第1回は、パフォーマンスを測定するベンチマークツールを紹介し、パフォーマンスに影響があると考えられる代表的な2種のパラメーターについて、ベンチマークツールを利用して、パフォーマンスを計測しながら解説していきます。
利用するベンチマークツールの紹介
紹介するベンチマークツールの1つ目「smbtorture」は、Sambaのソースに付属するツールです。
Sambaサーバー自身でlocalhost向けに実施するsmbtortureでは、物理ネットワーク環境に依存しないSambaサーバーの生のスループットを計測することができます。このためネットワークボトルネックが発生しにくく、CPU、メモリー、ディスクなどSambaサーバーの物理的パフォーマンス測定にも利用できます。
smbtortureはSambaのソースを展開し、sourceディレクトリで、[configure]と[make all]を実行した後に、同じ場所で[make smbtorture]を実行することによりsamba-3.0.32(展開したソースディレクトリ)/source/bin以下に配置されます。
今回はdbench-2.1に含まれるNBENCH用のclient_oplock.txtをsmbtortureと同じbinディレクトリに配置し実行します。今回は[-N20]オプションでクライアント20台分のNBENCHを図1のように実行しました。
ベンチマークツールの2つ目は「HDBENCH」です。やや古いツールですが、利用方法が簡単であり、Windows上で動作するため、WindowsOS特有のネットワーク処理を含めたスループットをすぐに測定することができます。ネットワーク処理とサーバー本体の処理を合わせて計測したい場合に利用します。測定するSambaの共有フォルダをネットワークドライブとしてマウントし、利用しています。
なお、smbtortureでもネットワーク経由での計測が可能ですが、今回はWindowsクライアントのTCP/IPスタックの影響も考慮した値も計測するため、HDBENCHを利用しました。
今回の検証環境は以下の通りです。まず、Sambaサーバーの検証環境です。
CPU:Xeon Quad Core 2.1GHz
Memory:2GB
HDD:SATA 160
OS:CentOS 5.2 x86_64
Samba:3.0.28-1.el5_2.1
Sambaサーバーと通信するWindowsクライアントの検証環境は以下の通りです。
CPU:Core2 Duo 1.2Ghz
Memory:3GB
OS:Windows XP SP3