x264でエンコード中にFPSが低下する

動画をx264で変換中、後半になるとFPSが急激に下がる現象が発生したので原因を探りました。
結論から書くとCPUの温度が高温になったためでした。

以下、調べた内容をまとめて記録

タスクマネージャーの「パフォーマンス」タブのリソースモニターにて

  • CPU使用率は高い
  • メモリはまだ空きがある
  • ディスクI/Oは余裕がある

この段階で、ボトルネックになっているのがCPUだと推測

改めてリソースモニターのCPUの欄を見ると「最大周波数」の欄が「33%」になっている。
つまり、そもそもCPUの動作速度が引き下げられいる。
「じゃ、理由は?」ってことで以下の2つ考えた

  • 省エネモードが作動してCPUの動作速度を落としている
  • 熱によりCPUが破損するのを防ぐためCPUの動作速度を落としている

2つとも、存在する機能らしいってぐらいは知識としあるけれど実際しらないのと等しいので調べてみた。
(使用していたCPUはintel Core 2 Quad Q6600なのでintel CPUの内容となります。)

CPUの省エネ機能

  • C1Eステート
    CPUを休止状態にする機能。
    CPUは何もタスクを実行していない場合、消費電力を抑えた状態に移行し、CPUの動作クロックも一定の値まで下げられる
  • EIST(Enhanced Intel SpeedStep Technology)
    CPUの消費電力を抑える技術。
    CPUの使用状況にあわせて動作周波数と駆動電圧を落として消費電力を低減する。

CPUの熱からの保護機能

  • Thermal Monitor
    CPUを熱による破損から守る保護機能。
    TM1では異常時に周波数のみ、TM2では周波数と電圧を下げ、CPUの処理量を減らすことでCPUの発熱量を減らす。
    (サーマル・スロットリングと呼ばれることもあるようだが資料が見つからない・・・)

上記の事から今回の挙動がTM2の発動によると考え、CPU温度を見てみることに。
使用するソフトは「Core Temp」が無料で使用できる。
(standaloneとLanguage packをダウンロードした場合はCore Tempフォルダ内にLanguagesフォルダを作成し、言語ファイルを格納する)

見てみると95℃を超えておりたまに100℃に達している状况だった早急にPCケースのサイドパネルを外し、扇風機の風をCPUに対して、45°の角度で風を当てた。(垂直に当てるとCPUクーラーに負荷がかかると考えてこうしたけど、どうすれば一番いいのか知らないです。)
すると、温度が75℃付近になるとFPSも回復が見られたので、今回のFPSの原因はCPU温度で有ることが確認できた。

そもそも、CPUの適正温度ってどれくらいなのだろう
複数のサイトを見た感じ以下の温度が目安のようだ。

  • 40〜60℃:通常時
  • 60〜75℃:高負荷時

今回この現象が発生したPCのCPU Core 2 Quad Q6600はTM2は大体95℃ぐらいで働いた。
このあたりはもしかするとBIOSで設定できるのかも知れないが確認していない。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です