Вопрос или проблема
У меня ранее была другая утечка памяти, и её диагностировали и решили. Но теперь я чувствую, что у меня снова утечка, и я не могу её обнаружить так, как раньше. Вот старый вопрос – Утечка памяти в Windows 10 – Теги (poolmon) FMic и Irp – Неактивный пул на уровне 5.7 ГБ
Теперь моя проблема в основном такая же, отличие в том, что Неактивный пул не является проблемой в этот раз, он составляет 700-800 МБ против 5.7 ГБ в предыдущем вопросе.
Я хочу понять, как искать утечки памяти, когда подозреваю, что у меня одна, чтобы не задавать этот вопрос снова. Две вещи, которые заставляют меня подозревать, что у меня есть утечка памяти:
- Использование моей ОЗУ за несколько дней повышается до 90%+ при простое
- В диспетчере задач показывается высокий процент использования, но при просмотре вкладки процессов оказывается, что много ОЗУ неопределено, т.е. недостаточно процессов, использующих достаточно памяти, чтобы объяснить высокое использование памяти.
Эта проблема беспокоит меня на протяжении нескольких лет на нескольких компьютерах, и после нескольких переустановок я немного устал от этого. Я более или менее принял, что это часть программного обеспечения, которое я всегда устанавливаю, или просто часть Windows, но после нескольких сбоев программного обеспечения в последнее время я действительно хотел бы докопаться до сути.
Конфигурация ПК и статистика с открытым только Opera GX и некоторым фоновым ПО:
- Использование ОЗУ / всего – в данный момент 10.8 / 16 ГБ. Увеличивается до ~11-12ГБ примерно через 24-48 часов после перезагрузки. Увеличивается до ~14ГБ примерно через 72-96 часов после перезагрузки.
- Файл подкачки – включен, установлен на “Пользовательский размер” с начальным размером 1000 МБ и максимальным размером 20000 МБ. В данный момент используется около ~8100 МБ.
- Процессы диспетчера задач, отсортированные по использованию ОЗУ – наибольшее использование ОЗУ у Opera с 2.8 ГБ, за ней следуют RamMap с 600 МБ и Discord с 80 МБ. Использование ОЗУ продолжает снижаться до очень малых чисел, т.е. имеется много ОЗУ, которое указано как использованное, но не учтено диспетчером задач на вкладке процессов.
- RamMap – Нажатие “Очистить -> Очистить рабочие наборы” привело к снижению использования ОЗУ с 10.8 ГБ до 6.3 ГБ, которое увеличилось за 2 минуты до ~8.3 ГБ, пока я писал этот вопрос.
Я знаю, что здесь есть несколько других вопросов, касающихся подобных проблем, но я не могу найти помощь в любом из них, поэтому я прошу надёжный метод обнаружения проблемы самостоятельно в будущем, чтобы не приходилось задавать больше вопросов. Это может быть полезно и другим пользователям, которые смотрят на этот вопрос.
Я прикрепил несколько изображений, чтобы вы могли увидеть, что происходит.
Каковы мои следующие шаги, куда мне двигаться дальше, чтобы найти виновника?
Может быть проблема с управлением Списком ожидания в ОС Windows. Когда страница памяти удаляется из использования, она может быть не сразу доступна для повторного использования.
Вы можете попробовать сторонний инструмент, Умный очиститель списка ожидания от Wagnardsoft, который ускоряет возврат этой ОЗУ в использование. При обработке многих файлов одновременно я заметил, что это предотвращает сбои, хотя изначально он был предназначен для улучшения игрового процесса.
Тем не менее, статистика использования ОЗУ не обязательно значима. Если ваша система кажется работающей нормально, игнорируйте высокое использование ОЗУ. Операционная система просто оптимизирует скорость, храня больше данных в памяти.
Ответ или решение
Как обнаружить и устранить утечки памяти в Windows 10
Утечки памяти представляют собой распространённую проблему, с которой сталкиваются пользователи Windows 10. Они могут вызывать медленную работу системы и нестабильность приложений. Если у вас есть подозрения на утечку памяти, вы можете следовать этому руководству для её обнаружения и устранения.
Причины возникновения утечек памяти
Утечки памяти возникают, когда приложение или процесс не освобождают память, которую они больше не используют. Это может приводить к тому, что первоначально доступная память становится недоступной, и в итоге система начинает использовать всю доступную оперативную память, что ведёт к ухудшению производительности.
Шаг 1: Начальное наблюдение
Для начала обратите внимание на использование оперативной памяти:
-
Task Manager (Диспетчер задач):
- Откройте диспетчер задач, нажав
Ctrl
+Shift
+Esc
. - Перейдите на вкладку "Процессы" и проверьте использование памяти для каждого процесса. Вы также можете отсортировать процессы по использованию памяти, щёлкнув по заголовку соответствующего столбца.
- Откройте диспетчер задач, нажав
-
Resource Monitor (Монитор ресурсов):
- Запустите монитор ресурсов через Диспетчер задач, нажав на вкладку "Производительность", а затем на "Открыть монитор ресурсов".
- Эта утилита поможет вам более детально проанализировать использование памяти, включая информацию о том, какие из процессов занимают память.
Шаг 2: Использование дополнительных инструментов
Чтобы более детально диагностировать утечки памяти, вы можете использовать дополнительные инструменты:
-
RamMap:
- Этот инструмент от Sysinternals позволяет вам получить глубокий анализ использования оперативной памяти. Вы можете увидеть, какие объекты используют память, а также отследить состояние конкретных процессов.
- Попробуйте очистить рабочие наборы, выбрав "Empty" -> "Empty Working Sets". Это может помочь сбросить память, которая была “застрянет” в состоянии использования.
-
PoolMon:
- Этот инструмент позволяет отслеживать использование пула памяти и находить неправильное использование памяти драйверами и системными процессами. Он может помочь в выявлении утечек на уровне драйвера, что полезно, если проблема на уровне операционной системы.
-
Memory Diagnostics Tool:
- Если вы подозреваете физическую неисправность оперативной памяти, запустите диагностику памяти Windows. Вы можете сделать это, введя "mdsched.exe" в меню "Пуск".
Шаг 3: Анализ данных
После того как вы получили информацию из инструментов, проанализируйте данные:
- Если наблюдается высокое использование памяти без явных процессов, которые её используют, проверьте наличие скрытых процессов или утечек в драйверах.
- Сравните использование памяти с данными из других моментов времени, чтобы определить, увеличивается ли использование и с какой скоростью.
Шаг 4: Настройки и оптимизация
Если утечка памяти вызвана настройками и не является следствием проблем с приложениями, вы можете рассмотреть следующие действия:
- Обновление драйверов: Убедитесь, что все ваши драйвера и приложения обновлены. Старые драйверы могут вызывать утечки памяти.
- Настройки виртуальной памяти: Проверьте настройки файла подкачки. Возможно, вам стоит увеличить размер файла подкачки, чтобы система могла лучше управлять памятью.
- Отключение фоновых приложений: Отключите ненужные приложения, которые работают в фоновом режиме и могут ухудшать производительность.
Заключение
Поиск и устранение утечек памяти в Windows 10 — это процесс, требующий терпения и внимательности. Соблюдая предложенные шаги и используя доступные инструменты, вы можете значительно повысить производительность своей системы. Если все же проблема продолжает беспокоить, возможно, стоит рассмотреть возможность обращения к специалисту.