J'ai un serveur Red Hat Linux domestique relativement petit (environ 8 Go de RAM). Je ne l'utilise pas pour autre chose que pour exécuter des applications locales pour garder une trace de diverses choses. Les seules choses réelles qui s'exécutent sur la boîte sont une base de données et un serveur Web.
J'ai remarqué que lors de la vérification des compteurs système à l'aide d'outils comme NMON et TOP, la mémoire totale libre du système est relativement faible (de l'ordre de quelques centaines de Mo), tandis que la mémoire active de la base de données et du serveur Web est encore faible (seulement consommant 3 Go combinés). Même en incluant tous les autres processus en cours d'exécution, la mémoire totale consommée est inférieure à 4 Go.
Pourquoi Red Hat Linux rapporte-t-il moins de mémoire libre que la mémoire totale moins la somme totale de la mémoire utilisée des processus en cours?
la source
Linux mettra activement en cache les accès au système de fichiers en mémoire pour accélérer les temps d'accès au disque. Il n'y a rien à craindre.
Exécuter free -m sur la boîte vous donnera une meilleure idée de l'endroit où la mémoire est utilisée.
Ci-dessous, la sortie tirée de l'une de mes boîtes. La mémoire disponible est de 147 Mo avec près de 4 Mo de mémoire cache pour les demandes d'accès au système de fichiers.
la source
Incluez-vous également les champs "tamponnés" et "mis en cache"?
la source
Avec linux, regardez Committed_AS dans / proc / meminfo, c'est la quantité de mémoire (réel + swap) que le noyau a réellement promis d'exécuter des processus.
Linux utilise la mémoire très efficacement, tous les blocs non promis à certains processus sont utilisés pour mettre en cache les fichiers récemment / fréquemment consultés. Ainsi, il est typique que Linux utilise 90% de toute la mémoire physique disponible peu de temps après le démarrage.
Regardez ce que le noyau s'est engagé à fournir .. et une utilisation sale (swap), cela vous donne une meilleure image globale.
Si vous avez besoin d'ajuster ce comportement, veuillez mettre à jour votre question :)
Il s'agit du MO standard pour Linux. Certaines distributions modifient la gestion de la mémoire pour répondre à leurs besoins via sysctl. Cependant, ce que vous signalez est assez typique de tous.
la source
Quel type de noyau utilisez-vous sur le système? Un noyau 32 bits ne rapportera qu'environ 3,6 Go de mémoire, sauf s'il est compilé avec PAE activé.
En disant que, s'il s'agit d'une version moderne de Redhat Enterprise Linux (ou CentOS) - à partir de la v3 - le noyau 32 bits par défaut aura cette option activée.
Si vous pouviez publier la sortie de la commande «libre» détaillée ci-dessus, nous serons en mesure de voir si c'est le problème ou non.
la source