Я набираю сценарий оболочки, чтобы узнать общую физическую память в некоторых окнах RHEL linux.
Прежде всего, я хочу подчеркнуть, что меня интересует общая физическая память, распознаваемая ядром, а не только доступная память . Поэтому, пожалуйста, избегайте ответов, предлагающих прочитать / proc / meminfo или использовать команды free , top или sar - во всех этих случаях их значения « общая память » означают значения « доступная память ».
Первой мыслью было прочитать сообщения загрузочного ядра:
Memory: 61861540k/63438844k available (2577k kernel code, 1042516k reserved, 1305k data, 212k init)
Но в некоторых Linux-системах из-за использования программного обеспечения EMC2 PowerPath и его лавинных загрузочных сообщений при запуске ядра это полезное загрузочное сообщение ядра недоступно, даже в файле / var / log / dmesg .
Второй вариант - это команда dmidecode (меня предупреждают о возможном несоответствии ОЗУ, распознаваемой ядром, и реальной ОЗУ из-за ограничений некоторых старых ядер и архитектур). Параметр --memory упрощает сценарий, но я понял, что более старые версии этой команды не имеют параметра --memory .
Моим последним шансом была команда getconf . Он сообщает размер страницы памяти, но не общее количество физических страниц - системная переменная _PHYS_PAGES кажется доступными физическими страницами, а не общим количеством физических страниц.
# getconf -a | grep PAGES РАЗМЕР СТРАНИЦЫ 4096 _AVPHYS_PAGES 1049978 _PHYS_PAGES 15466409
Мой вопрос: есть ли другой способ получить общий объем физической памяти, пригодный для анализа с помощью сценария оболочки?