Je tape un script shell pour connaître la mémoire physique totale dans certaines boîtes Linux RHEL.
Tout d'abord, je tiens à souligner que je suis intéressé par la mémoire physique totale reconnue par le noyau, pas seulement la mémoire disponible . Par conséquent, évitez les réponses suggérant de lire / proc / meminfo ou d'utiliser les commandes free , top ou sar - Dans tous ces cas, leurs valeurs " mémoire totale " signifient celles de " mémoire disponible ".
La première pensée a été de lire les messages du noyau de démarrage:
Memory: 61861540k/63438844k available (2577k kernel code, 1042516k reserved, 1305k data, 212k init)
Mais dans certaines boîtes de Linux, en raison de l'utilisation du logiciel PowerPath de EMC2 et ses inondations messages de démarrage dans le démarrage du noyau, ce message du noyau de démarrage utile n'est pas disponible, même pas dans le répertoire / var / log / dmesg fichier.
La deuxième option était la commande dmidecode (je suis mis en garde contre la possible discordance entre la RAM reconnue par le noyau et la RAM réelle en raison des limitations de certains noyaux et architectures plus anciens). L'option --memory simplifie le script mais j'ai réalisé que les anciennes versions de cette commande n'avaient pas d' option --memory .
Ma dernière chance était la commande getconf . Il indique la taille de la page mémoire, mais pas le nombre total de pages physiques - la variable système _PHYS_PAGES semble être les pages physiques disponibles, pas le nombre total de pages physiques.
# getconf -a | grep PAGES PAGESIZE 4096 _AVPHYS_PAGES 1049978 _PHYS_PAGES 15466409
Ma question: existe-t-il un autre moyen d'obtenir la quantité totale de mémoire physique, susceptible d'être analysée par un script shell?