Windows 8 High System Использование памяти

362
Claire Fey

Моя проблема кажется простой. Мой компьютер использует больше физической памяти, чем фактически учитывается в сумме моих программ.

! (Работает windows 8.1, последние патчи)

Какие окна сообщают о моем общем использовании как

Что такое общее использование системы

Я использую 7,5 ГБ. Общее использование 12 ГБ. Дельта составляет 4,5 ГБ. Это то, что я считаю очень высоким.

Большинство постов, которые я нашел на этом сайте, касаются утечек памяти драйверов, влияющих на «выгружаемый пул» и «невыгружаемый пул», что приводит к высокой загрузке. Однако мой пул страниц + невыгружаемый пул составляет около 650 МБ, что, как я понимаю, не намного выше «нормального» и не должно вызывать эту дельту 4,5 ГБ. Для дальнейшего изучения этого я даже запустил poolmon.exeи не обнаружил таких неплотных драйверов при сортировке по использованию.

Скриншот Poolmon

Поэтому мой вопрос прост: что дает? Где ты память?

Обновить:

Добрый пользователь направил меня к программе rammap, которая дает более подробное описание распределения памяти. Запустив его, я обнаружил, что 2 ГБ памяти в разделе «используется» было выделено для «Mapped Files», что, как я полагаю, является кэшированием на диске. Перейдя на вкладку «Физические страницы» и отсортировав по указанным файлам, я узнал, что многие из активных отображенных файлов были файлами, используемыми торрент-приложением, содержащим большие файлы данных. Завершение приложения высвободило 1,2 ГБ кеширования диска в «режим ожидания», что дает скриншот, который вы можете увидеть ниже.

Rammap

«Дельта» уменьшилась до 3,2 ГБ, что приближается к тому, что я считаю нормальным, но все еще находится на верхней стороне, хотя, если вычесть оставшуюся часть «сопоставленного файла» 800 МБ, вы получите 2,4 ГБ, что может быть просто объяснено неправильным счетчиком, указанным в разделе «Пользователи» в диспетчере задач.

С этой информацией теперь я не уверен. Это только я не понимаю учет памяти? Действительно ли раздел «разделяемый» в таблице используется пользовательскими программами и просто не учитывается в пространстве пользователя в диспетчере задач? Если так, то эта проблема была бы смесью того, что я не знал, что кэширование диска может учитываться в разделе «Используется» / «Активно», а вкладка «Пользователь» в диспетчере задач является неточной.

