Новые 16 ГБ ОЗУ установлены, но я вижу 15.3 в моей системе. Зачем?

Просто переключил 4 ГБ на 16 ГБ оперативной памяти. Однако, когда я смотрю, сколько у меня памяти, это говорит 15.3. Мне просто интересно, почему моя память упала, когда я только что установил 16 ГБ ОЗУ.

системный снимок экрана

Короткий ответ

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

Диагностические команды

Я не ожидаю, что вы запустите все это, но я включил их здесь для справки и полноты. Наиболее важными являются команды 3 и 4. Также обратите внимание, что все размеры будут в базе 2 (например, GiB ), а не в базе 10 (например, в GB ), несмотря на то, что могут быть аббревиатурами устройства.

  1. Вы можете проверить, насколько велики ваши RAM-палки, требующие:

     sudo dmidecode | grep Size | grep MB 
  2. Вы можете проверить, сколько оперативной памяти доступно для общего использования (смотрите Mem и total ):

     free -h 
  3. Вы можете оценить, сколько памяти использует ядро:

     cat /proc/meminfo | grep Slab 
  4. Вы можете проверить «украденную» графическую карту памяти с помощью:

     dmesg | grep stolen 
  5. Вы можете найти определенную аппаратную зарезервированную память, просмотрев:

     dmesg | grep e820 
  6. Вы можете проверить, чтобы убедиться, что вся ваша память работает, запустив memtest

объяснение

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

Пример: взгляд на мой ноутбук

Весьма вероятно, что добавление вывода команды 3 к вашему 15.3GiB приведет к почти точно 16GiB . Так было в моей системе:

  • Установленная оперативная память: 6GiB
  • Сообщается в системных настройках> Подробности: 5.6GiB
  • Выход cat /proc/meminfo | grep Slab cat /proc/meminfo | grep Slab : 316652 kB
  • Преобразован в GiB : 316652/2^20 = 0.3GiB
  • Выход dmesg | grep stolen dmesg | grep stolen : 32768K
  • Преобразован в GiB : 32768/2^20 = 0.03GiB
  • Добавление их вместе: 5.6 + 0.3 + 0.03 = 5.93GiB

Поскольку память Slab не является полной, мы можем предположить, что ядро ​​использует оставшиеся 0.07GiB в местах, которые мы не можем видеть, и поэтому это очень удовлетворительный результат.

Смотрите также

  • Сколько RAM использует ядро? (Unix & Linux)
  • Сокращение зарезервированной памяти (форумы Arch)
  • Почему какая-то ОЗУ отмечена как аппаратное обеспечение, зарезервированное в Windows 7? (Суперпользователь)
  • Почему моя система показывает 3,2 Гбит оперативной памяти? (Unix & Linux)
  • Политика единиц Ubuntu (Ubuntu wiki)