W przypadku Centos 6.3, dlaczego kilka metod pomiaru wymiany zwraca różne wyniki?

1

Mam system produkcyjny z systemem Centos 6.3 z 96 Gb RAM i zamianą 2 Gb. Chodzi o to, aby na pudełku była wystarczająca ilość pamięci RAM, aby żadne procesy nie mogły zostać zamienione.

W ciągu ostatniego tygodnia ilość użytej przestrzeni wymiany wzrosła do 100%, jak podają SwapTotal / SwapFree / proc / meminfo.

Jednak ilość wymiany wykorzystywanej przez procesy, jak zgłosiła góra i skrypt podany tutaj https://stackoverflow.com/questions/479953/how-to-find-out-which-processes-are-swapping-in-linux to tylko około 26 Mb.

Wygląda na to, że system nie zamienia się, więc nie jestem pewien, jak poważnie przyjąć wartość SwapFree / proc / meminfo.

Dlaczego istnieje taka rozbieżność między raportami / proc / meminfo a wymianą poszczególnych procesów?

Jak mogę dowiedzieć się, które procesy są odpowiedzialne za myślenie / proc / meminfo, że cała zamiana jest używana (z wyjątkiem zabijania każdego procesu po kolei i sprawdzania, kiedy SwapFree rośnie, co nie jest dobrym pomysłem na produkcji system)?

Aktualizacja: oto aktualne wyjście darmowego:

             total       used       free     shared    buffers     cached
Mem:      99052152   98330684     721468          0     577400   82224692
-/+ buffers/cache:   15528592   83523560
Swap:      2097144     959580    1137564

i cat / proc / meminfo:

MemTotal:       99052152 kB
MemFree:          731560 kB
Buffers:          577400 kB
Cached:         82222116 kB
SwapCached:       174456 kB
Active:         69762456 kB
Inactive:       25778300 kB
Active(anon):   53783608 kB
Inactive(anon):  8973048 kB
Active(file):   15978848 kB
Inactive(file): 16805252 kB
Unevictable:       31424 kB
Mlocked:           31424 kB
SwapTotal:       2097144 kB
SwapFree:        1137556 kB
Dirty:              2076 kB
Writeback:             0 kB
AnonPages:      12598632 kB
Mapped:         43958780 kB
Shmem:          50010060 kB
Slab:            1390148 kB
SReclaimable:    1308692 kB
SUnreclaim:        81456 kB
KernelStack:        6400 kB
PageTables:       171412 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    51623220 kB
Committed_AS:   68521168 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      478428 kB
VmallocChunk:   34307842136 kB
HardwareCorrupted:     0 kB
AnonHugePages:  11145216 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        5604 kB
DirectMap2M:     2078720 kB
DirectMap1G:    98566144 kB

Całkowite wykorzystanie swapów zarejestrowane w /proc/*/status VmSwap11832 Kb. (obliczone przez awk '/^VmSwap/ {t+=$2} END {print t" kB"}' /proc/*/status)

Chris Card
źródło
Możesz dodać do posta wszystkie wyniki meminfo, a także vmstat, a nawet uruchomić Collectl .
harrymc
Zamiana najmniej używanego 2 GB pamięci RAM aplikacji w ciągu tygodnia nie spowoduje utraty wydajności. Zamiana pozostawia więcej miejsca na pamięć podręczną, więc może być wygraną w zależności od obciążenia. Jaki jest wynik cat /proc/sys/vm/swappiness, powinien być niższy niż domyślny 60, jeśli chcesz, aby mniej zamieniał. Niektórzy sugerują wartość 10.
Brian
swapiness jest obecnie ustawiony na 60 i zgadzam się, że zmniejszenie go może pomóc, ale moje pytanie dotyczy tego, jak dowiedzieć się, co korzysta z przestrzeni wymiany, która nie jest uwzględniana przez wartości w / proc / * / status VmSwap .
Chris Card
1
Muszę zapytać: dlaczego nie wyłączysz całkowicie wymiany?
Gabe
1
Sprawdź, czy ta odpowiedź wymiany stosu nie rzuca światła na twoje liczby.
harrymc

Odpowiedzi:

0

Jednym ze źródeł używanych zamian, które nie pojawią się w każdym procesie, są strony Zamień w pamięci podręcznej.

SwapCached: 174456 kBLinia to strony, które są zarówno zamiany i barana.

Dzieje się tak, gdy strony są wysyłane do zamiany, a następnie ponownie potrzebne, ale nigdy nie są modyfikowane. Kopia na dysku jest nadal ważna, więc jest przechowywana. W efekcie może on zostać ponownie zamieniony na dysk w późniejszym terminie bez konieczności zapisu na dysk.

Brian
źródło
Nawet jeśli tak jest, wciąż nie ma prawie 1 Gb użycia wymiany.
Chris Card