Вопрос или проблема
Какая команда для определения размера ОЗУ в компьютере? Я хочу увидеть результат в МБ.
В терминале вы можете использовать:
free -m
Из ман
страницы:
-m
,--mebi
Отобразить объем памяти в мебибайтах.
--mega
Отобразить объем памяти в мегабайтах. Предполагает--si
.
Примечание: Килобайт (kB) равен 1000 байтам.
Откройте терминал (CTRL + ALT + T)…
Запустите следующую команду, чтобы увидеть информацию об ОЗУ в КБ (1 КБ равен 1024 байтам).
free
Запустите следующую команду, чтобы увидеть информацию об ОЗУ в МБ (1 МБ равен 1024 КБ).
free -m
Запустите следующую команду, чтобы увидеть информацию об ОЗУ в ГБ (1 ГБ равен 1024 МБ).
free -g
Или вы можете запустить следующую команду, чтобы увидеть больше информации по тому же запросу:
free -h
Нажмите на значок питания/настройки (Системное меню) в правом верхнем углу экрана и выберите Информация об этом компьютере. Вы увидите общий объем доступной памяти в ГиБ. Умножьте значение на 1024, чтобы получить размер в МиБ.
Это значение (и значение, которое отображается как Общее в выводе free -m
в консоли) — это общий объем физической ОЗУ, за вычетом объема, отведенного для внутреннего ГП, если ваш компьютер его имеет.
Чтобы увидеть общий объем установленной физической ОЗУ, вы можете запустить sudo lshw -c memory
, который покажет вам каждую отдельную плашку ОЗУ, установленную в системе, а также общий размер для Системной памяти. Это значение, вероятно, будет представлено как ГиБ, которое вы также можете умножить на 1024, чтобы получить значение МиБ.
Доступная физическая память в МиБ:
echo $(($(getconf _PHYS_PAGES) * $(getconf PAGE_SIZE) / (1024 * 1024)))
Доступная виртуальная память в МБ:
echo $(($(getconf _AVPHYS_PAGES) * $(getconf PAGE_SIZE) / (1024 * 1024)))
..или используйте /proc/meminfo:
grep MemTotal /proc/meminfo | awk '{print $2 / 1024}'
Чтобы увидеть информацию о физических чипах, вы можете использовать dmidecode
, чтобы извлечь информацию типа DMI 17 (Устройство памяти):
sudo dmidecode -t 17
это информирует вас обо всех установленных устройствах памяти, включая тип, скорость, производителя, форм-фактор и многое другое. У вас также есть sudo dmidecode -t memory
, который дает немного больше информации.
Если вы хотите команду, которая просто выводит численное значение общей памяти в МБ, вы можете использовать:
free --mega | awk '/^Mem:/{print $2}'
Это число представляет общий объем ОЗУ, установленного в системе, в МБ, например:
free --mega | awk '/^Mem:/{print $2}'
33033
Что здесь, похоже, отсутствует, так это метод отображения фактической физической памяти.
free
не отображает фактическую физическую память. Из man free
под total
:
Общая полезная память (MemTotal и SwapTotal в /proc/meminfo). Это включает физическую и обменную память за вычетом нескольких зарезервированных битов и двоичного кода ядра.
% LANG=C free -b
total used free shared buff/cache available
Mem: 33208266752 4826804224 25715757056 609566720 3756187648 28381462528
Swap: 8589930496 0 8589930496
% printf '33208266752\n' | numfmt --to=iec --format '%0.8f'
30,92760849G
Что не соответствует 32ГиБ, за которые я заплатил.
Чтобы это исправить, вы можете использовать lshw
для извлечения фактической физической памяти в байтах и передать вывод в numfmt
(параметр --format '%.8f'
там просто для того, чтобы показать, что я не обманываю и что округление не происходит в фоновом режиме):
sudo lshw -json 2>/dev/null |
jq -r '.children[] | select(.id=="core").children[] | select(.id=="memory").size' |
numfmt --to=iec --format '%.8f'
% sudo lshw -json 2>/dev/null |
jq -r '.children[] | select(.id=="core").children[] | select(.id=="memory").size' |
numfmt --to=iec --format '%.8f'
32,00000000G
Это отобразит фактическую физическую память с использованием стандарта IEC (который обычно используется поставщиками для маркировки / продвижения DIMM – 16ГиБ, 32ГиБ, 64ГиБ и так далее) – так что вы можете спокойно знать, что поставщик не отрезал часть памяти от ваших банок.
Если вы хотите отобразить фактическую физическую память, используя стандарт SI:
sudo lshw -json 2>/dev/null |
jq -r '.children[] | select(.id=="core").children[] | select(.id=="memory").size' |
numfmt --to=si --format '%.8f'
% sudo lshw -json 2>/dev/null |
jq -r '.children[] | select(.id=="core").children[] | select(.id=="memory").size' |
numfmt --to=si --format '%.8f'
34,35973837G
.
Ответ или решение
Проверка размера оперативной памяти (RAM) на компьютере может потребоваться для различных целей, от диагностики до оптимизации производительности. В этой статье мы рассмотрим несколько методов, чтобы узнать размер установленной оперативной памяти, включая командные строки и графические интерфейсы, и как получить результаты в мегабайтах (MB).
1. Использование команды free
Самый простой способ узнать объем оперативной памяти — это использовать команду free
, доступную в большинстве Linux-систем. Линия для получения данных в мегабайтах выглядит следующим образом:
free -m
Этот командный вызов выведет информацию о памяти в формате, понятном для пользователя. Опция -m
указывает, что информация должна быть представлена в мегабайтах.
2. Получение только числового значения
Если вам нужно получить только числовое значение общего объема памяти в мегабайтах, вы можете воспользоваться следующей командой:
free --mega | awk '/^Mem:/{print $2}'
Это выдаст общее количество установленной оперативной памяти без лишней информации.
3. Использование дополнительных команд
Кроме команды free
, существует множество других команд, которые могут предоставить информацию о вашей оперативной памяти:
-
Команда
lshw
позволяет получить детальную информацию о установленной памяти:sudo lshw -c memory
Здесь будет представлено количество, а также другие характеристики, такие как тактовая частота и производитель.
-
Команда
dmidecode
выводит информацию на уровне оборудования:sudo dmidecode -t 17
Вы получите детальную информацию о каждом модуле памяти, включая его размер и тип.
4. Альтернативные методы получения информации
Если вы хотите получить физическую память, доступную в мегабайтах, вы можете использовать команды, такие как:
echo $(($(getconf _PHYS_PAGES) * $(getconf PAGE_SIZE) / (1024 * 1024)))
или
grep MemTotal /proc/meminfo | awk '{print $2 / 1024}'
Оба из этих методов помогут вам узнать текущий объем физической памяти.
5. Графические методы
Если вы предпочитаете использовать графический интерфейс, выполните следующие действия:
- В верхнем правом углу экрана нажмите на иконку питания/настройки и выберите "О компьютере". Здесь вы увидите общий объем оперативной памяти в гигабайтах. Для перевода в мегабайты умножьте это значение на 1024.
Заключение
Знание объема оперативной памяти на вашем устройстве — важная информация для управления производительностью и ресурсов системы. Вы можете использовать различные команды и графические интерфейсы для получения необходимой информации. Независимо от выбранного метода, вы сможете легко увидеть размер вашей оперативной памяти и использовать её в дальнейшей оптимизации системной производительности.