
私は最近、4コアCPUで完全に実行されていた4つのワーカースレッドを持つマルチスレッドアプリケーションを持っています。
システムでUbuntu 16.04.3 LTSを実行しています。
今日はオペレーティングシステムを更新しました。sudo apt-get dist-upgrade
ところで、突然、アプリケーションのパフォーマンスが大幅に低下したことがわかり、それをワーカースレッドの無意識のコンテキスト遷移として追跡しました。
/proc/xxx/status のワーカー スレッドを見ると、1 秒あたり 80 の非自発的なコンテキスト切り替えによって影響されることがわかります。非自発的_ctxt_switchその分野が急速に増えています。
毎秒30回以上キューにジョブがなく、ワーカースレッドが自発的にスリープモードになります。
スレッド NICE 値は 0 で PRIORITY は 20 です。
非自発的なコンテキストスイッチが表示されるのはなぜですか? Ubuntuは最近カーネルのスケジューラやその他の内容を変更しましたか?なぜそして誰がスレッドをクラッシュさせるのかを知る方法はありますか?
プラス:ペダルを交換するだけでなく、修理にもかなり時間がかかります。