Ich bin darauf gestoßen, als ich die Ursache für den Serverabsturz ermittelt habe, wenn der Oracle-Prozess beendet wird. Ich habe den auf dem Server laufenden Oracle-Prozess aufgelistet ps aux | grep oracle
und hier ist die Ausgabe:
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
Richtig, alle diese Prozesse schlafen und ihrem Statuscode zufolge gibt es verschiedene Arten von Schlafzuständen - Ssl, Sl, SLl
. Ich habe nach den verschiedenen Arten von Prozessschlafzuständen gegoogelt und konnte nur Informationen über Festplattenschlafzustände, unterbrechbare und nicht unterbrechbare Schlafzustände finden. Ich sehe keine Informationen darüber, was wie Unterstatus (die Ssl, Sl, SLl
) verschiedener Schlafzustände aussieht. Weiß hier jemand, worin sich SsL, Sl und SLl unterscheiden?
Aus dem Kommentar des Benutzers „Chaos“ habe ich diese Status wie folgt identifiziert:
Ssl - sleeping, is a session loader and multi-threaded.
SL - sleeping, has pages locked into memory
Sl - sleeping, and the process is multi-threaded
Was bedeutet das also? Nutzt ein Prozess im „SL – schläft, hat Seiten im Speicher gesperrt“ den Speicher? Wenn es viele dieser „SL“-Prozesse gibt, nehmen sie dann anderen Prozessen Speicher weg?
(Alle diese Prozesse haben ihren übergeordneten Prozess als init
, falls das einen Unterschied macht).
Antwort1
Dies stammt aus der ps
Manpage:
PROZESSZUSTANDSCODES: Hier sind die verschiedenen Werte, die die Ausgabespezifizierer s, stat und state (Überschrift „STAT“ oder „S“) anzeigen, um den Zustand eines Prozesses zu beschreiben:
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.