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 VmSwap
11832 Kb. (obliczone przez awk '/^VmSwap/ {t+=$2} END {print t" kB"}' /proc/*/status
)
cat /proc/sys/vm/swappiness
, powinien być niższy niż domyślny 60, jeśli chcesz, aby mniej zamieniał. Niektórzy sugerują wartość 10.Odpowiedzi:
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 kB
Linia 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.
źródło