負荷テストの続き 今日は8個同時バッチエンコードを試す

Intel Core i7 920の負荷テスト。TMPGEncを使ってもCPU使用率100%にできなかったんだけど、バッチエンコードには複数エンコードリクエストを非同期に処理する設定がある。こいつは論理CPUの個数を上限として設定できるので、8を指定してやらせてみる。何本かはVHSビデオから取り込んだものなので、ノイズ除去フィルタを指定している。さー、これをポチっと押したらどーなってしまうのか! 実行!

うおおお、CPU使用率が97%までUPした! なるほど、こいつを酷使するにはこーゆー使い方をすればいいのか。

WOW64上で動かしてこれだからなー。TMPGEncは早く64bit版を出してほしいものです。

あと、メモリ6GB積んでるけど、今のところこれもフル活用されているとはいえないしな。あれだ、バックテストを再開して、DMBSをMySQLからSQL Serverに変えればいいのかも。キャッシュはメモリの空き状況みて動的に割り当てられるみたいだし。となると、データベースファイルを置く為にSSDも欲しい。SSDにデータベースファイル置いたら相当早くなるはずだ。32GB程度でもデータベースファイル置くだけなら十分すぎる大きさだろうしね。


えーと、8個を走らせている間にこっちも軽く走って戻ってきた。約2時間経過して3本は終了。2本が今にも終わりそうになっているけど、CPU使用率はまだ、ほぼ100%に張り付いたままだ。8本が1pass目をやっている間は97%とかだったんだけど、2pass目に1本入ったところで100%に張り付いた。今は表示は100%だけど、グラフを見ると時々ギザギザになっている。この辺を見れば同時実行させて意味のある本数がわかるはずだ。

4本目が終了(4本が稼働中)。97%〜88%とかになってきた。5本目が終了(3本が稼働中)。75%〜85%で推移。まあ、あれだ、若干余力を残した3本同時実行が、ほかの作業もやるときは便利かも。これぐらいCPUに負荷をかければCUDAを有効にしてフィルタ処理させれば、かなりの部分をGPUがやって負担を軽減してくれそうな予感。残念ながらその割合を確認する直接的な手段はないけど;; あー、2本ほバッチエンコードさせておいて、もう1本をTMPGEnc本体でやればCUDAの使用率がわかるか。あとでやってみよう。

6本目が終了(2本が稼働中)。51%〜60%で推移。この2本はまだ1pass目なので、2pass目になったら、またCPU使用率がUPしてくると思う。

よし、2本のエンコードが稼働している間にもう一本を追加。今度はTMPGEnc本体でエンコードさせる。ノイズフィルタを指定して2passGO! そうしたら、1pass目からCUDAがある程度使われている。CPU67%、CUDA33%。ほかの二本がどんな比率で使われているのかは不明だけど、エンコードをパラレルでやれば、Core i7もCUDAも活きてくる。今後こーゆー使い方をしよう。

ちょっと外出して戻ってきたら一通り終わっていた。はじめからおわりまでのターンアラウンドタイム(一番処理に時間がかかったヤツの処理時間。短いのは1時間50分で処理が終わっていた)は4時間37分33秒。出力した動画の総時間数は5時間。と、考えると数珠繋ぎに同期処理するよりも、無理をしてでも非同期処理した方が効率がいい。単品で処理したとき、2passエンコードでは30分の動画を36〜38分で処理できた。大体二割増しになることを考えると、同期処理していたら360分かかったところを、278分で済んだので、22%ばかりお得ということになった。非同期実行に突っ込む本数を最適にしてやれば、もっと効率が上がりそうだ。