Mam 8 GB pamięci RAM Linux, na której działają 4 serwery tomcat. Jedna z nich jest ustawiona na 3000 MB pamięci (ustawienie jvm -Xms i -Xmx), a inne na 1500 MB. Partycja wymiany jest również ustawiona na 8Gigs. Kiedy uruchamiam te serwery, użycie pliku wymiany jest niskie. Ale w ciągu kilku dni i w pewnych okresach, gdy jeden / wszystkie serwery są w szczytowej aktywności, użycie wymiany zaczyna rosnąć. Oto typowe wyjście sar -r.
kbmemfree kbmemused% memused kbbuffers kbcached kbswpfree kbswpused % swpused kbswpcad
48260 8125832 196440 2761852 7197688 99,41 1190912 14,20 316044
75504 8098588 99,08 198032 2399460 7197688 1190912 14,20 316032
Pokazuje 14,2% zamiany stosowanej obecnie. Zabawne jest to, że% NIGDY nie maleje . Nadal rośnie i osiąga do 30-40% . Co tydzień restartujemy nasze serwery.
Zakładam, że % swpused rośnie w okresach szczytowej aktywności i maleje w okresach niskiej aktywności. Lub przynajmniej pozostaje stały. Wygląda na to, że system wymiany nigdy nie odzyskuje systemu operacyjnego.
Dane wyjściowe wolnej: wolnej -m łącznej ilości użytych darmowych wspólnych buforów buforowanych Mem: 7982 7937 45 0 32 2088 - / + bufory / pamięć podręczna: 5816 2166 Zamień: 8191 1163 7028
Więc jest co najmniej 2 g darmowego Ram. Pytanie brzmi: dlaczego przestrzeń wymiany ciągle rośnie i nie jest odzyskiwana przez system operacyjny? Lub jak to debugować, aby dowiedzieć się, co się dzieje…