2009.02.12 Thursday 01:33
FreeNAS+VistaでSambaチューニング
前回に続きFreeNAS de sambaチューニングしなくても50MB/s前後のスループットが出てるって2ch情報もあったけど
ウチでは2~3MB/sだったorz
まずは切り分け。NICはIntel 1000/MTでL2/L3共にエラーなし
念のためケーブルはCat6からCat7に変更。でも効果なし
スイッチは良い噂のないバッファローからポートミラーが組めるAllied-Telesisに交換
それでも解決せず、結局FreeNASのカーネルパラメーター(sysctl)というオチ
FreeNASのバージョンはチューニング時点で0.69RC2、今は0.69stable
まず最初にやること
システム→高度な設定からチューニングにチェックを入れる
これで一度試すべし
まずスループットに大きな影響を及ぼすのはTCP受信バッファ(RWIN)と遅延ACK
sysctl.confでnet.inet.tcp.recvspaceが64KB以上に大きくなっていることと
net.inet.tcp.delayed_ackが0(disable)になっていると、それなりに出るはず
我が家ではこれでもスループットが上がらなかったので、わざわざ
インテリジェントスイッチ買ってきてミラーポートを設定、キャプチャしてみた
そしたらデータ送信後、200msの無通信時間が。。。
smb.confのsocket optionsにTCP_NODELAYが記述されててもだめ
当時0.69RC2での事象やけど、遅延ACKが無効にならないバグがあるみたい
sysctlで直打ちしても解消しないのでdelayed_ackの待ち時間を変更してみた
net.inet.tcp.delacktime=1
単位はmsね。これで6MB/s前後まで改善。またキャプチャデータを見ていて
Window scaling factorが利いていないっぽい。ベースになるFreeBSDは
ver5ぐらいからrfc1323拡張はデフォルトONらしいけど念のため
net.inet.tcp.rfc1323=1
あとはTCP受信バッファ(RWIN)の変更
net.inet.tcp.recvspace=([MTU]-20-20-12)*[セグメント数]
MTUから引いているバイト数は、IPヘッダー/TCPヘッダー/rfc1323拡張ヘッダー
どちらかというと差し引いた値をキリのいい数字(4Kとか8Kとか)にして
MTUを増やすのがsambaからみると幸せ。セグメント数はfactorの縛りがあるので
2の乗数でよろ
これでひとまず12~13MB/sは出るようになった。GiB環境本来のポテンシャルが
出せてないので不満はあるけどひとまず運用中
参考にしたページは英文だけどNick Johnsonさんのblog
Catholicかどうか聞いてくる怪しいサイトになってた
Yesでちゃんとページが表示されたけど少し不安や
Comments [0]