Eu sempre fiz:
echo 3 | sudo tee /proc/sys/vm/drop_caches
free -m
total used free shared buffers cached
Mem: 24055 22439 1615 8969 16 9096
-/+ buffers/cache: 13326 10728
Swap: 0 0 0
Então, eu estou aqui inicialmente, eu gostaria de um pouco de espaço extra de memória RAM para que meu spotify pare de funcionar ou então eu possa iniciar outro servidor java ou qualquer outra coisa.
Eu tento echo 3 > /proc/sys/vm/drop_caches
, mas não há dados. readout é o mesmo depois. Mesmo depois de fechar o chrome e todas as coisas que consomem muita memória, o cache de páginas ainda está aguentando, até reiniciar realmente.
O que causa isso?
Eu sempre fiz:
echo 3 | sudo tee /proc/sys/vm/drop_caches
De um prompt sudo
, aqui está um verso que você pode usar:
# free -m && sync && echo 3 > /proc/sys/vm/drop_caches && free -m
total used free shared buff/cache available
Mem: 7840 1958 2775 739 3106 4795
Swap: 7999 0 7999
total used free shared buff/cache available
Mem: 7840 1958 4698 734 1183 4860
Swap: 7999 0 7999
Isso liberou 2 GiB de buffer / cache. Passou de 3,1 GB para 1,2 GB.
Por isso, funciona como deveria, no entanto, no seu caso, você não tinha armazenamento em buffer na RAM que poderia ser liberado.
O Linux (kernel) faz uso de memória não utilizada para cache de páginas (e cache de buffer - ele ainda existe) para desempenho.
free
- > não usado para qualquer coisa
echo 3 > /proc/sys/vm/drop_caches
libera pagecache, dentries e inodes que retornarão cache de página / cache de buffer para "liberar".
Ubuntu 14.04
# free -m
total used free shared buffers cached
Mem: 1375 1289 85 5 112 302
-/+ buffers/cache: 875 500
Swap: 0 0 0
# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 87660 115120 309500 0 0 1 9 4 18 0 0 100 0 0
# echo 3 > /proc/sys/vm/drop_caches
# vmstat
fprocs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 512720 2236 25756 0 0 1 9 4 18 0 0 100 0 0
# free -m
total used free shared buffers cached
Mem: 1375 874 500 5 2 25
-/+ buffers/cache: 847 528
Swap: 0 0 0
buffers
e cached
serão reduzidos e free
aumentará, mas isso não significa que você tenha mais memória disponível para aplicativos.
No seu caso, olhando para + buffers/cache
, que é 10728MB, essa era a memória disponível atualmente para aplicativos.
Para mais informações, verifique Linux comeu minha memória RAM!
% bl0ck_qu0te% A saída combina buff / cache e removeu o pouco confuso -/+ buffers/cache
.
Podemos ver claramente que buff/cache
caiu, mas available
não mudou. Eu pessoalmente acho que é uma melhor implementação / interpretação.
# free -m
total used free shared buff/cache available
Mem: 1874 117 18 1 1737 1708
Swap: 0 0 0
# echo 3 > /proc/sys/vm/drop_caches
# free -m
total used free shared buff/cache available
Mem: 1874 117 1654 1 102 1708
Swap: 0
Considere adicionar algum espaço de troca. Quando o sistema começa a ficar sem memória, o killer OOM (Out Of Memory) começará a matar aplicativos para liberar recursos. Muitas vezes mata os aplicativos que você precisa executar.
dd if=/dev/zero of=/mnt/swapfile bs=1024 count=1048576
lhe dará um arquivo de swap de 1GB em seu diretório / mnt. Em seguida, transforme-o em espaço de troca real com:
mkswap /mnt/swapfile
e depois ligá-lo:
swapon /mnt/swapfile
você também vai querer persistir durante a reinicialização, então edite seu arquivo / etc / fstab para incluir:
/mnt/swapfile none swap sw 0 0