「カナリアスレッド」とは何ですか?なぜ飢えているのですか?


13

以下に時々表示され/var/log/syslogます:

rtkit-daemon[1145]: The canary thread is apparently starving. Taking action.
rtkit-daemon[1145]: Demoting known real-time threads.
rtkit-daemon[1145]: Successfully demoted thread 1431 of process 1368 (n/a).
rtkit-daemon[1145]: Successfully demoted thread 1430 of process 1368 (n/a).
rtkit-daemon[1145]: Successfully demoted thread 1368 of process 1368 (n/a).
rtkit-daemon[1145]: Demoted 3 threads.

何が起きてる?


ACPIに関するkern.logのエラー?その場合:BIOSに入り、ACPI power save optionsがに設定されてExtendedいるかどうかを確認します。に変更しNormalます。
リンツウィンド

回答:


24

ここで使用される「カナリア」という用語は、もともと石炭採掘に由来しています。炭鉱労働者はカナリアを使用して危険なガスを検出しました(運ばれたカナリアが死んだ場合、できるだけ早くシャフト/鉱山から出なければならないことを知っていました)。その結果、「カナリア」という用語は、危険な状況についての(早期の)警告を得るために使用するものすべてによく使用されます。

それはこの場合には思える取得スレッドがどこにあまりにも少ないプロセッサ時間を得ることを「飢え」とは、「リアルタイム」の優先順位は、「飢え」されている他のスレッド(&プロセス)が「rtkit」のようなテストに「正常な」スレッドを開始。これは、リアルタイムの優先順位にアクセスできるプロセス/スレッドが他のタスクがもう取得しないほど多くのCPU時間を消費しないようにするための安全対策です。

どうやら、rtkitからリアルタイムの優先度を取得したスレッドの一部は誤動作しており、CPUを独占しようとしているため、rtkitは「カナリアスレッド」でこれを検出し、rtkitはリアルタイムの優先度を取り去ります。


-3

バッファオーバーフローです

ウィキペディアのバッファオーバーフローカナリア

あなたが投稿したログから問題がどこにあるかわかりませんが、それらのメッセージの下にあるログエントリをチェックまたはペーストできますか?プロセス1368とは何ですか?

sudo ps -p 1368

2
これはバッファオーバーフローに関するものではありませんが、「カナリア」という言葉の使用は、炭鉱のカナリアの使用にも由来しています。
JanC
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.