Pour supprimer l'erreur I/O produite par : `sync; echo 3 | tee /proc/sys/vm/drop_caches`, je l'ai modifié en : `sync ; echo 3 > /proc/sys/vm/drop_caches`, la commande tee est en trop et provoque l'erreur car il suffit d'injecter une valeur 1, 2 ou 3 dans drop_caches pour provoquer le nettoyage.
Voir ce message
(La valeur par défaut dans drop_caches est : 0).http://linux.die.net/man/5/proc wrote:/proc/sys/vm/drop_caches (since Linux 2.6.16)
Writing to this file causes the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.
To free pagecache, use echo 1 > /proc/sys/vm/drop_caches; to free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches; to free pagecache, dentries and inodes, use echo 3 > /proc/sys/vm/drop_caches.
Because this is a non-destructive operation and dirty objects are not freeable, the user should run sync first.
J'ai donc modifié le pet sur mon message précédent.
Attention à l'interprétation des valeurs de la commande free
À la première ligne (Mem), la valeur de la mémoire libre de la colonne free semble bien faible mais en réalité la mémoire disponible est bien supérieure.
La valeur de la mémoire disponible se trouve à la deuxième ligne (-/+ buffers/cache) de la colonne free à comparer entre Avant/Après.
Pour info :
le cache (buffers/cache) stocke les informations lues et écrites afin de réduire les accès disques et augmenter les performances !
Et le cache peut être libéré à tout moment
Voir ce lien et celui-ci.
Cordialement,
Médor.