sonnenblen.de - Das unabhängige Sun User Forum

Betriebssysteme => Solaris/x86 und OpenSolaris => Thema gestartet von: netadair am 08. April 2010, 01:08:29

Titel: Problem mit Größe des Virtual Swap
Beitrag von: netadair am 08. April 2010, 01:08:29
Hallo zusammen,

ich habe auf (verschiedenen x86-Rechnern) unter Solaris 10 ein seltsames Problem; es ist scheinbar nicht genug Speicher vorhanden, mit den üblichen Symptomen. Aber: es wäre eigentlich genug vorhanden:

vmstat 1
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr s0 s2 s3 s4   in   sy   cs us sy
id
[...]
 0 0 0 16090804 12171192 1085 3824 0 0 0 0 0 0 0  6  0 1390 8053 1953  1  1 97

top
load averages:  0.08,  0.06,  0.05;                    up 112+23:01:29
09:35:15
116 processes: 115 sleeping, 1 on cpu
CPU states: 99.1% idle,  0.3% user,  0.5% kernel,  0.0% iowait,  0.0% swap
Memory: 16G phys mem, 12G free mem, 8197M total swap, 7392M free swap

swap -l
swapfile             dev  swaplo blocks   free
/dev/dsk/c3t0d0s1   61,193      8 16787912 15139424

swap -s
total: 2827460k bytes allocated + 2281836k reserved = 5109296k used,
16092008k available

Aber: 12GB freies RAM und 7.2GB freier Swap = 19.2GB entsprechen nicht 15.3GB virtual swap, d.h. hier verschwinden irgendwo 3.9GB Speicher! Die Konsequenz ist, dass im Fall einer starken (Speicher-)Auslastung ein Solaris-x86-Rechner noch genug Speicher zu haben scheint, de facto aber fährt er gegen die Wand, weil nicht der gesamte Speicher ansprechbar ist.

Fehlerursachen wie /tmp-Auslastung (im swapfs), ISM oder Arc-Cache von ZFS habe ich schon ausgeschlossen.

Der Workaround ist, soviel Swap-Space hinzuzufügen, dass es wieder genug virtual swap verfügbar ist, um alles RAM (minus Kernel-Overhead usw.) in Anspruch nehmen zu können (wobei der "überschüssige" Swap niemals in Anspruch genommen wird.)

Kennt jemand dieses Problem? Ich finde im Netz in verschiedenen Foren Hinweise auf die gleiche Fragestellung, aber niemals eine Erklärung geschweige denn eine Lösung.

Ciao
Michael