2007年8月1日水曜日

sambaで待たされる(異常に遅い)現象について

samba(smbd)で、たとえばWindows機でアクセスし、右クリックしたときや、deleteキーを押したとき、
異常に遅い(待たされる)現象が起きた。

http://www.tac.tsukuba.ac.jp/~yamato/samba/14500/msg00443.html

たしかにmessagesにもiptablesがDROPしたログが残っている。
ということで、一度は無効化した設定を再度復活。


trusthost='192.168.168.0/24'
myhost='192.168.168.69'
any='0.0.0.0/0'
#################
#www ANY-> myhost
#################
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -p tcp -m state --state NEW,ESTABLISHED,RELATED -s $trusthost -d $myhost --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -s $myhost --sport 80 -d $trusthost -j ACCEPT


80番を解放すればいいのね。

追記
sambaのチューニング(速度アップ)は
http://www.dd.iij4u.or.jp/~okuyamak/Documents/tuning.japanese.html
を参照すること。
手順は
tcpdumpでログ取り
#tcpdump > logfile
WIN機からsambaにアクセスし、共有フォルダに何かぶち込む(10MB程度のファイル)
tcpdumpをCTRL+cで止める
less logfile |grep mss
で、出てきた数値の2倍をsmb.confに書き込む
例:
06:57:43.422363 IP 192.168.1.14.ftp > 192.168.1.5.4834: S 3692312227:3692312227(0) ack 831951649 win 5840 <mss 1460,nop,nop,sackOK>

mssの1460の2倍(この場合2920)をyyyyにSO_SNDBUF=として書き込む
socket options = TCP_NODELAY SO_SNDBUF=yyyy
samba3.0だとSO_SNDBUF=は入っていたはずなので、修正になるのかな。

上記プラス、smb.conf の [global] 部の最後に以下を書く(いまいち意味が分かってない・・・)
include = /etc/samba/smb.conf.global.%a
include = /etc/samba/smb.conf.global.%M
include = /etc/samba/smb.conf.global.%a.%M

以上で130%位速くなる。(15mbpsだったのが20mbps位になる=winサーバと同等になる)

0 件のコメント:

コメントを投稿