私はpulseaudio
Gentoo Linuxボックスのプロセスが-11という良いレベルを持っていることを発見しました。しかし、一般ユーザーが所有しているにもかかわらず、どのようにそのような高い優先順位を持つようになったのかわかりません。
nice
root以外のユーザーは、このコマンドを使用して0より低い優先順位のプログラムのみを起動でき、プロセスに0より高い優先順位を付けようとすると、「許可拒否」が表示されることがわかります。
プロセスは私(ルートではなく)所有であるため、pulseaudio
特別な処理がなければ、それほど高い優先順位を得ることはできないようです。
だから私の質問は、「治療」がpulseaudio
親近感を減らすことです。
ベストアンサー1
PulseAudioは主に待ち時間の問題を防ぎ、スキップしないオーディオ再生のために他のデスクトッププログラムよりも高い優先順位を必要とします。しかし、PulseAudioに高い優先順位を与えるプロセスはかなり複雑です。
この特別な優先順位を取得するには、次のようにします。リアルタイムスイート(rtkit-daemon
)プロセス。 D-Busサービスは、特定のユーザープログラムでリアルタイムスケジューリングを有効にし、乱用を防ぐためにいくつかの厳しいポリシーを適用します。
- RLIMIT_RTTIMEが設定されたクライアントのみがRT予約を受け取ります。
- RLIMIR_RTIME:リアルタイム予約ポリシーに従って、スケジュールされたプロセスがシステムコールをブロックせずに消費できるCPU時間の量の制限を指定します。
- RTスケジュールは、SCHED_RESET_ON_FORKが設定されたプロセスにのみ配布されるため、スケジュール設定が子プロセスに「漏洩」しないように配置されるため、「RTフォーク爆弾」を使用してRLIMIT_RTTIMEをバイパスし、システムの競合を引き起こすことができません。
- SCHED_RESET_ON_FORK:設定されている場合、プロセスはa)スケジューリング優先順位をDEFAULT_PRIO(より高い場合)にリセットし、b)スケジューリングポリシーをSCHED_NORMAL(SCHED_FIFOまたはSCHED_RRの場合)にリセットします。
- すべてのユーザーが制御できるリソースを制限し、最大ユーザー、プロセス、スレッドのみを同時にRTスケジューリングすることができます。
- 特定の期間内に限られた数のスレッドだけがRTになります。
- クライアント承認が確認に合格しました。ポリシーツールキット。
[...] 上記で指摘したロジックにもかかわらず、システムがオーバーロードされると、すべてのリアルタイムスレッドをSCHED_OTHERに自動的に降格させるカナリアベースの監視機能が含まれています。詳しくはカナリアベースのRTウォッチドッグ [...]
追加の関連情報: