どんなことでも

この人 blog を書くのだろうか?

TIME_WAIT の時間の変更方法

2005-11-16 21:41:24 | Unix
FreeBSD
???不明???
ab -n 100000 -c 300 http://localhost/ とかでベンチマークを取ってみたところ、「MaxClients 16」と「MaxClients 256」で、あまり大きな差はない。TIME_WAIT 辺りが律速になっているのかな? この間 TIME_WAIT の数は 1206 でほぼ変わらず。
sysctl -a vm.zone にある tcptw の FREE が 0 になる。こいつは何物?(まぁ、TCP_TIMEWAIT の数でしょう)
kernel の options MAXFILES=xxxxx を増やす(maxuser を増やすとこれも勝手に増える)と同時に open できる socket の数が増えるのでちょっとだけ何とかなるかも。
sys/netinet/tcp_input.c を眺めたところ TIME_WAIT = 2MSL らしいので「sysctl の net.inet.tcp.msl」の値をいじることで変更が可能と思われる。
Apache の設定を「MinSpare,MaxSpare,StartServers,MaxClients 32 / KeepAlive Off」で「ab -n 100000 -c 100 http://localhost/
sysctl net.inet.tcp.msl=30000 (デフォルト)とした場合
Request per second: 502.12 [#/sec] (mean)
Connection times Total:
 min 82 max 1830 mean 197 sd 82.0 median 166
sysctl net.inet.tcp.msl=5000 とした場合
Request per second: 493.37 [#/sec] (mean)
Connection times Total(ms):
 min 40 max 5692 mean 201 sd 193.1 median 162
max が伸びてしまいましたねぇ。min,max もですが、σ,2σ,3σの範囲も見たいです。
今は I/O が激しいので後で再テストした方がいいですね。

Linux
「/proc/sys/net/ipv4/tcp_fin_timeout」へTIME_WAIT値を設定

Solaris (ms単位: 1分)
ndd -set /dev/tcp tcp_time_wait_interval 60000

相手が応答しない場合、ESTBLISHEDになっていられる時間の設定。(default:120分)
ndd -set /dev/tcp tcp_keepalive_interval 120000
nsug FAQ

行けないなぁ

2005-11-06 08:11:02 | Unix
jus 第134回 「NIS からの脱却 ~ LDAP と Kerberos を用いたシステム構築」
う~ん、行きたいなぁ。奈良なんて遠くていけないけど(;_;)

元気が目立つ『BSD UNIX』系のオープンソース OS たち
FreeBSD は ブランチ(5.x とか 6.x)から年3回のリリース、OpenBSD は HEAD から年2回のリリースNetBSD は思いついたときにリリース(^^; というタイミングがたまたま重なっただけだと思う。
しかし、NetBSD 3.0 が出るらしいと言うのは私の読み間違いではなかったんですね。なんとなく分かるかも知れないが、英語のメールは嫌いです。



_FreeBSD 5.4-STABLE -> 6.0-RELEASE の手順_ freebsd-stable@freebsd な ML より

From: Chris <racerx _あっと_ makeworld.com>
To: Markus Buretorp <markus.buretorp _あっと_ home.se>
Cc: freebsd-stable _あっと_ freebsd.org
Message-ID: <436D14EC.1000705@makeworld.com>
Date: Sat, 05 Nov 2005 14:24:12 -0600
Subject: Re: 5.4 -> 6.0 buildworld failure

Assuming you have done your cvsup of the src tree:

# cd /usr/src/usr.sbin/mergemaster
# ./mergemaster.sh -p

Drop to Single User Mode:
As the superuser, you can execute:

# shutdown now

from a running system, which will drop it to single user mode.
Alternatively, reboot the system, and at the boot prompt,
enter the -s flag. The system will then boot single user.
At the shell prompt you should then run:

# fsck -p
# mount -u /
# mount -a -t ufs
# swapon -a

# cd /usr/obj
# chflags -R noschg *
# rm -rf *

# cd /usr/src

# make buildworld

# cd /usr/src
# make buildkernel KERNCONF=MYKERNEL
# make installkernel KERNCONF=MYKERNEL

# shutdown now

# fsck -p
# mount -u /
# mount -a -t ufs
# swapon -a

# cd /usr/src
# make installworld

# shutdown -r now

Done.


「5.4 の上で 6.0 の mergemaster を使って -p するのとってもじゅーよー。カーネルを先に作って、再起動後にユーザランドを作成」ということのようです。
5.4 の上で 6.0 のカーネルをカスタマイズするのは結構面倒だと思うので KERNCONF=MYKERNEL は要らないと思いますけどね。

sama に必要なプリンタドライバの一覧

2005-07-07 21:08:34 | Unix
samba でプリンタを共有するとき、Windows の共有プリンタを自動的にダウンロードするよう設定するには、
まず、Windows からドライバーを取ってくる必要があります。

普通は、プリンタのテストページを眺めてコピーしてくるのですが、数が多いと面倒だったりします。そこで、一発でリストを作成する方法を見付けました。(samba 添付の Samba-HOWTO-Collention.pdf に書いてありました)
プリンタドライバをインストールした Windows が必要なのは変わりありませんが、BAT ファイルを実行するだけでカレントディレクトリに必要なファイルがコピーされます。


FreeBSD% rpcclient -U'Administrator' -c 'getdriver "Canon LASER SHOT LBP-2050" 3' WinHOST | sed -ne 's/]$/ ./;s/.*print\$/copy C:\\WINNT\\system32\\spool\\DRIVERS\\/p' > LBP-2050.BAT

FreeBSD% rpcclient -U'Administrator' -c 'getdriver "EPSON LP-8600" 3' WinHOST | sed -ne 's/]$/ ./;s/.*print\$/copy C:\\WINNT\\system32\\spool\\DRIVERS\\/p' > LP-8600.BAT

「Administrator」 は、ユーザ名
「Canon LASER SHOT LBP-2050」は、Windows 上のプリンタ名
「WinHOST」は、Windows のマシン名です。
「C:\\WINNT\\system32\\spool\\DRIVERS\\」は、ドライバのあるディレクトリです。プリンタのテストページを見るなどして適宜修正してください。
LBP-2050.BAT にドライバをコピーするバッチファイルが出来上がります。
Win へ このバッチファイルを持って行き、コマンドプロンプトから実行すると、実行したディレクトリに必要なファイルが全てコピーされます。
う~ん、便利。20個とか30個とか手でコピーするの大変でしたから。(プリンタが2台なので更に倍!)