ps -efが中断される理由をデバッグするために必要なアドバイス

ps -efが中断される理由をデバッグするために必要なアドバイス

私のプロセスのいくつかはCPUを100%消費します。どのスクリプトが問題を引き起こしているかを調べようとしています。

私は以下を実行しようとしていますstrace ps -ef

open("/proc/PID/status", O_RDONLY) = 6
read(6, "Name:\textract\nState:\tR (running)"..., 1023) = 1023
close(6) = 0
open("/proc/PID/cmdline", O_RDONLY) = 6
read(6,

だから、読もうとすると停止します/proc/PID/cmdline。試してみましたが、catまた停止しました。何かカーネルに問題があるようです。次は何を試すべきですか?

注:再起動しても機能しません。手動で終了すると、問題が再び表示されます。 SUSE Linux Enterprise Server 11(x86_64)、Linux 2.6.27.19を使用しています。


編集するps -e出力を生成するのにsが多すぎますgrep。 sの数はgrep250、450で変化します。これで約520個のgrepが表示されます。私は少し逆追跡し、これがcronスクリプトの結果であることがわかりました。それでもクローンスクリプトを理解する必要があります。はい、top結果を表示します。 2日前にサーバーを手動でシャットダウンしました。過去2日間にシステムが稼働しました。私はいつもOracleが実行されているのを見ています。私はちょうどメモリテストをしましたが、エラーが見つかりませんでした。

ベストアンサー1

まさに昨日。問題は、1つのプロセスがステータスとして表示される「ノンストップスリープ」状態にあることです。D上に。 ls /proc/ は返されず、中断できません。 ps -efは返されず、中断できません。

再起動しても役に立たない場合は、DVDまたはハードドライブに不良セクタがあり、プロセスPIDが起動中にそれを読み取ろうとする可能性があります。したがって、技術的に再起動すると役立ちますが、エラーは自動的に再発生します。

プロセスが実際にD状態にあることを確認し、そこから続行してください。このプロセス(回復システム)を呼び出さずにコンピュータを起動します。次に、プログラムを実行して追跡し、どのファイルにアクセスしたかを確認します。ファイルの1つに不良セクタがあるようです。

おすすめ記事