Оперативная память (RAM)

Быстрая рабочая память компьютера, где хранятся запущенные программы и данные, с которыми они работают прямо сейчас.

Оперативная память (RAM, Random Access Memory) — рабочий стол компьютера. В ней находятся запущенные программы и данные, с которыми они работают прямо сейчас: открытые документы, ответы базы данных, кэш, вкладки браузера. Оперативная память очень быстрая, но энергозависимая: при выключении питания все ее содержимое пропадает. Долговременно данные хранятся на накопителях — SSD или жестких дисках.

Иерархия памяти

Уровень Время доступа (порядок) Объем (порядок)
Регистры и кэш процессора Доли наносекунды — наносекунды Килобайты — десятки мегабайт
Оперативная память Около 100 наносекунд Гигабайты — терабайты
SSD NVMe Десятки микросекунд Терабайты
Жесткий диск Миллисекунды Десятки терабайт

Каждый уровень вниз — дешевле и больше, но в разы медленнее. Поэтому системы стараются держать самые нужные данные как можно ближе к процессору, а кэширование в памяти — один из главных способов ускорения. Хранилище Redis, например, держит все данные именно в оперативной памяти.

Характеристики

  • Объем — сколько данных помещается одновременно.
  • Поколение и частота — DDR4, DDR5: новее — выше пропускная способность.
  • ECC — память с исправлением ошибок. В серверах она обязательна: случайная ошибка в одном бите может незаметно испортить данные в базе.

Что происходит, когда памяти не хватает

  • Подкачка (swap). Операционная система выгружает редко используемые данные на диск. Это спасает от падения, но работа замедляется в сотни раз.
  • Аварийное завершение. Если памяти не хватает совсем, ядро Linux принудительно завершает самый «прожорливый» процесс — часто это база данных или приложение.

Проверить память на сервере Linux можно командой:

# Командная строка Linux
free -h

Важно смотреть не на «свободно», а на «доступно» (available): Linux занимает свободную память под кэш файлов и отдает ее программам по первому требованию.

Память и приложения

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