最近Kubuntu Natty Beta 1にアップグレードしましたが、プロセスkworkerで多くの問題を抱えています。現時点では、CPUのほぼ半分を使用しています。また、奇妙なことに、USBポートに影響を与えるようです。USBドライブを接続するたびに、プロセスkworkerがハイパードライブに入り、作業できなくなります。
バグを報告することを考えましたが、kworkerが何であるかについての合理的な説明すら見当たらなかったため、最初に見つける必要があると考えました。
最近Kubuntu Natty Beta 1にアップグレードしましたが、プロセスkworkerで多くの問題を抱えています。現時点では、CPUのほぼ半分を使用しています。また、奇妙なことに、USBポートに影響を与えるようです。USBドライブを接続するたびに、プロセスkworkerがハイパードライブに入り、作業できなくなります。
バグを報告することを考えましたが、kworkerが何であるかについての合理的な説明すら見当たらなかったため、最初に見つける必要があると考えました。
回答:
「kworker」は、カーネルワーカースレッドのプレースホルダープロセスであり、特に割り込み、タイマー、I / Oなどがある場合にカーネルの実際の処理のほとんどを実行します。これらは通常、割り当てられた「システム」実行中のプロセス時間。何らかの方法でシステムから安全に削除できるものではなく、nepomukやKDEとはまったく関係ありません(これらのプログラムがシステムコールを行う場合があり、カーネルが何かを行う必要がある場合があります)。
2.6.36開発中に比較的アイドル状態のシステムで過剰なkworkerアクティビティが発生したという報告(例の説明)と、2.6.38での混乱と問題に関する幅広い報告(これらの報告の多くには「Natty」という言葉が含まれているため、これらの人々は2.6.35(Ubuntu 10.10で配布)と2.6.38(Ubuntu 11.04で配布)の間でカーネルを使用していません。
私は、これを1人または別のユーザーに「修正」したものの多くのレポートを見つけました。ほとんどの「修正」は、さまざまな種類のカーネルの更新に関連しているようです。特定の問題に対する更新を追跡できる場合、誤動作しないようにパッチが適用されているドライバーまたはカーネルサービスであることが多いようです。これはkworkerの過度の使用として観察されます。
過剰なkworkerアクティビティが原因でシステムを使用できない場合は、より少ないことを試みることをお勧めします。何もしていないと思われる場合は、実行時間の長いサービスまたはタイマー(RSSリーダー、メールリーダー、ファイルインデクサー、アクティビティトラッカーなど)をシャットダウンしてみてください。これが機能しない場合は、再起動してみてください。システムでプリブート環境でハードウェアを有効または無効にできる場合は、使用していないハードウェアをオフにしてみてください。再起動のたびに何かを実行する前に発生した場合は、アンインストールを試みることができますが、この時点でsyscallプロファイリングツールを実行して、この過負荷を引き起こしていると思われる特定のアプリケーションを追跡する必要があります。
特定のシステムが、将来のカーネルアップグレードでこの動作の表現を停止することが望まれます(そして、これの最も一般的な原因の多くが解決されました)。
kworkerとは何ですか? kworker
Linuxカーネルプロセスが「作業」(システムコールの処理)を行うことを意味します。プロセスリストにそれらのいくつかを含めることができkworker/0:1
ます。最初のCPUコアにkworker/1:1
あるもの、2番目のCPUコアにあるものなどです。
kworkerがCPUを独占するのはなぜですか?kworkerがCPUを浪費している理由を調べるには、CPUバックトレースを作成できます。プロセッサ負荷(top
または何か)を監視し、高負荷の瞬間にkworker
、実行echo l > /proc/sysrq-trigger
してバックトレースを作成します。(Ubuntuでは、これでログインする必要がありますsudo -s
)。これを数回行い、dmesg
出力の最後でバックトレースを監視します。CPUバックトレースで頻繁に発生することを確認してください。問題の原因を突き止めることができれば幸いです。
例:e1000e。私の場合、ほぼ毎回このようなバックトレースを見つけました。
Call Trace:
delay_tsc+0x4a/0x80
__const_udelay+0x2c/0x30
e1000_acquire_swflag_ich8lan+0xa2/0x240 [e1000e]
e1000e_read_phy_reg_igp+0x29/0x80 [e1000e]
e1000e_phy_has_link_generic+0x85/0x120 [e1000e]
e1000_check_for_copper_link_ich8lan+0x48/0x930 [e1000e]
e1000e_has_link+0x55/0xd0 [e1000e]
e1000_watchdog_task+0x5e/0x960 [e1000e]
e1000e
イーサネットカードモジュールの問題を示唆し、実際sudo rmmod e1000e
に高CPU負荷がすぐになくなる [ e1000e bug#26 ]。
echo l > /proc/sysrq-trigger
sysrq: SysRq : This sysrq operation is disabled.
悲しいことに言ってproxmoxで動作しないようです。
kworkerがCPUを独占するのはなぜですか(続き)?ここでの他の答えの代わりとして、PerfはCPUを占有しているカーネルタスクを分析するより専門的な方法です。
インストールperf
:
sudo apt-get install linux-tools-common linux-tools-3.11.0-15-generic
(2番目のパッケージは、カーネルのバージョンと一致する必要があります。最初にインストールしてlinux-tools-common
、perf
必要なパッケージを伝えるために呼び出すことができます。)
すべてのCPUで約10秒のバックトレースを記録します。
sudo perf record -g -a sleep 10
記録を分析します。
sudo perf report
(とコールグラフを移動し←、→、↑、↓およびEnter。)
perf
し、sd_mod
カーネルモジュールまで問題を追跡しました。でSCSIを無効にvmx
ファイル読み込みからモジュールを防止し、戻って通常の速度にシステムを得た:scsi0.present = "FALSE"
みんなに知らせるためだけに。私はこの問題に遭遇し、perf(これは素晴らしいツールです)をインストールしましたが、これはスピンロックとXFSを指していました。それはNFSを指しています。それから、マウントの1つがスペース不足であることに気付きました。スペースを解放すると、kworker CPUが0になりました。
どうやら、これはビジー状態のNFSサーバーのドライブ容量が不足していることの症状である可能性があります。
最近、Ubuntu Nattyを外部ドライブusb wdパスポートにインストールしました。約2歳のデスクトップで起動すると、すべてが魅力のように機能します。新しいラップトップ(MSI gt680rシステム)で起動すると、コンピューターをスリープ状態から復帰させた後、または別のusbディスクを接続すると速度が低下します。
KworkerプロセスはますますCPUを消費し、マウスは時々フリーズします。
さまざまなフォーラムでいくつかの解決策を読みましたが、うまくいきませんでした。
私は私のラップトップのBIOSに行きました。
Hand XCHI OFF: Enabled
EHCI Hand OFF: disabled
私が変更したのは:
Hand XCHI OFF: disabled
EHCI Hand OFF: disabled
そしてそれ以来、私のラップトップ上でもうそれはフリーズしません。
問題が修正された場合は、いつでも手を戻すことができます。
Nepomukを無効にすると役立つと思います:
http://www.freetechie.com/blog/disable-nepomuk-desktop-search-on-kde-4-4-2-kubuntu-lucid-10-04/