槻ノ木隆のPC実験室

ファンレスマザーボード「EPIA-E533」活用記
~ファイルサーバー兼ルーターを構築/Linux編 補遺



●IDE BusmasterとSambaについて補遺

 前回の記事を掲載後、いくつかのご指摘を読者の方々から戴いた。IDE Busmasterが動作しない件だが、簡単にまとめると

・RedHat 7.2のままでも、カーネルを2.4.9-31に上げると解決する。
・RedHat 7.3ではこの問題は発生しない。
・デフォルトのままだと、FTP/HTTPと比較してSambaのパフォーマンスが上がらない可能性がある。ただしこれは簡単にチューニング可能である。

といったところで、ほかにも

・FreeBSD Release 4.5は未対応だが、開発中の 4.6-PRERELEASE 最新版では対応コードが入っている模様(なので試してくれ)

 というメールも戴いた。さすがにFreeBSDは今回の話から外れる(というか、そこまでやってしまったら人柱の方の興味を奪ってしまう)し、RedHat 7.3も完全にOS入れなおしになるので今回は勘弁させていただくとして、最初の2つについて追試を行なった結果をご紹介したい。(編集部注:FreeBSDについては4.5Rで問題なく動作しているというレポートを読者からいただきました)。


●Sambaのチューニングは必要か?

 ここでSambaのチューニングと言っているのは、http://www.samba.gr.jp/doc/contrib/tuning.htmlで示されている内容である。簡単に言ってしまえば、デフォルト状態のSambaのパラメータがWindowsのNBT(NetBIOS Over TCP/IP)に最適化されていないので遅くなるという話である。そこでこれをチューニングすれば、高速になる「かもしれない」(上記ページでも、「必ず高速化される」とは言っていない)わけで、ちょっとチャレンジしてみる価値があるだろう。

 ただしその前に、現状確認である。まずFTPでの転送速度だが、Windows XP標準のFTPコマンドを使って、700MBのファイルのUpload/Downloadを行なった結果 (写真1)

Upload :約2,096KB/sec
Download:約2,150KB/sec

という惨憺たる結果。次にHTTPだが、ApacheサーバーからIriaを使って同じダウンロードした結果は約1,427KB/secという、更に壊滅的な結果(写真2)。これはもうHTTPがどうの、Sambaがこうのという以前の話で、とにかくHDDアクセスが遅すぎるとしか思えない。ちなみにクライアントマシンの環境がちょっと変わったのでHDBenchを取り直した結果(写真3)をみると、Read 1.8MB/Sec、Write 1.9MB/Sec出ており、Sambaは遅いというよりむしろ健闘したといって差し支えなく、この時点でチューニングをしたからといって、性能が改善される可能性は低そうだ。

【写真1】Iriaだとアップロードができないので、素直にWindows XP標準のftpコマンドを利用した 【写真2】ちょっとクライアントのPC2を英語版Windows XPに入れなおしてしまった関係でメニューが化けている。ご容赦いただきたい 【写真3】前回より微妙に数字が落ちてるが、まぁこれは誤差の範囲。別にSambaだけが飛びぬけて遅いわけではないことは確認できた


●2.4.9-31カーネルへのアップデート

 RedHat 7.2の場合、製品出荷後のアップデートは、http://www.jp.redhat.com/support/errata/rh72/ にまとめられている。このうち、カーネルのアップデートが行なわれているのは、2002年2月27日付けの「2.4カーネルのアップデート」である。そこでここから当該モジュール(今回の場合、i386なのか、i586なのか、i686なのかの判断がハッキリしないので、とりあえずi586用パッケージを突っ込んだのだが、どうも後で見てみるとi686用だったらしい。ただ実際のCPUがVIA C3ということを考えると、i386用でもよさそうな気も……)

 とにかく入手してrpmコマンドを実行すると、エラーメッセージが出て怒られてしまう(写真4)。modutilsパッケージとtuxパッケージが古いようだ。ということで、まずは「kernel2.4のアップデート(kernel-2.4.9-21/modutils-2.4.10-1/tux-2.2.0-1)」からtuxの2.2.0-1と、「New modutils packages available(modutils-2.4.13-0.7.1)」からmodutils 2.4.13-0.7.1を入手、それぞれをインストールした。その後に、もう一度Kernel 2.4.9-31をインストールすると、今度は問題なくインストール完了である(写真5)。その後再起動すると、ちゃんと2.4.9-31カーネルで問題なくブートした。

【写真4】つれないエラーメッセージ。ただこれで、modutilsとtnxという2つのモジュールの更新が必要と判るから十分ではある 【写真5】3つのパッケージをRedHatのサポートサイトからダウンロードし、/tmpに置いておき一気にアップデートをかける。ダウンロードの時間を除くと、大体作業は10分程度である

 さて更新したところで、再びhdparmコマンドを掛けると、11.64MB/secだ(写真6)。大幅に向上した……と言って良いか、ちょっと判断に苦しむところ。少なくとも20MB/sec台、本来なら30MB/secオーバーの性能が出ないとおかしいだけに、この結果はちょっと納得いかないところがある。

 ただこのあたりに詳しい人の話では、RedHatのIDEドライバ周りはかなり頻繁に変わっているので、古いバージョンだとあまり性能が出なくても不思議ではないとの事。RedHat 7.3では25MB/secを越えたという報告もあるので、このバージョンであれこれ苦しむより、RedHat 7.3なり他のディストリビューション(Vine Linuxで30MB/sec越えした、という話もいただいた)に乗り換えるといった対策の方が賢明そうだ。

 ちなみにこの状態で、ふたたびクライアントからのアクセス速度も測定してみた(写真7)。まずFTPでは

Upload :約9,163KB/sec
Download:約10,617KB/sec

と大幅に性能が改善。httpでのダウンロードも、約10MB/secとこちらもほぼHDDのスピードの限界まで出た。(写真8)

 では、気になるSambaの成績はというと、Read 6.79MB/Sec、Write 6.92MB/Secとなった(写真9)カーネル入れ替え前に比べれば3倍以上のスピードだが、Windows XPの8MB/secに及ばないのはちょっと不満が残るところ。そこでSambaのチューニングを行なってみることにした。

【写真6】確かにUltraDMAは有効になったのだが、たったの10MB/sec?? 【写真7】圧倒的なスピード。ちなみに、Eden533上での操作も圧倒的に快適になった
【写真8】なぜかIriaが急に不調になってしまったので、IEを使ってダウンロードしてみた。ピークで10.2MB/sec、アベレージでほぼ10MB/secに達している 【写真9】数字はともかく体感速度で8MB/secと6MB/secは、それほど大きな差はない。結構これでも使い物になるとはいえる



●Sambaのチューニングは不発

 さてSambaのチューニングにあたっては、まず現状でのMSS(Maximum Segment Size)を知る必要がある。上記のページでは、tcpdumpを使ってこれをサンプリングする、という話だったので、さっそく

tcpdump -i eth1 > /tmp/a.log

とかを仕掛けて、転送を仕掛けた結果、MSSは1,460Byteと判明した(リスト1)。そこで、SO_SNDBUF=2920(MSSの2倍)というパラメータを記述したIncludeファイルを追加してSambaを再起動し、再びHDBenchをとった結果は、Read 6.88MB/Sec、Write 6.85MB/Sec(写真10)とチューニング前と大差のない結果となった。微妙に高速化しているとは言えるが、誤差の範囲とも言えなくもない。

【写真10】sambaチューニング後のベンチマーク結果
 まぁ、こんなもんであろう。そもそもこのチューニングは、「NTなどと比べて極端に遅い場合」には有効だが、現状それほど遅いとはいえない状態だからだ。このあたり、OSをRedHat 7.3などに入れ替えれば更に高速化される可能性は残っているが、そのあたりは読者の皆さんにお任せしたい。とりあえずRedHat 7.2をお使いの方は、カーネルを2.4.9-31に上げましょう、というのが本記事としての結論になる。長々とお付き合い、ありがとうございました。ご教示をいただいた読者に感謝します。

【リスト1】ログの一部
19:13:48.128820 192.168.20.2.1083 > 192.168.20.1.netbios-ssn: P 2312369754:2312369852(98) ack 3161250821 win 63943NBT Packet (DF)
19:13:48.128820 192.168.20.1.netbios-ssn > 192.168.20.2.1083: P 1:108(107) ack 98 win 5840NBT Packet (DF)
19:13:48.128820 192.168.20.2.1083 > 192.168.20.1.netbios-ssn: P 98:174(76) ack 108 win 63836NBT Packet (DF)
19:13:48.128820 192.168.20.1.netbios-ssn > 192.168.20.2.1083: P 108:147(39) ack 174 win 5840NBT Packet (DF)
19:13:48.128820 192.168.20.2.1083 > 192.168.20.1.netbios-ssn: P 174:219(45) ack 147 win 63797NBT Packet (DF)
19:13:48.128820 192.168.20.1.netbios-ssn > 192.168.20.2.1083: P 147:186(39) ack 219 win 5840NBT Packet (DF)
19:13:48.128820 192.168.20.2.1083 > 192.168.20.1.netbios-ssn: P 219:317(98) ack 186 win 63758NBT Packet (DF)
19:13:48.128820 192.168.20.1.netbios-ssn > 192.168.20.2.1083: P 186:293(107) ack 317 win 5840NBT Packet (DF)
19:13:48.128820 192.168.20.2.1083 > 192.168.20.1.netbios-ssn: P 317:380(63) ack 293 win 63651NBT Packet (DF)
19:13:48.128820 192.168.20.1.netbios-ssn > 192.168.20.2.1083: . 293:1753(1460) ack 380 win 5840NBT Packet (DF)
19:13:48.128820 192.168.20.1.netbios-ssn > 192.168.20.2.1083: . 1753:3213(1460) ack 380 win 5840NBT Packet (DF)
19:13:48.128820 192.168.20.2.1083 > 192.168.20.1.netbios-ssn: . ack 3213 win 64240 (DF)
19:13:48.128820 192.168.20.1.netbios-ssn > 192.168.20.2.1083: P 3213:4452(1239) ack 380 win 5840NBT Packet (DF)
19:13:48.318820 192.168.20.2.1083 > 192.168.20.1.netbios-ssn: . ack 4452 win 63001 (DF)


□VIAのホームページ(英文)
http://www.via.com.tw/
□製品情報(英文)
http://www.viavpsd.com/products/epia_mini_itx_spec.jsp
□関連記事
【5月2日】ファンレスマザーボード「EPIA-E533」活用記
~DVD再生で静音デスクトップPCとしての実力を見る
http://pc.watch.impress.co.jp/docs/2002/0502/eden.htm
【5月9日】ファンレスマザーボード「EPIA-E533」活用記
~ファイルサーバー兼ルーターを構築/Windows編
http://pc.watch.impress.co.jp/docs/2002/0509/eden2.htm
【5月10日】ファンレスマザーボード「EPIA-E533」活用記
~ファイルサーバー兼ルーターを構築/Linux編
http://pc.watch.impress.co.jp/docs/2002/0510/eden3.htm

バックナンバー

(2002年5月13日)

[Reported by 槻ノ木隆]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp
個別にご回答することはいたしかねます。

Copyright (c) 2002 impress corporation All rights reserved.