Я использую kubuntu jaunty (i386 32bit), ядро 2.6.28-13-generic. У меня 4 ГБ ОЗУ, из которых только 3317 МБ видны системой (наверное, из-за 32-битной системы).
Я вижу, что использование кэша страниц постоянно растет, вплоть до того, что система станет непригодной для использования (через несколько дней). Это происходит также, когда я ничего не делаю (все пользовательские приложения закрыты и включен минимум сервисов).
Если включено, система начинает использовать пространство подкачки (используя все это в конце).
Даже если подкачка отключена, активность диска становится непрерывной, а система не отвечает.
Например, сейчас система работает (хотя и немного медленно), только Firefox и wing ide работают, и у меня кешируется 2 ГБ, а отображается только 45 МБ:
$ free
total used free shared buffers cached
Mem: 3346388 3247328 99060 0 8416 2117980
-/+ buffers/cache: 1120932 2225456
Swap: 2144668 519448 1625220
$ cat /proc/meminfo
MemTotal: 3346388 kB
MemFree: 97128 kB
Buffers: 7872 kB
Cached: 2120224 kB
SwapCached: 413860 kB
Active: 2304596 kB
Inactive: 865984 kB
Active(anon): 2279168 kB
Inactive(anon): 830236 kB
Active(file): 25428 kB
Inactive(file): 35748 kB
Unevictable: 32 kB
Mlocked: 32 kB
HighTotal: 2492940 kB
HighFree: 5456 kB
LowTotal: 853448 kB
LowFree: 91672 kB
SwapTotal: 2144668 kB
SwapFree: 1625244 kB
Dirty: 84 kB
Writeback: 0 kB
AnonPages: 629304 kB
Mapped: 45768 kB
Slab: 45600 kB
SReclaimable: 21756 kB
SUnreclaim: 23844 kB
PageTables: 4468 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 3817860 kB
Committed_AS: 3735020 kB
VmallocTotal: 122880 kB
VmallocUsed: 9352 kB
VmallocChunk: 66600 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 4096 kB
DirectMap4k: 16376 kB
DirectMap4M: 888832 kB
Если я пытаюсь сбросить кеш, мало что происходит:
# sync ; echo 3 > /proc/sys/vm/drop_caches ; free
total used free shared buffers cached
Mem: 3346388 3220580 125808 0 3020 2100600
-/+ buffers/cache: 1116960 2229428
Swap: 2144668 519356 1625312
Сейчас у меня vm.swappiness = 5, но я пробовал также с 0 и 1 (без заметных различий).
Я также пробовал vm.vfs_cache_pressure = 50 и 150 (опять же, без различий).
Как я уже сказал, pagecache съедает всю память даже при выключенной подкачке.
Что происходит? Как этого избежать?