0
Что именно вы подразумеваете под «использованием системной памяти»? Вы просто имеете в виду память, которая используется? Кроме того, вы отметили это "утечки памяти". У вас есть доказательства утечки? У вас есть реальная проблема или вам просто нужно понять, как Windows 8 использует память? David Schwartz 6 лет назад 0
@DavidSchwartz Мне очень не нравится тон вашего комментария. Использование системной памяти относится к использованию памяти, которое не учитывается пользовательскими программами. Проблема _actual_ - это заявленная проблема, которая заключается в том, что использование системной памяти необычно высоко, выше, чем я наблюдал на других моих компьютерах, также работающих под управлением Windows и работающих с аналогичными нагрузками. Нужна ли мне помощь в понимании того, как W8 использует память? Может быть? Просветите меня, ответив на вопрос, сообщая мне, где именно я ошибаюсь в своих рассуждениях, и я быстро закрою вопрос и отмечу указанный ответ как правильный. Claire Fey 6 лет назад 0
Итак - [этот вопрос был поднят] (https://superuser.com/questions/1153325/windows-8-1-64-bit-high-memory-usage/1154417) как возможный дубликат. * Однако * кажется, что этот вопрос намного лучше, чем другой, и я вроде чувствую, что мы можем захотеть, чтобы он продолжил свой курс, мы закрываем его в любом случае, особенно если основная причина различна Journeyman Geek 6 лет назад 0
@JourneymanGeek спасибо за редактирование моего поста и отображение изображений по умолчанию. Я не знал, что смогу сделать это из-за своей глупости;) Claire Fey 6 лет назад 0
опубликовать изображения [RAMMap] (https://docs.microsoft.com/en-us/sysinternals/downloads/rammap), использование пула ядра в порядке. magicandre1981 6 лет назад 0
@ magicandre1981 сделано. Учитывая новую информацию, я начинаю испытывать это маленькое ползучее ощущение, что это было просто сочетание того, что я был озадачен тем, как работает кэширование диска и как пользовательские программы учитываются в диспетчере задач. Эта проблема решена? Мнения приветствуются. Claire Fey 6 лет назад 0
чаще всего используется из частных байтов (это 7 ГБ, которые вы видите в Taskmgr). какие процессы вы запускаете? Другое использование в активном столбце дельта magicandre1981 6 лет назад 0
@ magicandre1981 Я не уверен, что ты спрашиваешь. Вы хотите список всех программ, запущенных на моем компьютере? Claire Fey 6 лет назад 0
Посмотрите во вкладке процесса, какие процессы потребляют ОЗУ. Также посмотрите в taskmgr-> perf-> cpu количество дескрипторов. если он очень высокий (более 100 тыс.) [у вас могут быть процессы, связанные с зомби, которые поглощают оперативную память] (https://randomascii.wordpress.com/2018/02/11/zombie-processes-are-eating-your-memory/) magicandre1981 6 лет назад 0
@ magicandre1981 О, я понимаю, что ты говоришь! Извините, теперь я понимаю. У меня были зомби раньше ... * очень * раздражает. К счастью, я здесь не за этим. 7,3 ГБ, используемые в настоящее время моими программами, вполне законны (Unity, IDE и многие другие экземпляры Firefox, а также несколько разных программ). Мое замешательство связано с тем фактом, что мой общий «Используемый» составляет 10,5 ГБ, а это означает, что «отсутствует» 3,2 ГБ. В прошлых взаимодействиях с окнами я не привык к такой высокой дельте. Я пытаюсь понять, является ли это законным или ненормальным, и если последнее: как это исправить. Claire Fey 6 лет назад 0
3.2 являются суммой других вещей ((не (пейджинговый пул, сопоставленный, общий и другой, который вы видите в RAMMap). magicandre1981 6 лет назад 0
@ magicandre1981 так, по-твоему, это нормально? Я жалуюсь ни на что и просто неправильно понимаю учет памяти? Это мой основной вопрос. Claire Fey 6 лет назад 0
коммит немного высокий, остальные швы должны быть нормальными. искать снова процессы зомби magicandre1981 6 лет назад 0
К слову, «сопоставленные файлы» - это гораздо больше, чем «кеширование диска». Все файлы кода (exe, dll и т. Д.) Находятся в этой категории. Программы, которые используют большие файлы данных, часто обрабатывают их также через сопоставление файлов (в отличие от традиционного доступа для чтения / записи). В действительности, на дисплее RAMmap невозможно различить использование памяти «отображенным файлом», которое существует только из-за упреждающего или реактивного кэширования, которое ОС делает из файлов, которые отображаются, потому что они активно используются таким образом. Jamie Hanrahan 6 лет назад 0

1 ответ на вопрос

0
David Schwartz

Windows 8, как и почти все современные операционные системы, старается использовать как можно больше памяти. Зачем? Потому что любая неиспользованная память тратится впустую.

Если система имеет 8 ГБ памяти и использует только 7 ГБ, она ничего не получает. Это не может использовать 9 ГБ позже. Он просто навсегда потерял какую-либо выгоду, которую мог бы получить от этих дополнительных 1 ГБ, если бы эта память была свободна.

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

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

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

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

Это победа вокруг. Память хранит данные, которые система надеется, что какой-то будущий процесс может оказаться полезным, и она также избегает посторонних обращений по списку свободной памяти, чтобы освободить память, просто чтобы снова пометить ее как использованную. Современным операционным системам нужно только оставить очень маленький объем свободной памяти, достаточный для обработки чрезвычайных ситуаций (таких как сбои страниц и запросы памяти из кода прерывания), когда она не может легко перевести память из одного использования в другое.

Спасибо за ваш ответ, Дэвид. Я высоко ценю идею, что абсолютно свободная память - это потраченная впустую память, поскольку ее можно использовать вместо того, чтобы кэшировать данные для будущего использования вместо загрузки их с диска. Что я не понимаю **, так это почему память, которую она использует для кэширования, не указана в разделе «Кэшированный» / «Резервный» («Память, которая содержит кэшированные данные и код, который в данный момент не используется») в диспетчере задач? У меня сложилось впечатление, что кэшированные данные были включены туда вместо метрики «Используется» («Память, используемая процессами, драйверами или операционной системой») Claire Fey 6 лет назад 0
@clairefey - fyi: Марк Руссинович объясняет тайны управления памятью: https://www.youtube.com/watch?v=AjTl53I_qzY https://www.youtube.com/watch?v=6KZdNsq1YV4 akira 6 лет назад 0
@akira Спасибо, я обязательно посмотрю их завтра утром. Claire Fey 6 лет назад 0
Вы будете в восторге. Кстати: Марк написал инструменты, на которые вы были упомянуты. akira 6 лет назад 0
Вы упускаете очень важный момент - отсутствие признаков утечки памяти (которой у вас нет), чем меньше свободной памяти, тем лучше. ОС специально разработаны таким образом, чтобы как можно меньше памяти оставалось свободным, пытаясь достичь абсолютно необходимого минимума. David Schwartz 6 лет назад 0
@DavidSchwartz жалоба не возникает из-за недостатка свободной памяти, а скорее из-за недостатка доступной памяти. Я совсем не скучаю по твоей точке зрения. Кэширование диска - нормальная операция, очевидно. Но кеширование диска может быть остановлено, чтобы освободить место для большего количества программ, поэтому он указан в «резервном» (а «резервный» подпадает под «доступный» вместе с «свободным»). Моя проблема в том, что есть ** In используйте ** память, которая не учтена. Claire Fey 6 лет назад 0
@ClaireFey Это не проблема, это, возможно, симптом проблемы. У вас есть проблема? Система медленная? Есть ли чрезмерный дисковый ввод-вывод? David Schwartz 6 лет назад 0