PR

Sambaパラメーターとパフォーマンス

2009年1月6日(火)
唐木 大介

パフォーマンスに影響するパラメーター「socket options」

 socket optionsパラメーターは、Sambaが送受信するソケットに関するパラメーターです。昔の推奨値は「TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192」でしたが、現在のSambaにこのまま適用しても問題はないのでしょうか。

 また、Windowsクライアントとの通信に依存したmssのサイズに合わせたチューニングを行うという情報もWeb上には存在しますので、こちらの値も検討します。

 今回は以下の4パターンで計測しました。

 ケース(1)は、以前の推奨値8192とした場合です。以下のようなパラメータ値になります。

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

 ケース(2)は、mssに依存した値(今回の環境CentOS+Windows XPではmss=1460でしたので、その6倍の8760としてあります)とした場合です。以下のようなパラメータ値になります。

socket options = TCP_NODELAY SO_RCVBUF=8760 SO_SNDBUF=8760

 ケース(3)は、socket optionsを空白に設定とした場合です。以下のようなパラメータ値になります。

socket options =

 ケース(4)は、smb.confにsocket optionsパラメーター自体を設定しない場合です。

socket optinosの正解は?

 計測の結果、ケース(4)のsocket optionsパラメーターを設定しない場合が一番高いスループットが出ました。このテストの場合、ローカルで実行するsmbtortureより、ネットワークを経由HDBENCHの結果が、実際の状態に近いものと思われ、指定値の大きさとTCP_NODELAYの有無できれいにケース(4)(3)(2)(1)の順番となっていました。

 ケース(4)の場合TCP_NODELAYだけを指定した状態となりますが、SO_RCVBUFとSO_SNDBUFは0に設定されているわけではなく、デフォルト値が適用されています。このデフォルト値はlog levelを100にして、log.smbdを参照すると以下の値でsmbdが起動していました。

SO_RCVBUF=87380
SO_SNDBUF=16384

 今回のケース(1)と(2)では手動で設定した値が、上記デフォルト値より小さな値を設定していたため、ネットワーク経由でのパフォーマンス劣化が発生していたものと推測されます。また、ケース(1)の8192は(2)の8760と数値としては、ほとんど違いが無いのですが、smbtortureでは内部スループットが大幅に劣化している点も興味深いです。

 ケース(3)の場合、SO_RCVBUFやSO_SNDBUFはデフォルトの値となりますが、TCP_NODELAYが無効となるため、smbtortureとHDBENCHともにスループットが下がりました。

 テストの結果から今回の環境では、smb.confは特に問題が無いかぎりは、socket optionsパラメーターは設定せず、デフォルトの状態(TCP_NODELAYのみ)にしておくのが良いようです。

 ケース(1)と(2)では、値に8192を指定した(1)の方が大幅に劣化していたため、Wiresharkで詳細に調査してみました。すると、SO_SNDBUF=8440以下ではパケットに「TCP Window Full」が大量発生し、linux kernel内部では10倍以上の頻度でmwait_idleやprepare_to_waitが呼ばれていました。

 この現象はCentOS 5.2に依存しており、ほかのOSでは発生しないものと思われますが、このパラメーターを利用する場合は実環境でテストを行ってください。

 次回はファイルサーバーとして利用する場合に重要なファイル属性、ユーザー属性関連のパラメーターについて解説します。

オープンソース・ソリューション・テクノロジ株式会社
ハードウエア保守、サーバーベンダーのサポート、WindowsネットワークならびにNotesDomino管理を経由し、2002年から某Linuxディストリビューターにて、OSの開発とサポート、コンサルティングを担当し、現在はそのときの上司の下でコンサルタントをしています。得意分野はLinuxとHAクラスタソフトウェア、特にハードウエアとOSの境目が好き!http://www.osstech.co.jp/

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています