Ich habe eine 8 GB RAM Linux Box, auf der 4 Tomcat Server ausgeführt werden. Eine davon ist auf 3000 MB Speicher eingestellt (Einstellung jvm -Xms und -Xmx), andere auf 1500 MB. Die Swap-Partition ist ebenfalls auf 8Gigs eingestellt. Wenn ich diese Server starte, ist die Auslastung der Auslagerungsdateien gering. Über einen Zeitraum von Tagen und zu bestimmten Zeiten, wenn einer / alle Server in Spitzenaktivität sind, nimmt die Swap-Nutzung jedoch zu. Hier ist eine typische sar-r-Ausgabe.
kbmemfree kbmemused% memused kbbuffers kbcached kbswpfree kbswpused % swpused kbswpcad
48260 8125832 99,41 196440 2761852 7197688 1190912 14,20 316044
75504 8098588 2399460 7197688 198032 99,08 1.190.912 14,20 316.032
Es zeigt einen derzeit verwendeten Swap von 14,2%. Das Lustige ist, dass% NIE abnimmt . Es steigt weiter an und erreicht bis zu 30-40% . Wir starten unsere Server wöchentlich neu.
Ich würde davon ausgehen, dass der prozentuale Anteil der Swpused in Perioden mit Spitzenaktivität zunimmt und in Perioden mit geringer Aktivität abnimmt. Oder zumindest konstant bleibt. Dies sieht so aus, als würde der Swap-Bereich vom Betriebssystem niemals zurückgefordert.
Ausgabe von frei: frei -m insgesamt verwendete frei geteilte Puffer zwischengespeichert Mem: 7982 7937 45 0 32 2088 - / + Puffer / Cache: 5816 2166 Swap: 8191 1163 7028
Es gibt also mindestens 2 g freien Ram. Die Frage ist also, warum der Swap-Bereich weiter zunimmt und vom Betriebssystem nicht zurückgefordert wird. Oder wie man dies debuggt, um herauszufinden, was passiert.