Speicherengpässe

Wenn die Ergebnisse von vmstat auf einen Speicherengpass hinweisen, müssen Sie herausfinden, welche Prozesse einen großen Anteil des Speichers belegen und welche dieser Prozesse (falls vorhanden) ansteigen.

Verwenden Sie das Tool svmon:
> svmon -P -t 5
Dieser Befehl gibt folgende Ausgabe aus:
-------------------------------------------------------------------------------
     Pid Command        Inuse      Pin     Pgsp  Virtual   64-bit    Mthrd
   38454 java           76454     1404   100413   144805        N        Y
-------------------------------------------------------------------------------
     Pid Command        Inuse      Pin     Pgsp  Virtual   64-bit    Mthrd
   15552 X              14282     1407    17266    19810        N        N
-------------------------------------------------------------------------------
     Pid Command        Inuse      Pin     Pgsp  Virtual   64-bit    Mthrd
   14762 dtwm            3991     1403     5054     7628        N        N
-------------------------------------------------------------------------------
     Pid Command        Inuse      Pin     Pgsp  Virtual   64-bit    Mthrd
   15274 dtsessi         3956     1403     5056     7613        N        N
-------------------------------------------------------------------------------
     Pid Command        Inuse      Pin     Pgsp  Virtual   64-bit    Mthrd
   21166 dtpad           3822     1403     4717     7460        N        N
Diese Ausgabe zeigt, dass der höchste Speicherbenutzer Java™ist und dass er 144805 Seiten des virtuellen Speichers verwendet (144805 * 4 KB = 565.64 MB). Dies ist keine unzumutbare Speicherkapazität für eine JVM mit einem großen Java-Heapspeicher-in diesem Fall 512 MB.

Wenn bei diesem Grad der Arbeitslast ein Speicherengpass im System vorliegt, können Sie zur Abhilfe nur entweder mehr physischen Hauptspeicher schaffen oder versuchen, die verfügbare Menge an Paging-Speicherbereich zu optimieren. Hierfür müssen Sie die Werte maxperm und minperm mit dem Befehl vmtune ändern.

Wenn der Java-Prozess seine Speicherbelegung weiter erhöht, wird eine eventuelle Speichereinschränkung durch ein Speicherleck verursacht.