[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[pbsd-mg2] Re: *BSD



> ushioda です。
	:
> Free の BSD 系の OS と言うと NetBSD/OpenBSD/FreeBSD と有ると思うのですが
> performance ってどう違うのでしょうか?

ファイルシステムの perfomance に関しては、現在 FreeBSD が確実に優れて
いると思います。これは、メモリ全てを file cache に利用することができる
(unified VM and buffer cache) のおかげです。FreeBSD は、2.0.5 あたり
から、この機能を含んでいます。

NetBSD の場合、unified VM and buffer cache は現在開発中であり、まだ
-current にも入っていません。(cvs branch にはあります。)
実装方針はかなり違って、FreeBSD の場合、
	buffer cache が、VM の vnode object cache のメモリを借りてくる
という方針になっているのに対し、NetBSD の場合、
	file system が、VM のプリミティブを使ってファイルアクセスする
となっています。

Linux は、どうも FreeBSD に近い実装方針を取っているようです。NetBSD の
やり方は、SunOS4 や SVR4 に似た方法です。FreeBSD のやり方の場合、read
access の場合は vnode object cache に載るので全メモリが利用できるので
すが、write access の場合は buffer header で cache の量が制限されます。
もっとも、FreeBSD で、この辺の実装を行っていた John Dyson によると、
write access の cache は制限されていた方が、むしろ性能は良いんだと書い
ています。現在の NetBSD の実装でも、FreeBSD より速くなったという試験的
な報告はあるんですが、なにぶん まだまだ開発中なので、最終的にどうなる
かは分かりません。

OpenBSD では、たぶん NetBSD-current に unifiec buffer cache ブランチ
がマージされた後に、それを取り込むつもりなんじゃないでしょうか。

> と言うのも、手元に置いて見ている IP filtering の box を数ヶ月前に 
> FreeBSD 2.2.8からOpenBSD 2.4 に置き換えました。置き換えた後、何とな
> く filtering box の内部セグメントから外部へのアクセスの体感速度が落
> ちたような気がします。(IP filter の version が異なっていたかもしれ
> ませんが)
	:
> また、自分がオフィスで使っている(置いてあるだけとも言う)DeskTop も
> やはり数ヶ月前にFreeBSD-3.x から NetBSD 1.3.3 に置き換えたところ HDD 
> 周りのアクセスと Network 周りが著しく遅くなったような気がします。
> (Adaptec-2940UW、Dell の onboard 3Com card)(ping 打った後の反応や 
> tcpdump したときに packet を拾ってくるのが遅い(詰まっている?)様な
> 感じがします)

HDD のアクセスについては、上で書いた file cache が原因ではないかと思い
ます。

ネットワーク回りの性能に関しては、buffer cache ほど、本質的な違いは
ないと思ってます (が、知らないことがあるかも)。また、このあたりは機能
毎、またデバイスドライバ毎に評価しないと、なんとも言えないかもしれません。

> 週末にこのマシンを NetBSD 1.3.3 -> 1.4 に変えたところ Network card 
> は認識しなくなり

むむむ。これは、バグレポートした方が良いかも…

> HDD のアクセス及びコンパイルが非常に遅い(kernel 作るのにものすごい
> 時間が掛かる)様に成ってしまいました。

これは、コンパイラが egcs になったせいではないでしょうか?
同じ -O2 でも、だいぶコンパイルが遅いようです。
(その分、最適化はしているのでしょうが…)

> NetBSD 1.3.3 で使っていて HDD が一台お亡くなりに成ったという問題にも
> 直面しました。

これは、たぶん、単なるハードウェアトラブルじゃないかと思います。

> 鈴木(康)です。
	:
> OS の File 系にはなしをしぼると、性能に関して特徴づけるのは、
> FileSystem (のインプリメント)とか VM だと思いますから、
> 各BSD 間の違いはさほどないのではないでしょうか。
> 違うとすると、VM のパラメータ(チューニング) かなぁ。

上に書いた file cache に関する話以外も、FreeBSD/i386 では page
coloring 処理等も既に行われているんですね。NetBSD では、まだです。
(Linux もまだよ。:-))

> # そういえば、NetBSD は、vm じゃなく uvm 使っていますね。
> # uvm って何ものなんでしょう? > 経緯とか知っているかた

Mach → 4.4BSD の VM を評価し直して、改造したものです。
問題のあったデータ構造を変更したこと、page clustring がちゃんと動く
ようになったことなどで、メモリが足りない状況では、かなり画期的に
速くなりました。(メモリをいじめる人為的ベンチマークでは、20 倍速くなっ
たってこともありました。)

FreeBSD では、UVM とは別の方針で、少しずつ問題を直してきたので、
UVM で直った問題は、ほとんど既に直っているのではないかと思います。
また、チューニングという点では、まだ FreeBSD の方が優れているん
じゃないかと思います。

UVM に関する論文は http://www.ccrc.wustl.edu/pub/chuck/ にあります。

NetBSD で、ファイルシステムの性能を出そうと思ったら、NBUF を増やして
みるというのが、まず必要だと思います。あと、デフォールトの NMBCLUSTERS 
は、サーバー用途には全然少ないので、こちらも options NMBCLUSTERS=2000
とか 5000 くらいに増やしてやった方が良いです。
--
soda