Estou usando o kubuntu jaunty (i386 32bit), kernel 2.6.28-13-generic. Eu tenho 4Gb de RAM, dos quais apenas 3317Mb são vistos pelo sistema (eu acho que por causa do sistema de 32 bits).
Estou vendo que a utilização de pagecache está crescendo continuamente, até o ponto em que o sistema está inutilizável (após alguns dias). Isso também acontece quando não faço nada (todos os aplicativos do usuário são fechados e o mínimo de serviços é ativado).
Se ativado, o sistema começa a usar o espaço de troca (usando tudo no final).
Mesmo se a troca estiver desabilitada, a atividade do disco se tornará contínua, com o sistema sem resposta.
Por exemplo, neste momento o sistema está funcionando (ainda que um pouco lento), com apenas o Firefox e o wing ide rodando, e eu tenho 2Gb em cache com apenas 45Mb mapeados:
$ 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
Se eu tentar derrubar os caches, pouco acontece:
# 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
Agora eu tenho vm.swappiness = 5, mas eu tentei também com 0 e 1 (sem diferenças perceptíveis).
Eu também tentei vm.vfs_cache_pressure = 50 e 150 (novamente, sem diferenças).
Como eu disse, o pagecache consome toda a memória, mesmo com a troca desativada.
O que está acontecendo? Como evitar isso?
Tags swap cache memory virtual-memory