Оперативная память (ОЗУ — оперативное запоминающее устройство или RAM — Random Access Memory) — это та память, в которой хранятся исполняемые процессором программы — машинный код, файлы и любые данные для оперативной работы с ними, она энергозависима, то есть очищается при перезапуске или выключении ПК. При сохранении файла, после оперативной работы с ним, происходит его запись в ПЗУ — постоянное запоминающее устройство — жесткий диск или любой другой энергонезависимый накопитель.

От объема «оперативки» зависит количество программ или же, например, вкладок браузера, которые могут быть запущены одновременно в системе. Что интересно: при переходе компьютера в режим сна операционная система записывает весь массив данных, содержащихся в ОЗУ, в полном объеме (дамп) на жесткий диск, а после пробуждения эти данные возвращаются в «оперативку». Именно поэтому после выхода из режима сна мы получаем рабочее окружение с уже запущенными программами, которые были активны перед переходом в режим гибернации (сна).

Исходя из вышенаписанного следует вывод, что ОЗУ — важная часть компьютера, к информации о которой необходимо иметь доступ любому пользователю системы Ubuntu. Поэтому сегодня мы рассмотрим такие вопросы, как:

  • Сколько доступно свободной оперативной памяти и каков ее полный объем
  • Какой тип у установленной оперативной памяти
  • Есть ли ошибки в оперативной памяти

Команды в статье приведены для исполнения их в терминале Ubuntu — Как открыть терминал

Объем оперативной памяти

Для того, чтобы получить информацию об общем объеме и количестве занятой/доступной памяти мы воспользуемся командой free с флагом -h поскольку при обычном выводе данной команды вывод объема производится в килобайтах, что не совсем удобочитаемо для пользователя. Флаг -h позволит отображать количественные единицы объема в мегабайтах и гигабайтах.

Исполним в терминале команду:

free -h

Полученный результат:

Вывод команды free -h в терминале Ubuntu

Как мы можем видеть — вывод команды дополнен, помимо данных об объемах ОЗУ, еще и информацией о файле подкачки. При необходимости данную команду можно использовать и для мониторинга за количеством оперативной памяти в реальном времени. Для этого нужно добавить к флагу -h еще один: -s [секунды]. Как аргумент к данному флагу указывается время в секундах, через которое следует обновлять информацию о состоянии памяти:

free -hs 3

 Вывод будет следующим:

Мониторинг ОЗУ через терминал

Обновленные данные в нашем примере будут выводиться каждые три секунды. Для того, чтобы закончить вывод данных в терминал следует нажать сочетание клавиш CTRL+C.

В моем примере наименования всех строк и столбцов самоочевидны, поскольку указаны на русском языке. Но при работе на удаленном сервере вывод команды, скорее всего, будет представлен на английском, поэтому я приведу краткую расшифровку подписей значений:

Строки:

  • Mem – физическая память
  • Swap – виртуальная память

Столбцы:

  • total – общий объем ОЗУ
  • used – кол-во занятой памяти
  • free – свободная память
  • shared – разделяемая память*
  • buff/cache – зарезервированное системой место

*Разделяемая память (англ. Shared memory) является самым быстрым средством обмена данными между процессами. После создания разделяемого сегмента памяти любой из пользовательских процессов может подсоединить его к своему собственному виртуальному пространству и работать с ним, как с обычным сегментом памяти. (цитата из Wikipedia)

Тип и частота оперативной памяти

Необходимость узнать тип установленной оперативной памяти может возникнуть при покупке дополнительных модулей. Ведь различные типы модулей несовместимы между собой физически. То есть, модуль памяти DDR2 невозможно установить в разъем, например, для DDR3.

Частота ОЗУ означает — сколько циклов чтения/записи память способна выполнить за одну секунду. Обычно максимальная частота, на которой способна работать оперативная память, определяется процессором или чипсетом материнской платы.

Для того, чтобы узнать тип и частоту оперативной памяти используется следующая команда:

sudo dmidecode --type memory

 

Вывод команды sudo dmidecode —type memory

В выводе команды присутствует информация о каждом установленном модуле памяти в отдельности. Для получения необходимой нам информации найдем в нем следующие строки:

  • Type: DDR4
  • Speed: 2133 MT/s

В списке вывода это будет выглядеть следующим образом:

Handle 0x0043, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x0041
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: ChannelA-DIMM1
Bank Locator: BANK 1
Type: DDR4
Type Detail: Synchronous
Speed: 2133 MT/s
Manufacturer: Kingston
Serial Number: 16334813
Asset Tag: 9876543210
Part Number: KHX2133C13D4/8GX
Rank: 2
Configured Clock Speed: 2133 MT/s
Minimum Voltage: Unknown
Maximum Voltage: Unknown
Configured Voltage: 1.2 V

Т.к. на ПК невозможно установить модули памяти с разным типом, а их частота обычно (при грамотной сборке ПК) совпадает, то, скорее всего, достаточно будет посмотреть информацию для любого из модулей в выводе команды.

Значение «Type» в данном выводе указывает на тип оперативной памяти (у меня в примере — DDR4), а «Speed» — на частоту (в моем примере 2133 мегатранзакции в секунду).

Для сокращения результатов вывода можно пропустить из через утилиту grep. Так, для поиска информации о типе ОЗУ можно выполнить команду:

sudo dmidecode --type memory | grep -i 'Type:'

А для частоты:

sudo dmidecode --type memory | grep -i 'Speed:'

Компактный вывод dmidecode

Проверка оперативной памяти на наличие ошибок

Иногда можно столкнуться с поломкой полупроводников оперативной памяти. Обычно это выражается в нестабильной работе программ, зависаниях и т.п. Такие поломки способны повлиять на производительность оперативной памяти.  Такую поломку устранить не получится, можно только заменить модуль на новый. Поэтому при зависаниях ПК или отдельных программ необходимо убедиться в целостности ОЗУ, чтобы не потратить деньги впустую, приобретя новые модули памяти взамен рабочим.

Для проверки оперативной памяти можно использовать программу MemTester. Чтобы ее установить нужно выполнить следующую команду в терминале:

sudo apt install memtester

Установка memtester

Для примера запустим проверку блока ОЗУ, размером в 100 мегабайт состоящую из двух циклов:

sudo memtester 100M 2

Результат работы memtester

Данная проверка проводится для блока ОЗУ размером в 100МБ (указанных нами) два раза. Как видим у меня все в порядке. При использовании данной утилиты важно помнить, что нельзя указывать размер блока проверки больше, чем доступно свободной оперативной памяти на момент начала проверки.

Для более тщательного тестирования памяти можно воспользоваться утилитой memtest86+ из меню загрузчика Grub. Для того, чтобы попасть в меню Grub при запуске ПК следует держать нажатой клавишу Shift или, в некоторых случаях, ESC. Если загрузилось не меню, а консоль, то нужно выполнить команду normal.

Меню загрузчика Grub

После выбора пункта меню «Memory Test (memtest86+)» начнется проверка памяти:

Проверка памяти memtest86+

По окончанию первого цикла проверки снизу экрана будет отображена информация с результатами проверки:

Результат работы memtest86+