Windowsで遊んでいても仕方がないので、サーバー機のHDDを持ってきて動かしてみました。メーカー製PCと違ってばら売りのマザーボードは最近の機種でもパラレルATAが付いてるみたいで、HDDを物理的に持ってきて繋ぐだけで使えるようになりました。
SMPカーネルを作成し、いつものオプションを指定してffmpegでエンコードした結果。
旧サーバ
Pentium4-2.8GHz1分38秒 新サーバ
PentiumDC-1.8GHz1分17秒
新サーバでは -threads 2 オプションをつけています。う~む、確かに速くはなっていますが、、、コストパフォーマンスが良くないですな(笑)。これでは解決になっていないということで、ffmpeg他のコンパイルオプションをちょっと見直してみました。
新サーバ
ffmpeg再コンパイル1分08秒
ん~、当初と比較すると70%の時間。まぁこんなもんですかね~? でもいろいろ遊んでいて面白いことに気づきました。
ffmpeg を2つ同時に実行させてもかかる時間は 1分10秒あれ?? -threads オプションは付けているものの、使われているコアは1つだけだったのですな(笑)。エンコードに時間がかかって問題になるのは「翌朝でかける前に終了してないかもしれない」ということなので、複数のファイルを平行してエンコードするようにしてしまえば良さそうです。自動実行スクリプトに少し手を入れる必要がありますが、元々同時エンコードも可能な仕様にしていたはずなので少しの改造で済むはず。うまくいけば実質半分の時間でエンコードできます。
ちなみに今回の最大のオチはネットワークインタフェイス。オンボードでギガビットイーサの口があるのですが、ここに差し込んでもランプが付きません。てゆーかFreeBSDの起動時に何のメッセージも無いし ifconfig でもなにも出てきません。あれま、非対応ですか。FreeBSDってNICのデバイス対応はかなり充実しているので油断しておりました。コンピュータはソフトウェアが無ければたたの箱と言いますが、FreeBSDはネットワークインタフェイスが無ければただの箱と化しますな。物置きをあさってると今は無きDECのPCI NICが出てきたので、これを差し込んで事なきを得ました。最近はオンボードなのが当たり前で、NICなんて使わないから一瞬どうしようかと思いましたよ(^_^)。
# PCを変えなくても再コンパイルすればよかったのでは、とかハイパースレッディングを