J'ai un ordinateur portable sous Ubuntu 16.04 avec 4 Go de RAM. Je l'utilise depuis environ un mois et récemment, j'ai remarqué que le système ralentissait beaucoup, même lorsque seulement 3 ou 4 applications étaient en cours d'exécution. Ceci est la sortie de free -m
avec un terminal et gedit ouverts.
total used free shared buff/cache available
Mem: 3872 797 842 1971 2232 848
Swap: 4015 141 3874
Vous pouvez voir que la mémoire disponible est inférieure à la mémoire en cache. La mémoire en cache ne devrait-elle pas être incluse dans la mémoire disponible? Le problème est que, lorsque j'ouvre une autre application, la taille de la mémoire en cache augmente au lieu de laisser de la place à la nouvelle application! Voici la sortie de 'free -m' après l'ouverture de Firefox, de la visionneuse de documents et de vscode.
total used free shared buff/cache available
Mem: 3872 1391 145 1923 2335 299
Swap: 4015 250 3765
Sudo sync; echo 3>'/proc/sys/vm/drop_cache'
n'aide pas beaucoup.
total used free shared buff/cache available
Mem: 3872 1368 239 1923 2265 324
Swap: 4015 256 3759
Il s'avère que je ne peux même pas ouvrir 5 applications sur Ubuntu simultanément. On dirait que la mémoire de 2265 Mo vient de fuir. C'est plus de la moitié de mon bélier physique! Que puis-je faire à ce sujet?
Si vous voulez calculer votre mémoire libre, essayez ceci
(il sera imprimé en Mo)
faire un script bash ajouter ces
mem1=$( free | sed 'N;s/\n/ /;N;s/\n/ /' | awk '{ print $8 }' | awk '{ total = $1 / 1024 ; print total }' | sed 'N;s/\n/ /;N;s/\n/ /' | awk '{ print $1}' )
mem2c=$( free | sed 'N;s/\n/ /;N;s/\n/ /' | awk '{ print $10}' | awk '{ total = $1 / 1024 ; print total }' | sed 'N;s/\n/ /;N;s/\n/ /' | awk '{ print $1}' )
mem3=$( free | sed 'N;s/\n/ /;N;s/\n/ /' | awk '{ print $9}' | awk '{ total = $1 / 1024 ; print total }' | sed 'N;s/\n/ /;N;s/\n/ /' | awk '{ print $1}' )
mem2f=$( free | sed 'N;s/\n/ /;N;s/\n/ /' | awk '{ print $12}' | awk '{ total = $1 / 1024 ; print total }' | sed 'N;s/\n/ /;N;s/\n/ /' | awk '{ print $1}')
mem2=$(awk "BEGIN {print $mem2c+$mem2f; exit}")
alors fais juste ça
echo "$mem1 / $mem3 / $mem2"
source: mon propre code :)