プロセスを微調整しようとすると、待機チャネルが stext であることがわかります。これはどういう意味ですか?
3 に答える
WCHAN は、プロセスがスリープしているカーネル内のアドレスです (実際にスリープしている場合)。stext に設定されているということは、通常、カーネルが 2.6 より前であり、System.map (namelist ファイル) を初期化していないか、カーネルと namelist ファイルが一致していないことを意味します。
「man ps」を実行して wchan を検索すると、namelist ファイルの検索パスが表示されます。stext はカーネル TEXT セグメントの開始点であり、そこで眠っている可能性は低いため、最初に見つかったものは、取得したカーネルと一致しない可能性があります。
アドレスが TEXT セグメントの外側にある場合、デフォルトで stext が取得されると思います (したがって、namelist ファイルとカーネルが一致しないという私の考えです)。
wchan は、SCHED_NO_NO_OMIT_FRAME_POINTER が "y" (デフォルト値) に設定されている x86 システムでは壊れています。これらのシステムでは、wchan は常に _stext にマップされる "0" を返します。
Kiwi - RHEL の ps は /boot/System.map-2.6.18-53.1.14.el5PAE から名前リストを取得する必要があります。これはすでにインストールされていると思います。正常に動作している場合はps axo pid,cmd,wchan
、プロセスとそれらが待機しているカーネル関数のリストが生成されます。私の場合、rpc.idmap と lockd のいくつかを除いて、ほとんどの関数で意味のある出力です。いくつかの関数で「stext」が表示されますが、これが何を意味するのか知りたいです。