Доступно физической памяти что это
Перейти к содержимому

Доступно физической памяти что это

  • автор:

Почему доступна не вся оперативная память в Windows

Доступна не вся оперативная память в Windows

Если кликнуть по иконке «Этот компьютер» правой кнопкой мыши и выбрать Свойства, то можно обнаружить, что компьютер видит всю установленную оперативную память, но доступно меньше. Объясню, что значит «доступно оперативной памяти», почему так происходит и как с этим бороться.

  • Настройки биоса
  • Ограничение памяти в параметрах загрузки Windows
  • Версия Windows не поддерживает установленный объем памяти
  • Процессор не поддерживает объем памяти
  • Память используется интегрированной видеокартой
  • Аппаратная проблема чтения планки оперативной памяти
  • Некорректные параметры Windows

«Доступно оперативной памяти» — это значит системой используется именно тот объем памяти, что доступно. Причины, по которым доступная оперативная память меньше установленной, и методы их решения описал ниже по категориям.

Настройки биоса

Пожалуй самая распространенная проблема, когда установлена оперативная память 8 гб (или 6 гб), а доступно 4 гб, может и меньше.

Оперативная память 8 гб, а доступно меньше

Вариант 1. Не раздумывая перезагружаем компьютер, при включении входим в биос. Переходим во вкладку Advanced, выбираем Chipset Configuration,

Увеличение доступной оперативной памяти

находим строку Memory Remap Feature, меняем Disabled на Enabled.

Увеличение доступной оперативной памяти

Сохраняем настройки и выходим нажав клавишу F10 . Расположение «Memory Remap Feature» может отличаться от указанного выше, так как биосы разные. После загрузки Windows снова проверяем доступную память, должно быть вот так.

Оперативная память 8 гб, а доступно меньше

Вариант 2. Если в биосе настройки оперативной памяти выставлены Вручную , то выберите вместо этого Auto (Автоматические). Или же, если не удается найти данный параметр, то сделайте сброс BIOS в Default (по-умолчанию), это приведет к сбросу параметров в заводское состояние. Однако, возможно, потребуется настройка отдельных элементов. Перед выходом из интерфейса, не забудьте сохранить настройки.

Ограничение памяти в параметрах загрузки Windows

Еще одна часто встречаемая причина, это когда операционная система в параметрах загрузки ограничивает использование всей оперативной памяти. Исправить можно просто, необходимо лишь проделать указанные действия:

Открываем окно «Выполнить» с помощью комбинации клавиш Win + R , вводим команду msconfig и жмем Enter .

В окне Выполнить команда msconfig

Переходим во вкладку «Загрузка», кликните на кнопку Дополнительные параметры .

Параметры загрузки в конфигурации Windows

Снимаем галочку напротив надписи «Максимум памяти» и нажимаем ОК .

Ограничение оперативной памяти в конфигурации Windows

Закрываем оставшуюся страницу «Загрузки» нажав ОК , перезагружаем систему, проверяем объем доступной памяти.

Версия Windows не поддерживает установленный объем памяти

Если windows доступна не вся оперативная память, то в первую очередь стоит обратить внимание на разрядность операционной системы, к примеру x86 (она также называется 32-битная) поддерживает не больше 4 гб озу, и даже если вы установите 8 гб, использовать она сможет максимум 4гб.

Многие пользователи и не подозревают, что каждая версия операционной системы Windows поддерживает определенный максимальный объем оперативной памяти. Как отметил выше, x86 использует максимальный объем 4 гб озу во всех версиях Windows. А теперь давайте ознакомимся с поддержкой оперативной памяти в x64 разрядных операционных системах:

Windows 7

  • Стартовая x86 2 гб
  • Домашняя x64 8 гб
  • Домашняя расширенная x64 16 гб
  • Профессиональная x64 192 гб
  • Корпоративная x64 192 гб
  • Максимальная x64 192 гб

Windows 8/8.1

  • Домашняя x64 128 гб
  • Профессиональная x64 512 гб
  • Корпоративная x64 512 гб

Windows 10

  • Домашняя x64 128 гб
  • Профессиональная x64 512 гб

