2005/11/27

今日の音楽:「ハリーのゲームのテーマ(Theme from Harry's Game)」 by CLANNAD

エンヤの姉のモイアがボーカルをやってるアイルランドのバンド「クラナド」の曲で、最近はLEXUSのCFでも流れている。エンヤの曲が最近どうも明るくポップなのばっかりで、今ひとつ物足りないという向きにはお勧め。問題は入手性が極めて悪いことでしょうかねぇ。

2005/11/19

すげぇ当社比40%のl高速化ですよ奥さん!

ことのおこり

Debian sargeのオフィシャルインストールDVDにはLinux version 2.6.8のAMD64版カーネルがこっそり(って何だよ)収録されている。それじゃちょいとカーネル突っ込んでhrootしてdebootstrapで64bit環境もどきを作ってみようかい、てなわけで/pure64というフォルダの下にtestingのAMD64を入れて、最小限のシステムを放り込んだ後vorbis-toolsとか入れてベンチマークを取ってみた。

ベンチマーク

とはいっても厳密なアレではなく、極々テケトーに一発勝負で計測。元ネタはPSY・Sの「Emotional Engine」から「be with YOU」を取り込んでFLAC --bestでエンコードしたFLACファイル。これをオプション指定無し(-q 3)でOgg/Vorbisに変換したときの「倍速」を計測した。実はsargeとtesting(つまりetch)の比較なんで、コンパイラからして違うから(sargeはgcc b3.3でetchは4.0)あまり意味が無いのは百も承知なわけだが、それはさておき。

計測結果
32bit環境11.7894
64bit環境16.6642

いくらマルチメディア系だから(x86_64なバイナリは-mfp=sse3を指定してビルドされているので、浮動小数演算が高速化されやすい)とはいえ、40%も高速化してやがりますではないですか。これは美味しいなぁ。早く64bitネイティブに移行したいもんだ。

2005/11/09

あれげメモ:Athlon64のPowerNow!の使い方

Debian SargeのカーネルでCPUFreqからPowerNow!を使うにはどうするんだか。と考えてあれこれ試行錯誤。

PowerNow!ドライバモジュールのロード

modprobe powernow-k8でおしまい。

ガバナーモジュールの追加

modprobeでガバナーモジュールを追加する。2.6.8だと以下のようなモジュールが使えるんだそうな(括弧内は対応するモジュール名)。

"performance" governer(cpufreq-performance)
最高性能を発揮するようにCPUの消費電力を調整する。つまり節電効果は期待できない。動作クロックはAthlon64 3000+の場合2000/1800/1000MHzの3種類だった。
"powersave" governer(cpufreq-powersave)
こちらは電気をケチるように消費電力を調整する。性能は期待できない。
"userspace"governer(cpufreq-userspace)
ユーザースペースアプリケーションで制御する。

手で弄る(sysfsで遊ぼう)

/sys/devices/system/cpu/cpu[0-9]+/cpufreqディレクトリ(マルチプロセッサ構成の場合は複数のディレクトリができる)にCPUの情報ファイルができるので、echoコマンド一発で動作クロックを変更したり、すでにロード済みのガバナーモジュールであれば好き勝手に切り替えることができる。

アプリで制御

emifreq-appletなるアプリケーションでGNOMEデスクトップ環境からガバナーモジュールを切り替えたり動作クロックを弄ったりできる。

今後の課題

ホントはもっと新しいカーネルで、ondemandガバナー(これはシステムの可動状況に応じて自動的にクロック周波数を変化させる)を使いたかったんだが。まぁいいや、カーネルバージョンアップに再チャレンジだ。

2005/11/05

ファイルサーバのパワーアップ

あまりの遅さに堪えかねてファイルサーバをパワーアップしてみた。現在はこんな感じのスペックになっている。

CPU
AMD Athlon64 3000+(Socket754)
メモリ
PC3200(DDR400) 512MB
マザーボード
MSI K8N Neo3-F(nForce4-4x)
HDD
  • Seagate U10(UltraATA100/5400rpm/10GB)
  • Samsung SpinPoint SP1604N(UltraATA100/7200rpm/160GB)
  • Samsung SpinPoint SP1614N(UltraATA100/7200rpm/160GB)
DVD-ROM
Pionner DVD-122P
VGA
#9 Revolution3D WRAM PCI 8MB(#9 T2R)
その他
  • Adaptec USB2Connect
  • Promise Ultra100TX2
OS
Debian GNU/Linux 3.1(sarge)

かなりいいかげんにありあわせのパーツで組んであるので、凄いことになっている。このマザーボード、AGP互換スロットとかいう代物が搭載されているのだが、手持ちのAGP 8xカード「ECS REX」を突っ込んだところ予想通り動かなかったので、こんなヴィンテージ物のビデオカードを使っている。HDDにはSATAのドングルをかましてSATA化しても良かったんだが、そんなにご大層なHDDでも無いのでUltra100TX2にぶら下げたままにしておく。

まずはディスクI/O性能の高速化に驚嘆

どうやらU10はUltraATA66でつなぐとまともな性能が出ないらしい。何しろ以前はhdparm -tの結果が8MB/sにも満たかったが、アップグレードしたら28MB/sなんてステキ数字を叩き出す。Ultra100TX2にぶら下がってるSamsung勢もCPU高速化の恩恵を受けて50MB/sオーバー。これは堪らん。RAID-0でアレイ組んだら楽しそうだな~とは思ったものの、考えてみたら50MB/sクラスの性能が出るディスクをストライピングしても、32bit/33MHz PCIバスが足を引っ張る気配が濃厚なのであっさり没。このカード、TigerMPXに挿せば66MHz動作するんだけどなぁ……。

GbE対応のあれこれ

NICドライバについて

メインマシンのNICは3Comの3C2000-Tで、Tiger MPXの64bit/66MHz PCIスロットに刺さっているため、楽勝でGbEに対応できる。今回買ったK8N Neo3-FにはオンボードのGbE NICが載っているのでこれまた楽勝だろう。マザーボードの箱には「Marvell 88E1111によるGbE」って書いてあるんだが、実際にはMarvell 88E1111はただのトランシーバで、コントローラはnForce4-4xの統合NICだった。……まったく紛らわしい書き方をしてくれる。問題はnVidiaのプロプラエタリドライバを使わないとLinuxでNICを使えんのではないかということだが、調べてみたらリバースエンジニアリングして作ったオープンソースのnForce用NICドライバ「forcedeth」で難なく動いている。

ネットワーク性能

CAT5eクロスケーブルでメインマシンとファイルサーバを接続して、ファイルサーバからメインマシンへのファイル転送速度を測ってみたところ、36MB/sという数字が叩き出せた。パワーアップ前は6MB/s出ないこともざらだったのでこれは嬉しい。

Jumbo Frame対応作業あれこれ

MTUがデフォルトの1500のままでこの性能では、ジャンボフレームに対応させたらどれくらい速くなるのか知りたいのが人情というものだ。で、ifconfig eth0 mtu 9000とかやったら、MTUのサイズが不正だと怒られてしまったorz。調べてみたらsargeのカーネル(2.6.8)のforcedethドライバではジャンボフレームには対応していないんだそうな。最新バージョンではOKらしいので、Athlon64の馬力に物を言わせてカーネルを2.6.14にアップデート。 しかしどうも過激にカーネルコンフィグを弄くりすぎたらしく、ideドライバがへそを曲げる。ついにはカーネルがブートしなくなってしまった(号泣)。再インストールだなぁ……orz。