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