Windows 11

  • Домашняя (Home) x64 128 гб
  • Профессиональная (Pro) x64 2 тб
  • Профессиональная для рабочих станций (Pro for Workstations) x64 6 тб
  • Для образовательных учреждений (Education) x64 2 тб
  • Корпоративная (Enterprise) x64 6 тб

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

Процессор не поддерживает объем памяти

Стоит обратить еще на один момент — центральный процессор (CPU). Многие процессоры прошлых поколение могут использовать не более 8 или 16 гб памяти. Информацию о поддержке максимального объема памяти можно посмотреть на официальном сайте производителя cpu.

Память используется интегрированной видеокартой

И пожалуй, еще вариант, почему доступна не вся оперативная память, это использование встроенным графическим ядром под видеопамять.

Интегрированная видеокарта

Как правило, интегрированная видеокарта забирает под видеопамять 128Мб-2Гб. То есть, если у вас установлено 4 гб оперативной памяти, а доступно 3,87 гб, то делайте вывод — подъедает встроенная видеокарта. Все это не критично и можно просто закрыть на это глаза.

Оперативная память используется интегрированной видеокартой

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

Настройка видеопамяти в BIOS

Настройка видеопамяти в BIOS

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

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

Дело в том, что по какой-то причине компьютер может увести оперативную память в короткое замыкание или что-то вроде того. В этом случае он покажет в операционной системе, к примеру — 16Гб (8Гб доступно), а в биосе 8Гб и всё. Выключите компьютер, обесточьте его от розетки, нажмите кнопку запуска для разряда блока питания, выньте все планки озу. Далее в обратном порядке, вставьте все планки памяти, подключите к электросети, включите и проверьте.

Некорректные параметры Windows

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

Ну вот пожалуй и все, теперь вы знаете причины почему доступная оперативная память меньше установленной. Делитесь вашей ситуацией, а я постараюсь помочь.

Лучшее «Спасибо» — ваш репост

Что такое «полный объем физической памяти» и «доступная физическая память»

полный объем это сколько вообщем например 1024мб, а доступная память это память которая незанята процессами системы, например из 1024 занято 400 значит доступная память составляет 624мб.

Похожие вопросы
Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Не доверяйте информации о памяти в Диспетчере задач

За много лет использования Windows я привык к Диспетчеру задач. Оттуда я убил сотни приложений за плохое поведение. Там же смотрел, кто из них пожирает ресурсы. Пока я не начал работать с машинами, у которых сотни гигабайт памяти, а у приложений соответствующие запросы. В этой статье обсудим, почему Диспетчер задач плохо отслеживает память и что использовать взамен. Во-первых, о механизме выделения памяти в Windows.

tl;dr: Диспетчер задач скрывает информацию о подкачке (paged memory) и виртуальном пространстве процесса. Лучше используйте Process Explorer из комплекта Sysinternals.

Выделение памяти в Windows

При запуске нового процесса ОС присваивает этому процессу непрерывное адресное пространство. В 32-разрядных системах это пространство может составить 4 ГБ, обычно 2 ГБ для ядра, а остальное для процесса. В этой статье проигнорируем использование памяти ядром. В 64-разрядных системах зарезервированная процессом память может вырасти до колоссальных 64 ТБ. Что этот процесс будет делать с несколькими терабайтами памяти, когда у нас на самом деле жалкие 8 ГБ? Сначала нужно понять, что такое зарезервированная и переданная память.

Зарезервированная и переданная память

Не все части этого огромного адресного пространства равны. Некоторые части адресного пространства процесса фактически поддерживаются либо физической оперативной памятью, либо диском (см. ниже). Зарезервированная память считается переданной (Committed), если ОС предлагает вам эту память при попытке её использовать. Остальная часть адресного пространства, а это подавляющее большинство, остаётся доступным для резервирования. То есть не всегда ОС может предложить вам этот блок памяти для использования: она может сделать копию на диске (файл подкачки), например, а может и не сделать. В C++ резервирование памяти осуществляется вызовом VirtualAlloc. Так что переданная память является аппаратно ограниченным ресурсом в ОС. Давайте посмотрим.

Файл подкачки ОС

Файл подкачки — замечательная идея. В принципе, ОС понимает, что некоторые части памяти особо не используются вашим приложением. Зачем тратить на него реальную физическую память? Вместо этого процесс в ядре записывает этот неиспользуемый фрагмент на диск. Пока к нему не обратятся снова, только тогда он вернётся в память.

