Estoy escribiendo un script de shell para averiguar la memoria física total en algunos cuadros de Linux RHEL.
En primer lugar, quiero enfatizar que estoy interesado en la memoria física total reconocida por el núcleo, no solo en la memoria disponible . Por lo tanto, evite las respuestas que sugieran leer / proc / meminfo o usar los comandos free , top o sar . En todos estos casos, sus valores de " memoria total " significan " memoria disponible ".
El primer pensamiento fue leer los mensajes del núcleo de arranque:
Memory: 61861540k/63438844k available (2577k kernel code, 1042516k reserved, 1305k data, 212k init)
Pero en algunos cuadros de Linux, debido al uso del software PowerPath de EMC2 y sus mensajes de inicio de inundación en el inicio del kernel, ese útil mensaje de kernel de inicio no está disponible, ni siquiera en el archivo / var / log / dmesg .
La segunda opción era el comando dmidecode (se me advierte sobre la posible falta de coincidencia de RAM reconocida por el núcleo y RAM real debido a las limitaciones de algunos núcleos y arquitecturas más antiguas). La opción --memory simplifica el script pero me di cuenta de que las versiones anteriores de ese comando no tienen la opción --memory .
Mi última oportunidad fue el comando getconf . Informa el tamaño de la página de memoria, pero no el número total de páginas físicas: la variable de sistema _PHYS_PAGES parece ser las páginas físicas disponibles, no las páginas físicas totales.
# getconf -a | grep PÁGINAS PÁGINA 4096 _AVPHYS_PÁGINAS 1049978 _PHYS_PÁGINAS 15466409
Mi pregunta: ¿Hay otra forma de obtener la cantidad total de memoria física, adecuada para ser analizada por un script de shell?