Comment nettoyer la memory RAM utilisée comme memory cache?

Mon processeur utilise une grande partie de ma memory RAM comme cache et je veux le nettoyer à cause de cela; va-t-il préjuger quelque chose

Il n'est pas nécessaire de le faire, le kernel gère efficacement la RAM en l'utilisant pour les caches et les tampons si les process ne l'exigent pas. Si les process requestnt plus de RAM, le kernel libérera les caches et les tampons si nécessaire pour satisfaire la request.

Cette réponse ServerFault explique comment interpréter l'utilisation de la memory signalée par free .

Vous n'avez pas besoin de le faire.

Il y a deux possibilités, s'il y a quelque chose dans le cache:

  • il faut encore
  • il n'est plus nécessaire

Dans le premier cas, il vaut mieux qu'il rest dans la RAM aussi longtime que possible, ce qui signifie: un autre process a besoin de la RAM. Ensuite, il est éliminé automatiquement sans votre intervention.

Dans le second cas, ça ne dérange pas. Il est inutile de nettoyer le cache et ne peut avoir que des conséquences négatives.

 sync echo 3 > /proc/sys/vm/drop_caches 

Pour plus de détails, regardez ici.

Une autre question est pourquoi voudriez-vous faire cela?

Mon processeur utilise une grande partie de ma memory RAM comme cache et je veux le nettoyer à cause de cela; va-t-il préjuger quelque chose

Oui, une grande partie de ce qui est actuellement dans le cache devra être récupérée depuis le disque. L'access depuis le disque était 100 fois plus lent que l'access en memory. La vitesse de la memory a augmenté, beaucoup plus rapidement que la vitesse du disque, donc il est probable que 10s de milliers de fois plus lent. En conséquence, tout ce qui nécessite un élément présent dans le cache sera plus lent la première fois que vous accéderez aux données vidées. Qu'il soit humainement perceptible dépend de combien doit être récupéré.

La RAM est un produit relativement cher par rapport au disque, mais encore assez bon marché. Le cache n'est pas permanent et les éléments les plus anciens dans le cache seront libérés si besoin est pour exécuter un programme ou mettre en cache quelque chose de plus récent.