Для более подробного объяснения, как работает память в Windows, рекомендую лекцию «Тайны управления памятью» Марка Руссиновича.

Отслеживание памяти

Здесь много за чем нужно следить и анализировать. К кому обратиться? Конечно, к Диспетчеру задач!

Память в RAM обычно называют рабочим набором (Working Set), в то время как всю выделенную память обычно именуют Private Bytes. Библиотеки DLL вносят путаницу в определения, поэтому пока их проигнорируем. Иначе говоря:

Private Bytes [выделенная память] = рабочий набор + файл подкачки

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

И это число, на которое я всё время смотрел. Откуда я знал, что в Диспетчере задач информация о переданной памяти находится в колонке Commit Size . Я так и не смог там найти информацию о виртуальной памяти.

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

Эффективные метрики памяти

К счастью, есть много других ресурсов для отслеживания ресурсов. На каждой машине под Windows установлен PerfMon (Системный монитор), который выдаёт очень подробную информацию о каждом процессе и системе в целом:

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

Бум! Visual Studio, чего это ты до сих пор в 32-битном режиме (обратите внимание на его Virtual Size)? Пиковое использование памяти на моём компьютере на уровне 89% от максимума, ещё терпимо. Это пригодится позже.

Дополнение: многие указали на другие удобные инструменты, в том числе VMMap и RAMMap.

Отладка по информации о памяти

К счастью, это не какие-то ненужные мелочи ОС. Актуальная информация о потреблении памяти многократно помогала мне в отладке разных проблем.

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

Даже если память будет иногда использоваться, важно понимать, что это дорогой ресурс, так что идти по такому пути ни в коем случае нельзя. Здесь появятся и утечки памяти.

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

  • Диспетчер задач
  • Process Explorer
  • Sysinternals
  • управление памятью
  • VMMap
  • RAMMap
  • Отладка
  • Разработка под Windows
  • Софт

Как узнать общий объем физической памяти (RAM) в Linux

image

Иногда возникает необходимость проверить общий объём памяти сервера, на котором запущена ОС Linux, или же данные о памяти требуются для сценариев командной оболочки. К счастью, есть множество инструментов, которые нам в этом помогут. В этом руководстве приводятся различные команды и утилиты для определения общего объёма физической памяти.

2. Команда free

free — самая простая в использовании команда из подборки. С её помощью выводятся данные по использованию физической и SWAP-памяти — по умолчанию в стандартном потоке вывода. Команда free — один из самых распространённых способов быстро проверить объём оперативной памяти, поскольку она доступна в большинстве дистрибутивов Linux . Достаточно ввести её в терминале без всяких флагов:

$ free
 total used free shared buff/cache available Mem: 8021048 1320432 5689744 335556 1010872 6121932 Swap: 0 0 0

Как видите, объём физической памяти указан в байтах. Однако, эти же данные можно вывести в удобочитаемом формате, добавив флаг -h или –human :

$ free -h
 total used free shared buff/cache available Mem: 7.6Gi 1.3Gi 5.4Gi 318Mi 985Mi 5.8Gi Swap: 0B 0B 0B

Как видно из полученных результатов, общий объём оперативной памяти составляет 7,6 ГБ. Есть и другие опции, с помощью которых можно привести выводимые данные в нужный формат: –kilo, –mega, –Giga и так далее. Ещё есть интересная опция -s :

$ free -h -s 5

Флаг -s обозначает секунды, и в этом случае команда free выведет данные об использовании оперативной памяти за каждые пять секунд. Опция особенно полезна, если отслеживать использование памяти нужно с заданным интервалом . Останавливается процесс сочетанием горячих клавиш Ctrl +C.

3. Команда vmstat

Как и команда free , vmstat (статистика виртуальной памяти) также доступна в большинстве дистрибутивов Linux. По умолчанию при выполнении команды vmstat выводятся данные о свободной памяти, памяти используемой в качестве буферов и кэша, SWAP-памяти, использовании процессора, блочных устройств и системы в целом:

$ vmstat -w
--procs-- -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 5352900 56816 1053708 0 0 162 73 328 1087 18 4 78 0 0

