Eu sei que não há problema em ter memória livre perto de 0 e toda a memória em cache
Mas isso causa problema com um aplicativo
Eu preciso que o servidor não armazene tanto em cache e libere memória de volta para liberar
Eu tentei fazer isso comsudo sysctl -w vm.vfs_cache_pressure=200
Mas não teve efeito
Eu tenho centos 7.9 Linux 3.10.0-1160.49.1.el7.x86_64
total used free shared buff/cache available
Mem: 125G 77G 300M 21M 47G 47G
Swap: 8.0G 0B 8.0G
O Linux não pode ser feito para não armazenar em cache. Essa memória é fácil de recuperar, é contada como disponível.
Esse host não está sob forte pressão de memória. Se fosse, haveria menos disponibilidade e poderia começar a usar swap.
Tente medir as informações de parada de pressão . Isso mostra o tempo que os processos realmente passaram esperando por memória (ou cpu ou io). Se você estiver realmente sob pressão de memória, o tempo gasto com falhas ou recuperação direta aumentaria o contador. Requer um kernel posterior, infelizmente, talvez experimente um kernel mais novo ou uma distribuição mais recente em um sistema de teste.
Se você ainda sentir que precisa fazer algo, altere o aplicativo para chamar posix_fadvise com o conselho de POSIX_FADV_DONTNEED nos descritores de arquivo. Arquivos gratuitos que não serão acessados novamente, porque o cache é centenas a milhares de vezes mais rápido que o armazenamento subjacente.