web-dev-qa-db-ja.com

ホットプラグ後もCPUコアはオフラインのままです

UPSが「バッテリーオン」イベントをトリガーしたときに、電力を節約するためにすべてのコアをオフにします。 PCには2つのチップに8つのコアがあり、UPSバッテリーは電流のピークが大きいため、3か月ごとに交換する必要があります。私の所有コストを軽減するために、UPSがそのようなイベントを発生させたときに次の指示が実行されます。

for c in /sys/devices/system/cpu/cpu*/online; do
    echo 0 >$c
done

コア1から7は正常にオフラインに設定され、コア0は期待どおりに稼働したままです。次に、lscpuatopは、CPU 0のみがオンラインのままであることを確認し、さらなる指標として、CPU温度が90°Cから60°Cに低下することを確認します。

グリッド電力が戻ると、逆のコマンドが実行されます。

for c in /sys/devices/system/cpu/cpu*/online; do
    echo 1 >$c
done

しかし、コアはオンラインになりません。この時点で、 cat /sys/devices/system/cpu/cpu*/onlineプリント1 0から7までのすべてのCPUについて、lscpuはすべてのCPUがオンラインに戻ったことを報告しますが、すべてのスレッドは明らかにコア0で排他的に実行され続け、atopはまだ1つのコアのみをリストします。また、システム負荷は、通常の800%ではなく、約100%に制限されたままです。また、CPU温度は60°Cで安定しています。

異常なことに、topはプロセスごとのCPU使用率をパーセンテージで示していますが、これらの個々のパーセンテージの合計は約100%ですが、topによって報告される60秒の負荷平均は安定しています8。


属性:

  • Linux 4.1.1
  • Debian 8
  • アクティブに使用されているLXC
  • KVMモジュールがロードされましたが、アクティブに使用されていません
  • CPUには常に8つ以上の実行可能なスレッドがロードされています

更新:

カーネルを4.1.1から4.5.4に更新しました。テスト後、同じ欠陥がまだ存在しています。

3
davide

これは、cpusetcgroupに関するLXCの既知のバグが原因です。ここでは、いくつかの回避策について説明します: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=824519

2
davide