Флаг -w или –wide позволяет отобразить результат в развёрнутом, удобном для чтения формате. Поскольку нас интересует общий объём оперативной памяти, добавим флаг -s или –stats :

$ vmstat -s
 8021048 K total memory 1564516 K used memory 305336 K active memory 1962636 K inactive memory 5391588 K free memory 58224 K buffer memory 1006720 K swap cache 0 K total swap 0 K used swap 0 K free swap 76393 non-nice user cpu ticks 5 nice user cpu ticks 14122 system cpu ticks 337834 idle cpu ticks 1790 IO-wait cpu ticks 1463 IRQ cpu ticks 614 softirq cpu ticks 0 stolen cpu ticks 617253 pages paged in 310410 pages paged out 0 pages swapped in 0 pages swapped out 1426200 interrupts 4722588 CPU context switches 1625563254 boot time 1949 forks 

Первая запись в результатах — общий объём памяти RAM. Если нужны не все данные, можно использовать grep для получения только требуемой записи:

$ vmstat -s | grep -i 'total memory' | sed 's/ *//'
8021048 K total memory

4. Команда top

top представляет собой диспетчер задач в виде командной строки с выводом в режиме реального времени . С её помощью можно просмотреть активные процессы в виде удобной таблицы. Также она выводит данные по использованию процессора, оперативной памяти и системы в целом. Чтобы запустить такой диспетчер задач, достаточно выполнить команду top :

top - 15:18:13 up 57 min, 1 user, load average: 3.40, 3.26, 2.04 Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie %Cpu(s): 17.2 us, 3.6 sy, 0.0 ni, 77.5 id, 0.3 wa, 0.9 hi, 0.5 si, 0.0 st MiB Mem : 7833.1 total, 4665.9 free, 1782.3 used, 1384.8 buff/cache top - 15:18:49 up 57 min, 1 user, load average: 2.61, 3.08, 2.03 Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie top - 15:18:58 up 58 min, 1 user, load average: 2.45, 3.02, 2.02 MiB Swap: 0.0 total, 0.0 free, 0.0 used. 5324.5 avail Mem

Вверху, рядом с полем Mem , приводятся данные по физической памяти: общий объём RAM 7833 МБ.

5. Утилита dmidecode

Утилита dmidecode в удобочитаемом формате выводит сведения об аппаратных ресурсах: спецификации, серийные номера, версии BIOS. Данные по оборудованию извлекаются из таблицы DMI . С помощью утилиты можно получить ценные сведения о системе, например, максимальный объём поддерживаемой памяти.

5.1. Установка dmidecode

Утилита dmidecode не на всех дистрибутивах Linux установлена по умолчанию , так что начнём с её установки. Установить dmidecode можно непосредственно из репозитория дистрибутива с помощью менеджера пакетов.
В дистрибутивах, основанных на Ubuntu, возможна установка пакета с помощью инструмента apt :

# apt install dmidecode

Для RHEL, Fedora и CentOS можно использовать yum :

# yum install dmidecode

Если дистрибутив основан на Arch, с этой задачей справится pacman :

# pacman -Sy dmidecode

5.2. Использование dmidecode

Как только установка завершена, выполним команду dmidecode из терминала:

# dmidecode

Чтобы выполнить dmidecode , нам потребуются корневые привилегии . После выполнения мы получим подробные сведения об аппаратных ресурсах. Будет много данных по оборудованию, но нас интересует только общий объём памяти.

К счастью, мы можем добавить к команде опцию –type и указать интересующие нас компоненты: BIOS, память, процессор, температуру и так далее. Опция –type требует введения номера типа записи DMI.

В нашем случае это запись DMI о памяти, и получить к ней доступ можно, введя следующие значения: 5, 6, 16, 17, 18, 19, 20, 21 и 22. Из этого перечня выбираем 19, поскольку именно так обозначаются устройства оперативной памяти, подключённые к материнской плате:

# dmidecode --type 19
# dmidecode 3.3 Getting SMBIOS data from sysfs. SMBIOS 3.0.0 present. Handle 0x0049, DMI type 19, 31 bytes Memory Array Mapped Address Starting Address: 0x00000000000 Ending Address: 0x001FFFFFFFF Range Size: 8 GB Physical Array Handle: 0x0044 Partition Width: 1

