Oracle プロセスが強制終了されるたびにサーバーがダウンする原因をトラブルシューティングしているときに、これに遭遇しました。サーバーで実行されている Oracle プロセスをリストするとps aux | grep oracle
、出力は次のようになります。
oracle 21739 0.0 0.0 165068 17488 ? Ssl Oct14 0:18 /apps/11203/grid/bin/mdnsd.bin
oracle 21759 0.1 0.0 176556 25672 ? Ssl Oct14 1:14 /apps/11203/grid/bin/gpnpd.bin
oracle 21772 0.9 0.0 249528 31320 ? Sl Oct14 8:04 /apps/11203/grid/bin/gipcd.bin
oracle 21830 1.1 0.0 265760 115908 ? SLl Oct14 9:54 /apps/11203/grid/bin/ocssd.bin
oracle 21969 0.2 0.0 268648 29148 ? Ssl Oct14 2:10 /apps/11203/grid/bin/evmd.bin
oracle 22246 0.0 0.0 92420 13024 ? S Oct14 0:00 /apps/11203/grid/bin/evmlogger.bin -o /apps/11203/grid/evm/log/evmlogger.info -l /apps/11203/grid/evm/log/evmlogger.log
そうです、これらのプロセスはすべてスリープ状態にあり、そのステータス コードから、さまざまな種類のスリープ状態がわかりますSsl, Sl, SLl
。さまざまな種類のプロセス スリープについて Google で検索しましたが、ディスク スリープ、割り込み可能スリープ、割り込み不可スリープについてしか見つかりませんでした。さまざまなスリープのサブ ステータス () に関する情報は見つかりませんSsl, Sl, SLl
。SsL、Sl、SLl の違いを知っている人はいますか?
ユーザー「chaos」のコメントから、これらのステータスを次のように特定しました。
Ssl - sleeping, is a session loader and multi-threaded.
SL - sleeping, has pages locked into memory
Sl - sleeping, and the process is multi-threaded
では、これらは何を意味するのでしょうか? 'SL - スリープ状態、ページがメモリにロックされている' 状態のプロセスは、メモリを使用しているのでしょうか? こうした 'SL' プロセスが多数ある場合、他のプロセスからメモリを奪っているのでしょうか?
(これらすべてのプロセスは、親プロセスが であるのでinit
、違いはありません)。
答え1
これはマンページからの抜粋ですps
:
プロセス状態コード: プロセスの状態を説明するために、s、stat、および state 出力指定子 (ヘッダー "STAT" または "S") が表示するさまざまな値を以下に示します。
D uninterruptible sleep (usually IO) R running or runnable (on run queue) S interruptible sleep (waiting for an event to complete) T stopped, either by a job control signal or because it is being traced. W paging (not valid since the 2.6.xx kernel) X dead (should never be seen) Z defunct ("zombie") process, terminated but not reaped by its parent. For BSD formats and when the stat keyword is used, additional characters may be displayed: < high-priority (not nice to other users) N low-priority (nice to other users) L has pages locked into memory (for real-time and custom IO) s is a session leader l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) + is in the foreground process group.