日本Unix昔話

bkcon2004

2004/05/14

野首貴嗣

knok@daionet.gr.jp

UNIXシステムチューニング

邦題 System Performance Tuning

Mike Loukides著/砂原秀樹監訳

ISBN4-7561-0077-5

一時代を築いた名著

Appendix B
性能改善に関する戦略

B.8 一般的な情報 より

* dirsをpwdの代わりに使用する

* psの利用を避ける

* shを使う場合、長い検索パスは使用しない

* ディレクトリごとのファイル数を最小にする

* emacsよりもviや固有のウィンドウエディタを使用する

* grepやfgrepよりもegrepを使用する。この方が速い

* NFSを介してgrepまたは他の入出力集中型のアプリ

ケーションを実行しない

* リモートシステムにあるファイルにアクセスするには

NFSよりもrloginを使用する

あるoldtypeの悲劇

199X年、当時学生だったN氏(仮名)

図書館でこの本を発見

「dirsをpwdの代わりに使用する」に感動

実践する日々

$ type pwd

pws is a shell builtin

時は移り...

U氏(仮名)にこの話をする

U:「今時 pwd も内部コマンドでは?」

他の項目も検証してみよう！

psの利用を避ける

計ってみよう

$ time /bin/ps > /dev/null

/bin/ps > /dev/null 0.01s user 0.01s system 2580% cpu 0.001 total

Mobile Pentium III 900MHz

Linux 2.4.22

procps 3.2.0

これぐらいならいいよね?

果してそうか?

The oldtype hacker g氏曰く:

Linux の ps は /proc をなめる

/proc はジャイアントロックとる

重い状態で使うと厳しい

shを使う場合、
長い検索パスは使用しない

NetBSD 1.6.2 の /bin/sh をみてみる

find_command によってコマンドを捜す

hash table を捜している

多くの Linux distro では /bin/sh が bash

大抵は大丈夫だろう

ディレクトリごとのファイル数を最小にする

Linuxでは

最近の ext3, ReiserFS, jfs 等に directory index がある

mke2fs -O dir_index

UFS 系は?

ufs にはあるらしい

FreeBSD にはあるよう

NetBSD にはない?

emacsよりもviや固有の
ウィンドウエディタを使用する

一人で使うのならいいのでは

GNOME: gedit

-rwxr-xr-x 1 root root 435864 2003-11-05 05:09 gedit

$ ldd gedit|wc -l

55

KDE: kate

-rwxr-xr-x 1 root root 3584 2004-03-05 19:42 kate

-rw-r--r-- 1 root root 202528 2004-03-05 13:46 libktexteditor.so

$ ldd kate|wc -l

47

検証してみる

4回試行して1回目の結果のみ捨てて平均をとる

(e|f)?grep foobar *

grep: 4.57sec

egrep: 6.77sec

fgrep: 8.04sec

grep > egrep > fgrep

GNU grep 2.5.1

約8000ファイルを対象

他のgrep実装はみてません

http://katsu.watanabe.name/grep/

渡邊克宏さんによる考察

結局は用途次第

grepやfgrepよりもegrepを
使用する。この方が速い

残り

NFSを介してgrepまたは他の入出力集中型のアプリケーションを実行しない

100Mbps, スイッチングハブの普及

多人数が使う環境なら少しは考慮

リモートシステムにあるファイルにアクセスするにはNFSよりもrloginを使用する

同上

今時 rlogin はないだろう

ふつー ssh

結論

バッドノウハウを

覚えている間に

UNIXはどんどん発達

していく...

2004-05-04T10:37:19