Из результатов следует, что у нас только один модуль RAM размером 8 ГБ, установленный в один из слотов для оперативной памяти.

6. Виртуальный файл /proc/meminfo

Директория /proc относится к особому типу директорий, содержащих виртуальные файлы. Эти виртуальные файлы позволяют заглянуть в ядро, процессы и конфигурации Linux . Они не занимают места на диске, поскольку создаются непосредственно в момент обращения к ним. Для чтения некоторых требуются корневые привилегии.

В директории /proc есть особый файл под названием meminfo , прочесть который можно командами cat и less . Среди прочих полезностей там содержатся и данные об объёме физической памяти . Давайте заглянем в файл /proc/meminfo с помощью cat :

$ cat /proc/meminfo

В примере использована команда cat — удобная утилита для чтения из файла или стандартного потока ввода. При выполнении эта команда прочтёт файл /proc/meminfo и представит обширные сведения о физической памяти . Нас интересует только общий объём оперативной памяти, который указан в первых трёх строках результата.

$ cat /proc/meminfo | head -n 3
MemTotal: 8021048 kB MemFree: 4542960 kB MemAvailable: 5155668 kB

Мы ограничили вывод интересующими нас строками с помощью команды head . В сочетании с аргументом -n команда head задаёт количество строк результата. Размер памяти приводится в килобайтах и даёт понимание общего объёма физической памяти, а также свободного и доступного объёма.

Предположим, что мы пишем скрипт для командной оболочки Bash, и в нём фигурирует объём физической памяти RAM. Чтобы его туда добавить, можем выполнить чтение файла /proc/meminfo , а затем с помощью grep извлечь общий объём памяти.

#!/bin/bash total_ram () < local totalram=$(cat /proc/meminfo | grep -i 'memtotal' | grep -o '[[:digit:]]*') echo $totalram >ram_size=$(total_ram) echo "Total RAM: $ram_size kB" 

Теперь сохраним скрипт и сделаем его исполняемым:

$ chmod +755 totalram.sh $ ./totalram.sh Total RAM: 8021048 kB

7. Использование диспетчеров задач с графическим пользовательским интерфейсом

Отслеживать работу процессора, использование оперативной памяти и сетевых ресурсов, а также управлять процессами можно с помощью широкого ряда диспетчеров задач с графическим интерфейсом. Рассмотрим самые популярные варианты для Linux.

7.1. GNOME System Monitor

GNOME System Monitor входит в состав среды рабочего стола GNOME как диспетчер задач по умолчанию . А пользователи другой рабочей среды с лёгкостью могут найти пакет gnome-system-monitor в репозитории с дистрибутивом. После установки можно запустить диспетчер из командной строки:

$ gnome-system-monitor

image

Среди сведений на вкладке Resources найдётся и общий объём памяти.

7.2. KSysGuard

KSysGuard — диспетчер задач, разработанный сообществом KDE как дефолтный для свободной среды рабочего стола KDE . Аналогичным образом, если вы используете другую рабочую среду, его несложно установить в системе с помощью пакета ksysguard в соответствующем репозитории. Запустить его после установки можно командой ksysguard :

$ ksysguard

image

Открыв ksysguard , перейдём на вкладку System Load . Данные о памяти там представлены вместе с наглядным графиком.

8. Заключение

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

Мы изучили базовую команду free и её альтернативу vmstat . Затем узнали, как с помощью команды top можно получить различные системные данные. Также взглянули на утилиту dmidecode и выяснили, как извлечь данные о физической памяти из таблицы DMI.

Ознакомились с директорией /proc и научились читать файл /proc/meminfo , чтобы выяснить общий объём памяти RAM и использовать его в скрипте для оболочки Bash. И наконец, перечислили пару графических диспетчеров задач, показав, как с их помощью просмотреть объём и статистику использования оперативной памяти.

НЛО прилетело и оставило здесь промокод для читателей нашего блога:

— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS .

  • FirstVDS
  • Linux
  • cистемное администрирование
  • Блог компании FirstVDS
  • Настройка Linux
  • Системное администрирование
  • Серверное администрирование

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *