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

Оперативная память выделено что значит

  • автор:

Что значит выделено и кэшировано памяти

Поговорим немного о памяти, а точнее об оперативной памяти. Наиболее часто мы слышим такие понятия как выделено и кэшировано. В чем смысл этих понятий? Давайте постараемся ответить на этот вопрос.

Что значит выделено и кэшировано памяти

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

Теперь давайте разберемся, что значит кэшированная память.

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

Таким образом, мы разобрались, что значит выделенная память и кэшированная память. Надеемся, статья была вам полезна и вы нашли ответы на свои вопросы.

Sysadminium

Диспетчер задач и память. В этом уроке я покажу вам как наблюдать за расходованием памяти используя встроенный «Диспетчер задач».

Диспетчер задач «Память»

В «Диспетчере задач» можно посмотреть информацию по физической и виртуальной памяти на вкладке «Производительность»:

Диспетчер задач и память

Описание графиков

  • Использование памяти. Общая высота графика (16 ГБ в данном примере) представляет объем оперативной памяти, который может использоваться операционной системой. При этом, белое пространство над используемой памятью соответствует значению «Доступно» ниже графика.
  • Структура памяти. График показывает соотношение между различными состояниями страниц памяти. Состояния страниц мы разбирали на прошлом уроке. На графике слева на право показана:
    • используемая — память используется процессами, драйверами или оперативной системой;
    • измененная — такую память можно освободить, но вначале содержимое из неё нужно записать на диск;
    • зарезервированная — эту память диспетчер памяти зарезервировал для процессов, но пока они её не используют. А ещё сюда входит кэш;
    • свободная — эта память будет отдаваться новым процессам в первую очередь.

    Описание значений

    • Используется (сжатая) — физическая память, используемая в настоящее время. Объем сжатой физической памяти указан в скобках. Про сжатие памяти тоже расскажу, но в следующих статьях.
    • Доступно — объем памяти, доступной для непосредственного использования операционной системой, процессами и драйверами. Равен суммарному размеру изменённой, зарезервированной и свободной памяти.
    • Выделено — это два числа, первое показывает сумму используемой физической памяти (оперативной + подкачки). Второе — сколько всего возможно выделить физической памяти в системе. Эти два числа равны значениям счетчиков производительности Committed Bytes и Commit Limit соответственно.
    • Кэшировано — сюда попадает некоторая информация, которая может потребоваться в будущем. Чем больше у вас свободной оперативной памяти, тем больше в кэш попадет такой информации. В текущий момент эти данные могут быть не нужны, но если понадобятся то из кэша их легче считать, чем с жёсткого диска. На графике «Структура памяти» кэш входит в зарезервированную память. И в качестве дополнительной информации: кэш можно посчитать сложив следующие счетчики производительности в категории Память: Cache Bytes, Modified Page List Bytes, Standby Cache Core Bytes, Standby Cache Normal Priority Bytes и Standby Cache Reserve Bytes.
    • Выгружаемый пул — размер выгружаемого пула.
    • Не выгружаемый пул — размер не выгружаемого пула.

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

    Оперативная память выделено что значит

    Диспетчер задач и память. В этом уроке я покажу вам как наблюдать за расходованием памяти используя встроенный “Диспетчер задач”.

    Диспетчер задач “Память”

    В “Диспетчере задач” можно посмотреть информацию по физической и виртуальной памяти на вкладке “Производительность”:

    Диспетчер задач и память

    Описание графиков

    • Использование памяти. Общая высота графика (16 ГБ в данном примере) представляет объем оперативной памяти, который может использоваться операционной системой. При этом, белое пространство над используемой памятью соответствует значению “Доступно” ниже графика.
    • Структура памяти. График показывает соотношение между различными состояниями страниц памяти. Состояния страниц мы разбирали на прошлом уроке. На графике слева на право показана:
      • используемая – память используется процессами, драйверами или оперативной системой;
      • измененная – такую память можно освободить, но вначале содержимое из неё нужно записать на диск;
      • зарезервированная – эту память диспетчер памяти зарезервировал для процессов, но пока они её не используют. А ещё сюда входит кэш;
      • свободная – эта память будет отдаваться новым процессам в первую очередь.

      Описание значений

      • Используется (сжатая) — физическая память, используемая в настоящее время. Объем сжатой физической памяти указан в скобках. Про сжатие памяти тоже расскажу, но в следующих статьях.
      • Доступно — объем памяти, доступной для непосредственного использования операционной системой, процессами и драйверами. Равен суммарному размеру изменённой, зарезервированной и свободной памяти.
      • Выделено — это два числа, первое показывает сумму используемой физической памяти (оперативной + подкачки). Второе – сколько всего возможно выделить физической памяти в системе. Эти два числа равны значениям счетчиков производительности Committed Bytes и Commit Limit соответственно.
      • Кэшировано — сюда попадает некоторая информация, которая может потребоваться в будущем. Чем больше у вас свободной оперативной памяти, тем больше в кэш попадет такой информации. В текущий момент эти данные могут быть не нужны, но если понадобятся то из кэша их легче считать, чем с жёсткого диска. На графике “Структура памяти” кэш входит в зарезервированную память. И в качестве дополнительной информации: кэш можно посчитать сложив следующие счетчики производительности в категории Память: Cache Bytes, Modified Page List Bytes, Standby Cache Core Bytes, Standby Cache Normal Priority Bytes и Standby Cache Reserve Bytes.
      • Выгружаемый пул — размер выгружаемого пула.
      • Не выгружаемый пул — размер не выгружаемого пула.

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

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

      За много лет использования 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.

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

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

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

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

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

      Что значит выделено и кэшировано памяти

      Поговорим немного о памяти, а точнее об оперативной памяти. Наиболее часто мы слышим такие понятия как выделено и кэшировано. В чем смысл этих понятий? Давайте постараемся ответить на этот вопрос.

      Что значит выделено и кэшировано памяти

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

      Теперь давайте разберемся, что значит кэшированная память.

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

      Таким образом, мы разобрались, что значит выделенная память и кэшированная память. Надеемся, статья была вам полезна и вы нашли ответы на свои вопросы.

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

      За много лет использования 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.

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

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

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

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

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

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

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