Как узнать чем загружена оперативная память
Если компьютер внезапно начинает работать очень медленно, а приложения не реагируют — возможно, исчерпана оперативная память. Это, тем не менее, не значит, что ее нужно заменить — проблема может быть связана с работой программ.
Если закралось такое подозрение, можно проверить использование памяти как минимум двумя способами: с помощью Диспетчера задач и Монитора ресурсов.
В этой инструкции мы расскажем, как узнать, сколько памяти использует запущенное приложение, и что делать, когда конкретная программа потребляет слишком много ресурсов.
↑ Как узнать, что расходует оперативную память
Файл подкачки ОС
Файл подкачки — замечательная идея. В принципе, ОС понимает, что некоторые части памяти особо не используются вашим приложением. Зачем тратить на него реальную физическую память? Вместо этого процесс в ядре записывает этот неиспользуемый фрагмент на диск. Пока к нему не обратятся снова, только тогда он вернётся в память.
Для более подробного объяснения, как работает память в Windows, рекомендую лекцию «Тайны управления памятью» Марка Руссиновича.
Здесь много за чем нужно следить и анализировать. К кому обратиться? Конечно, к Диспетчеру задач!
Память в RAM обычно называют рабочим набором (Working Set), в то время как всю выделенную память обычно именуют Private Bytes. Библиотеки DLL вносят путаницу в определения, поэтому пока их проигнорируем. Иначе говоря:
Private Bytes [выделенная память] = рабочий набор + файл подкачки
По умолчанию Диспетчер задач показывает для любого процесса именно рабочий набор:
И это число, на которое я всё время смотрел. Откуда я знал, что в Диспетчере задач информация о переданной памяти находится в колонке Commit Size . Я так и не смог там найти информацию о виртуальной памяти.
Диспетчер задач позволяет добавить информацию о переданной памяти, если щёлкнуть правой кнопкой мыши по столбцам и выбрать соответствующий пункт
К счастью, есть много других ресурсов для отслеживания ресурсов. На каждой машине под Windows установлен PerfMon (Системный монитор), который выдаёт очень подробную информацию о каждом процессе и системе в целом:
Интересно, что Системный монитор умеет фактически исследовать и сравнивать метрики на двух или более компьютерах в сети. Это очень мощный инструмент, но Диспетчер задач, очевидно, удобнее для пользователей. В качестве промежуточного решения рекомендую Process Explorer:
Бум! Visual Studio, чего это ты до сих пор в 32-битном режиме (обратите внимание на его Virtual Size)? Пиковое использование памяти на моём компьютере на уровне 89% от максимума, ещё терпимо. Это пригодится позже.
Дополнение: многие указали на другие удобные инструменты, в том числе VMMap и RAMMap.
К счастью, это не какие-то ненужные мелочи ОС. Актуальная информация о потреблении памяти многократно помогала мне в отладке разных проблем.
Самое главное, это найти нетронутые части выделенной памяти. Данные о подкачке тоже важны: эта память передана, но используется редко или вообще не используется.
Даже если память будет иногда использоваться, важно понимать, что это дорогой ресурс, так что идти по такому пути ни в коем случае нельзя. Здесь появятся и утечки памяти.
По этим причинам я ранее слышал предложение полностью удалить файл подкачки и приравнять выделенную память рабочему набору. Однако это обоюдоострая идея. Тогда ОС не в состоянии сбросить память в случае неправильной работы приложений, которые иногда впустую резервируют память.
Судя по рассказу нашего читателя, у него на самом деле проблемы с оперативной памятью, но с уверенностью можно сказать лишь после того, как мы её проверим. Кстати, проверить оперативку можно и без всяких тестов, например методом исключения. Наверняка у вас в системном блоке находятся два модуля оперативной памяти, извлеките один модуль (конечно на выключенном компьютере) и оставьте работать компьютер с оставшейся планкой оперативки. Если все зависания прекратятся, значит извлечённый модуль оперативной памяти был неисправен.
Нелишним будет проверить контакты модулей оперативной памяти на присутствие налёта, если таковой имеется, то его нужно удалить простым ластиком.
Один мой знакомый купил системный блок с рук, при работе он постоянно зависал и перезагружался, дело оказалось в оперативке, два модуля оперативной памяти должны были быть абсолютно одинаковыми и работать в двухканальном режиме, так вот, программа AIDA показала, что модули работают на разной частоте и подружить мы их так и не смогли, в БИОСе материнской платы не было таких настроек и пришлось покупать другую оперативку. Но иногда модули оперативной памяти практически новые, работают на одинаковой частоте, как тогда проверить оперативную память компьютера? В этом случае, обратимся к специальным программам, а ещё проверим оперативную память нашего компьютера встроенным средством диагностики, которое есть в Windows 10, 8.1, 7.
"Пуск", вводим в поле ввода mdsched (Средство проверки памяти Windows),
щёлкаем на нём левой мышью и нам сразу предлагается перезагрузить наш компьютер и проверить нашу оперативную память. Предлагаю выбрать этот вариант.
Наш компьютер перезагружается и происходит проверка оперативной памяти на ошибки.
Как проверить оперативную память компьютера утилитой Memtest86
Неплохая программа, тоже может выявить ошибки оперативной памяти. Чтобы сделать загрузочный компакт-диск Memtest86 идём на сайт
затем Download - Pre-Compiled Bootable ISO (.zip).
Скачиваем ISO-образ программы в zip –архиве, собственно извлекаем образ из zip-архива,
далее щёлкаем на образе правой мышью и выбираем Открыть с помощью, далее выбираем "Средство записи образов дисков Windows" и прожигаем его на компакт-диск CD.
Кто не знает как прожечь образ ISO на диск, читайте нашу статью Как записать образ ISO на диск. Итак компакт-диск с программой Memtest86 у нас готов. Теперь нам нужно загрузить с этого компакт-диска компьютер. Если кто не знает как это сделать читаем BIOS: Загрузка с диска.
Если вы хотите сделать загрузочную флешку Memtest86, выбираем "Download - Auto-installer for USB Key (Win 9x/2k/xp/7) *NEW!*" и скачиваем на компьютер архив с установщиком.
Затем вам нужно подсоединить к вашему компьютеру флешку, далее достать из архива установщик и запустить его, в этом окне выберите вашу флешку (в нашем случае буква D:), не забудьте поставить галочку как на скришноте и жмём кнопку Create , через минуту ваша флешка станет загрузочной (осторожно, все ваши данные на флешке удалятся).
Если вы не знаете, как загрузить стационарный компьютер или ноутбук с флешки? Можете почитать нашу статью – Как загрузиться с флешки.
Итак, с диска загрузили вы компьютер или с флешки, всё равно, программа Memtest86 начинает свою работу сразу.
Если мне не изменяет память, программа проводит ни много ни мало 9 тестов: на определение проблем с адресацией памяти, на аппаратные ошибки, на ошибки в схемах памяти, ошибки записи и так далее. Если ошибки будут выявлены, то выглядеть это будет вот так.
↑ RAMMap
Если вы хотите анализировать распределение оперативной памяти на профессиональном уровне, вам понадобиться что-то более функциональное, чем Монитор ресурсов и Диспетчер задач. Например, утилита RAMMap, разработанную сотрудниками Microsoft Марком Руссиновичем и Брайсом Когсвеллом. Описать все ее возможности в рамках одной статьи средней длины не представляется возможным, впрочем, рядовому пользователю вполне будет достаточно знать лишь о некоторых аспектах работы с этим инструментом.
Наибольший интерес в RAMMap представляют вкладки «Use Counts», «Processes» и «File Details». Первая содержит цветной график, в котором каждый цвет соответствует определенному типу памяти. Рассмотрим некоторые наиболее интересные значения.
• Process Private — память, отведенная под исключительно отдельные процессы.
• Mapped File — область памяти системного файлового кэша.
• Shareble — используемая процессами память, которая может быть освобождена для других процессов.
• Paged Pool и Nonpaged Pool — ОЗУ, отведенная исключительно под процессы ядра. Первый ее тип может быть записан в дисковый кэш, второй не может.
• Session Private — часть памяти, используемая некоторыми системными драйверами.
• Metafile — память, отведенная под ту часть системного кэша, который хранит метаданные NTFS и MFT.
• Unused — свободная, неиспользуемая в данный момент RAM.
• Total — общий размер ОЗУ, доступный для использования в вашей системе.
Если содержимое вкладки «Use Counts» дает общее представление о типах используемых страниц памяти и отведенном под них объема ресурсов, то на вкладке «Processes» можно посмотреть, сколько памяти отводится под каждый конкретный процесс.
Наконец, вкладка «File Details» отображает список файлов, отнесенных системой в память. Это могут быть не только исполняемые файлы, но и всякие другие файлы, используемые программами и операционной системой. Столбец «Size» на вкладке показывает не объем ОЗУ, а физический размер файла на жестком диске.
В отличие от Диспетчера задач и Монитора ресурсов, RAMMap не позволяет управлять процессами, она служит для получения подробных сведений о распределении ресурсов памяти, впрочем, кое-что утилита всё же умеет. Так, если вы перейдете в меню «Empty», то найдете в нём несколько опций очистки страниц оперативной памяти, зарезервированной, но неиспользуемой в данный момент запущенными процессами.
За много лет использования Windows я привык к Диспетчеру задач. Оттуда я убил сотни приложений за плохое поведение. Там же смотрел, кто из них пожирает ресурсы. Пока я не начал работать с машинами, у которых сотни гигабайт памяти, а у приложений соответствующие запросы. В этой статье обсудим, почему Диспетчер задач плохо отслеживает память и что использовать взамен. Во-первых, о механизме выделения памяти в Windows.
tl;dr: Диспетчер задач скрывает информацию о подкачке (paged memory) и виртуальном пространстве процесса. Лучше используйте Process Explorer из комплекта Sysinternals.
При запуске нового процесса ОС присваивает этому процессу непрерывное адресное пространство. В 32-разрядных системах это пространство может составить 4 ГБ, обычно 2 ГБ для ядра, а остальное для процесса. В этой статье проигнорируем использование памяти ядром. В 64-разрядных системах зарезервированная процессом память может вырасти до колоссальных 64 ТБ. Что этот процесс будет делать с несколькими терабайтами памяти, когда у нас на самом деле жалкие 8 ГБ? Сначала нужно понять, что такое зарезервированная и переданная память.
Зарезервированная и переданная память
Не все части этого огромного адресного пространства равны. Некоторые части адресного пространства процесса фактически поддерживаются либо физической оперативной памятью, либо диском (см. ниже). Зарезервированная память считается переданной (Committed), если ОС предлагает вам эту память при попытке её использовать. Остальная часть адресного пространства, а это подавляющее большинство, остаётся доступным для резервирования. То есть не всегда ОС может предложить вам этот блок памяти для использования: она может сделать копию на диске (файл подкачки), например, а может и не сделать. В C++ резервирование памяти осуществляется вызовом VirtualAlloc. Так что переданная память является аппаратно ограниченным ресурсом в ОС. Давайте посмотрим.
Как проверить, сколько используется памяти, с помощью Диспетчера задач
Чтобы определить, какие программы занимают больше всего ресурсов, проделайте следующее:
- Откройте Пуск.
- Найдите Диспетчер задач и откройте его.
На заметку: можно щелкнуть правой кнопкой мыши Панель задач или Пуск и выбрать Диспетчер задач. Также подойдет сочетание клавиш Ctrl + Shift + Esc.
- (Опционально) Выберите приложение, потребляющее наибольший объем.
На заметку: лучше завершать работу приложения только в том случае, если оно не отвечает или потребляет память необычным образом, так как при закрытии можно потерять несохраненную работу. - Нажмите Снять задачу.
После выполнения этих шагов приложение закроется и освободит больше памяти для других программ.
↑ Монитор ресурсов
Немногим больше сведений об использовании памяти конкретными процессами может дать оснастка «Монитор ресурсов», открыть которую можно из вкладки «Производительность» Диспетчера задач или командой resmon в окошке «Выполнить». Помимо цветного графика распределения памяти, в целом дублирующего блок структуры памяти в Диспетчере задач, Монитор ресурсов на вкладке «Память» отображает список запущенных процессов с изменяющимися в режиме реального времени значениями. Рассмотрим вкратце относящиеся к расходу ОЗУ.
• Завершено — в колонке отображается максимальный объем файла подкачки, который был использован процессом за все время открытой им сессии.
• Рабочий набор — объем ОЗУ, используемый процессом в настоящий момент времени. В этот объем включается также зарезервированная память.
• Общий набор — это объем памяти, который может быть забран у текущего процесса для некоего другого процесса, если последний в порядке приоритета станет нуждаться в ресурсах.
• Частный набор — это используемая процессом память, которая не может быть высвобождена и передана другим процессам.
↑ Диспетчер задач
Получить общие представления о распределении оперативной памяти можно с помощью Диспетчера задач. Здесь на вкладке «Процессы» в колонке «Память» можно видеть, сколько памяти в килобайтах такие-то процессы используют в данный момент времени. Аналогичные сведения в столбце «Память (Частный рабочий набор)» отображаются на вкладке «Подробно». При необходимости вы можете отсортировать процессы по объему потребляемых ими ресурсов, кликнув по заголовку столбца. Как видно из приложенного ниже скриншота, главным потребителем ОЗУ в нашем примере является процесс браузера Google Chrome.
Примечание: выбрав в контекстном меню процесса опцию «Перейти к службам», можно увидеть службы, в этот процесс загруженные.
Общие сведения о распределении памяти доступны на вкладке «Производительность» в подразделе «Память». Особенный интерес представляет собой блок данных структуры памяти, его значения стоят того, чтобы рассмотреть их чуть более подробно.
• Используется —RAM, используемая в настоящее время.
• Доступно — объем памяти, доступной для использования Windows, драйверами, процессами и драйверами.
• Выделено значение, представленное двумя числами — суммой оперативной памяти и памяти файла подкачки.
• Кэшировано — объем памяти, выделяемый под хранение данных, которые могут понадобиться в будущем. На графике «Структура памяти» кэшированная память обозначается как «Зарезервировано».
• Выгружаемый и не выгружаемый пулы — ресурсы RAM, используемые исключительно ядром Windows. выгружаемый пул отличается от невыгружаемого тем, что первый может быть записан в файл подкачки.
Как проверить использование памяти приложения с помощью Монитора ресурсов
Чтобы проверить объем оперативной памяти, используемой приложениями, проделайте следующее:
Выберите вкладку Частный (КБ), чтобы отсортировать приложения по объему потребляемой памяти. Данные отображаются в килобайтах.
Выберите вкладку Частный (КБ), чтобы отсортировать приложения по объему потребляемой памяти. Данные отображаются в килобайтах.
- На заметку: в отличие от Диспетчера задач, Монитор ресурсов дает только имя процесса, а не понятное название приложения — например, «msedge.exe» вместо «Microsoft Edge» и «MsMpEng.exe» вместо «Антивируса Защитника Windows.» Если не получилось самому определить, о каком приложении речь, можно нажать по нему правой кнопкой мыши и выбрать Поиск в Интернете.
С помощью этого инструмента можно одновременно завершить только один процесс за раз — это значит, что для закрытия приложения может потребоваться завершить все связанные процессы. Обычно они все называются одинаково.
(Опционально) Щелкните правой кнопкой мыши приложение, потребляющее наибольший объем памяти, и выберите опцию Завершить процесс.
(Опционально) Щелкните правой кнопкой мыши приложение, потребляющее наибольший объем памяти, и выберите опцию Завершить процесс.
После выполнения этих шагов вы узнаете, какие приложения потребляют больше всего памяти на устройстве.
Если с завершением задачи возникли проблемы, или отображается слишком много процессов — возможно, стоит перезагрузить компьютер. Это сбросит все приложения и восстановит ресурсы.
Стоит быть в курсе того, на что уходит большая часть памяти, однако если приложение потребляет много ресурсов — это еще не значит, что оно работает некорректно. Некоторые программы, например, для обработки фотографий и видео, обычно требуют большого объема системной оперативной памяти. Они могут привести к замедлению работы компьютера. Если же загруженность памяти постоянно достигает 70%, вполне можно задуматься о ее замене.
Это очень странно, я открываю диспетчер задач, всего у меня 16 ГБ ОЗУ, показывает что потребляет 20% когда все закрыто!
Пошарил по процессам, не пойму где утечка, сканировал на вирусы, все-равно, виндоус жрет 1 гб, до процессы ну еще 1 макс, и все равно их нет в процессах, куда еще 1 гб делся? Как можно отследить куда расход идет, в случае если кто то поставил фишинговое или скрытое ПО для фарма лайткойнов?
Это подозрительно, обычно когда сильно забивает и я никак не могу убрать это, перебивал винду стирая вообще все под чистую. Когда чистый windows, у меня грузило 5%-10% ОЗУ максимум, теперь 20% минимум.
Простой 1 комментарий
майнеры вычисляются не по памяти, а на слух - СО графической карты или процессора даст знать о повышенной нагрузке первой.
Да никуда оно не идет.
В процессах отображается все что используется.
Непонятно про какой расход идет речь.
Выложите скрин вкладки "память"
Поетому и возник вопрос, если это мемори лик как его отследить, если вредоносное ПО, как узнать куда расход памяти идет и заблочить процесс
Andrey Stark, ОЗУ никто не жрет, она не съедобна.
Процессы используют некоторое количество памяти - если вы просуммируете всю память используемую процессами, то получите сумму используемой памяти. Разумеется не идеально точно +/- 30% потому использование памяти постоянно меняется.
Почему они должны "жрать" 1гб ОЗУ?
Утечки - это когда вы ничего не делаете, а памяти все меньше и меньше, в конце концов память исчерпывается вся и работать становится не возможно.
Если у вас 20% занято и больше не меняется, то никаких утечек нет.
В мониторе ресурсов более подробная информация есть.
Запуск Windows и приложений сопровождается чтением в память и обработкой огромного количества файлов. Зачастую один и тот же файл открывается по несколько раз для чтения различных сегментов. Такой нерациональный доступ к файлам занимает много времени. Гораздо эффективнее обращаться к каждому файлу только один раз, загружая информацию в оперативную память ещё до того, как она станет нужна программам. Prefetcher наблюдает за тем, какой код и данные (включая NTFS Master File Table) загружаются в процессе запуска операционной системы и приложений. Он накапливает эти сведения в файлах трассировки для оптимизации загрузки кода и данных при следующих запусках.
На вкладке «производительность» диспетчера задач посмотрите на количество «доступной» а не «свободной» памяти
Винда, начиная с висты, потихоньку забивает память файловым кэшем что бы быстрее работать с диском (часто используемые файлы хранятся и в памяти тоже, и читаются быстро из памяти, а вот пишутся на винт).
Как только вам потребуется память - всё, потраченное под кэш вернётся, не переживайте.
Дело в том, что свободная память - это ресурс, который не используется, простаивает. А может ускорять раьоту вашего компа - вот он и используется, для кэширования.
Хотя объем оперативной памяти не является определяющим в производительности системы во всех случаях, как это может показаться на первый взгляд, его значение трудно переоценить. Недостаток ОЗУ может вызвать замедлении работы программ, а в некоторых случаях и их принудительное завершение. В таких случаях бывает полезно знать, на что именно тратятся драгоценные ресурсы памяти, поскольку на основе полученных данных можно будет принимать решение об оптимизации системы. Определить, какие процессы расходуют ОЗУ не представляет большой сложности, сделать это можно как средствами самой Windows, так и средствами сторонних утилит.
Как проверить, сколько используется памяти, с помощью Диспетчера задач
Чтобы определить, какие программы занимают больше всего ресурсов, проделайте следующее:
- Откройте Пуск.
- Найдите Диспетчер задач и откройте его.
На заметку: можно щелкнуть правой кнопкой мыши Панель задач или Пуск и выбрать Диспетчер задач. Также подойдет сочетание клавиш Ctrl + Shift + Esc.
- (Опционально) Выберите приложение, потребляющее наибольший объем.
На заметку: лучше завершать работу приложения только в том случае, если оно не отвечает или потребляет память необычным образом, так как при закрытии можно потерять несохраненную работу. - Нажмите Снять задачу.
После выполнения этих шагов приложение закроется и освободит больше памяти для других программ.
Читайте также: