Почему половина моей оперативной памяти 8 ГБ отсутствует?

26

В течение двух лет я сидел с 8 ГБ ОЗУ, все еще думая, что мне нужны еще 4 ГБ, и никогда не спрашивал, почему так часто я получаю сообщение о нехватке физической памяти, которая закрывает все открытые программы (в основном Firefox, поскольку это в основном то, что я использую), если не обращать на них внимания немедленно. Затем мне пришлось бы перезапускать программы, используя большую часть памяти (Firefox - одна из них), чтобы продолжить нормальную работу и не терять несохраненные изменения.

В любом случае, я заметил, что хотя система видит 8 ГБ ОЗУ, она все еще использует половину, и я продемонстрирую это на скриншотах.

Совмещенные скриншоты системной информации и диспетчера задач:

введите описание изображения здесь

Скриншот монитора ресурсов:

введите описание изображения здесь введите описание изображения здесь

Скриншот RAMMap:

введите описание изображения здесь

И, наконец, мое состояние файла подкачки одновременно. Дело в том, что он все время большой:

введите описание изображения здесь

Обратите внимание на « Доступную » и « Свободную » память сверху скриншота. Это то, что я вижу в диспетчере задач большую часть времени, и открытие еще 5-7 вкладок в Firefox вызывает предупреждение « Недостаточно памяти ».

В настоящее время используется основная видеокарта:

введите описание изображения здесь

Есть предположения?

WLTRAY.EXE здесь не упоминалось, но посмотрите на это:

введите описание изображения здесь

Системные характеристики

  • Dell Latitude E6420
  • 8 ГБ ОЗУ, 120 ГБ Intel SSD
  • Intel HD Graphics, nVidia NVS4200M
  • 64-битная Windows Enterprise

ОБНОВЛЕНИЕ 3 мая 2014 - я не думаю, что проблема была в процессе беспроводного адаптера. Я все еще думаю, что это связано с Firefox. Вот скриншот диспетчера задач:

введите описание изображения здесь RamMap:

введите описание изображения здесь

VMMap:

введите описание изображения здесь

ОБНОВЛЕНИЕ: 01/04/15

Похоже, вся моя система имеет утечку памяти. Я пытался использовать Chrome, и в конце концов, как и в Firefox, он вылетает либо с сообщением, показанным здесь, либо с результатом BSOD или пустым экраном, где перезапуск - единственный способ снова работать.

Вот мой браузер Chrome, запущенный после нескольких часов его последней перезагрузки, с 29 вкладками:

Диспетчер задач Windows

введите описание изображения здесь

Монитор ресурсов

введите описание изображения здесь

Диспетчер задач Chrome

введите описание изображения здесь

Я перезапустил Chrome и вот статистика:

Диспетчер задач Windows

введите описание изображения здесь

Монитор ресурсов

введите описание изображения здесь

Диспетчер задач Chrome

введите описание изображения здесь

Boris_yo
источник
В Vista это будут Свойства системы / Дополнительно / Параметры производительности / Дополнительно / Изменение виртуальной памяти. Установлен ли параметр «Автоматически управлять размером файла подкачки для всех дисков»?
Даниэль Р Хикс
12
Насколько я знаю, Windows не предупреждает о недостатке физической памяти. Предупреждение относится к нехватке виртуальной памяти и возникает, когда выделенная память для всех процессов превышает сумму физической памяти и пространства подкачки. У вас очень маленький файл подкачки. Это вызывает проблему.
Дэвид Маршалл
1
Вы пропустили самый важный снимок экрана: график в нижней части вкладки «Память» в Resource Monitor.
Даниэль Б,
Ну, я не могу вам точно помочь, но источник проблемы очевиден: буфер записи на диск занимает огромные объемы памяти.
Даниэль Б
2
@Boris_yo - You want your page file to be filledНет, ты не; Вы хотите заполнить физическую память перед тем, как прикасаться к диску.
Synetech

Ответы:

17

«Почему половина моей оперативной памяти в 8 ГБ отсутствует?»

Это не пропало , и при этом это даже не используется . Приблизительно 4 ГБ активно используются, а еще 3,3 ГБ неактивно, но также используется. 3.3 ГБ готов к переносу на диск, но у вас нет места для него, поэтому он остается в физической памяти. «Модифицированная» память фактически ничем не отличается от «Используемой», если не хватает страниц на диске.

Ни 64-разрядная ОС, ни PAE не позволяют ни одному 32-разрядному процессу использовать более 4 ГБ (2 пользователя / 2 ядра в 32-разрядной / PAE, 4 ГБ пользователя в x64. См. Расширение Windows: виртуальная память ) памяти будет ли эта память перенесена в физическую память или на диск.

Таким образом, для Firefox, который не имеет 64-разрядной версии, это означает, что Firefox в конечном счете ограничен 2 ГБ (PAE) или 4 ГБ (x64) памяти пространства пользователя независимо от установленной ОЗУ. Даже если у вас установлено 64 ГБ ОЗУ, если Firefox превышает использование, он исчерпает лимит памяти.

Это выглядит чрезмерно и, возможно, указывает на утечку памяти или ручки. Хуже того, в вашем случае файл подкачки недостаточно велик для того, чтобы перенести какой-либо протекающий процесс на диск, поэтому вы по сути заставили его просочиться исключительно в физическую ОЗУ.

В статье TechNet Возникла проблема с чрезмерным «измененным» использованием памяти в Win7 x64, более 3,6 ГБ, какие-либо предложения? пользователь с похожими симптомами (большой общий / измененный блок) находит:

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

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

В итоге, как предлагает magicandre1981, проблема заключалась в приложении Dell Wireless (Broadcom) для локальной сети:

Спасибо всем, у меня была та же проблема, я добавил дескрипторы и GDI и увидел, что BCMWLTRY.EXE, утилита беспроводного лотка Dell, создает дескрипторы без остановок. Спасибо за совет. Обновление: поэтому я отключил службу, которая запустила BCMWLTRY.EXE +, перезагрузился, и теперь я не вижу утечки дескриптора. WLTRAY.EXE все еще работает, но он не пропускает дескрипторы.

Аналогично, в Излишне измененной памяти в разделяемой памяти ,

Утилита Dell wlan была причиной. Уничтожение процесса bcmwltry.exe в диспетчере задач освободило память. Но этот процесс начался снова через несколько секунд. Это было довольно дерьмово - я не мог удалить его. К счастью, этот ноутбук все равно нуждался в смене ОС, поэтому я даже не пытаюсь это исправить. ... Та же самая проблема здесь. Уничтожение и отключение DW WLAN (bcmwltry.exe) освободило 5 ГБ памяти. Утечки.

Приложение лотка BCMWLTRY.EXE также участвует в Pagefile и продолжает расти, пока у меня не кончится память

Дополнительные ссылки на проблемы BCMWLTRY.EXE / Dell Wireless Tray (WLTRAY.EXE), диагностику и решения:

Таким образом, в этих случаях это не драйвер, а приложение в трее, которое поставляется вместе с драйвером. Я бы согласился, что, учитывая OEM вашей беспроводной карты, что BCMWLTRY.EXE запущен, и довольно большое количество почти идентичных проблем, это является частью первой проблемы.

Вы также можете добавить столбцы «Дескрипторы» и «Ошибки страницы» в диспетчер задач, чтобы проверить их чрезмерное использование в случае, если есть более ошибочные программы. Вы можете использовать SysInternals VMMap для просмотра распределения виртуальной памяти с точки зрения каждого процесса. Утечки дескрипторов коварны, потому что они также, вероятно, протекают объекты Windows. Microsoft предоставляет инструмент под названием Application Verifier, который, помимо прочего, поможет отследить протекающие маркеры.

Итак, ответ таков : у вас, вероятно, есть утечка памяти, скорее всего, в BCMWLTRY.EXE (или в некоторых других приложениях, у которых есть утечка дескрипторов или подобные общие ресурсы), и ОС не хватает страниц с резервной копией диска, чтобы более «изящно» * обрабатывать такие условие.


* В утечке памяти нет ничего особенно «грациозного», но файл подкачки ~ 4 ГБ позволил бы процессу дойти до своего предела наследования (действующего как квота) и затем аварийно завершить работу, создав явный шаблон в журнале событий определенного сбой процесса с последующим освобождением всех ресурсов и, при перезапуске, повтор. Без встроенного 32-разрядного ограничения адресного пространства, он мог бы сначала пережевать много места на диске. В действительности все процессы теперь ограничены в ресурсах, поэтому менее понятно, закрывается ли он из-за собственной утечки (Firefox) или из-за другого приложения (BCMWLTRY).

Maxx Daymon
источник
Нет способа изящно справиться с такой ситуацией. Разбивка диска операцией подкачки, безусловно, не является изящным решением. На самом деле, я подозреваю, что небольшой файл подкачки избавил его от многих проблем, так как он получил информацию об утечке памяти до того, как система стала полностью непригодной для использования из-за постоянной подкачки страниц.
Бен Фойгт
@BenVoigt Изящного не может быть лучшим термином в этом случае, но это, конечно , спорно неудовлетворительный ли быстро помогли в этом случае. Поскольку все процессы являются 32-разрядными, наличие файла подкачки ~ 4 ГБ позволило бы ошибочному / протекающему процессу превысить его адресную емкость, умереть и вернуть память в очень очевидном цикле (в журнале событий), не вызывая при этом голодание других процессы памяти (например, потеря данных, вызванная Firefox). 64-разрядный процесс разгона в 64-разрядной ОС был бы более проблематичным, и там были бы полезны квоты.
Maxx Daymon
В блоге Марка Руссиновича « Расширяя границы Windows: виртуальная память» он подробно описывает факторы выбора размера файла подкачки. В конце концов, это зависит от пользователя, желают ли они значительно более высокого риска потери данных под нагрузкой или более высокого риска замедления под нагрузкой и в какой степени они хотят взять на себя каждый риск. Вся цель виртуальной памяти состоит в том, чтобы сделать этот выбор.
Maxx Daymon
ОС определенно является 64-битной версией Windows 7, поскольку на снимке экрана диспетчера задач показана общая физическая память объемом 8 ГБ. В 32-битной Windows 7 это значение не будет превышать 4 ГБ.
Эндрю Медико
1
@AndrewMedico Это спорный вопрос. Как указал and31415, OP использует 64-битный. Тем не менее, PAE будет включена в клиент x86 Windows на компьютерах , обладающих достаточной , но установить его , чтобы> 4GiB выглядит , как будто это нарушение лицензии и , следовательно , не подходит для обмена здесь, но много людей делают это, несмотря на нарушение лицензии.
Maxx Daymon
13

Ваш измененный список памяти слишком велик (см. Большую оранжевую полосу в ResMon). Это использует более 3 ГБ ОЗУ. Одна известная причина - старые драйверы Broadcom Wifi. Если ваш ноутбук использует адаптер Broadcom Wifi, обновите драйверы или остановите BCMWLTRY.EXE при запуске с помощью msconfig.exe, чтобы исправить это.

magicandre1981
источник
У меня есть DW1530 Wireless-N WLAN Half-Mini Card. Есть ли способ определить потребление памяти на уровне драйвера?
Boris_yo
3
Можете ли вы предоставить ссылку в поддержку вашего ответа?
Абхиджит
@Abhijit - проблема хорошо известна. Я согласен, что эта проблема действительно вызвана водителем.
Ramhound
1
Давние проблемы с утечкой памяти BCMWLTRY.EXE
Maxx Daymon
9
The problem is well known.Возможно, но это не значит, что даже люди, которые знакомы с ним, не говоря уже о тех, кто не может, просто могут поставить и диагностировать это без ссылки на страницу с соответствующими шагами. Если вы ссылаетесь на что-то подобное, тогда уместно ссылаться на него, а не просто ожидать, что люди уйдут и сами его найдут. Если это то, что вы ожидаете, то вы должны просто упомянуть это в комментарии, а не в ответе.
Synetech
6

Некоторое время назад у меня разыгралась шутка, когда кто-то отредактировал мои настройки MSConfig, ограничив мою максимальную память следующим образом:

MaxMem

Так что это еще одна потенциальная причина.

JMK
источник
Спасибо за помощь, но никто не подшучивал над мной.
Boris_yo
4
Это не проблема здесь. ОС видит и использует все 8 ГБ ОЗУ.
Эндрю Медико
4

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

Abhijit
источник
Запись дополнительных 3 ГБ «модифицированной памяти» в файл подкачки ничего не даст, кроме дополнительных 3 ГБ записи на диск, изнашивания его SSD и замедления других программ, которые должны выполнять дисковый ввод-вывод.
Бен Фойгт
2
Это, безусловно, позволило бы добиться чего-то: освободило бы 3 ГБ ОЗУ для процессов, которые действительно хотят его активно использовать.
Эндрю Медико
Другие процессы, имеющие свободную оперативную память, не помогают им, если они ожидают в очереди ввода / вывода. И наличие свободной оперативной памяти является временным, когда у вас такая большая утечка, вы только удваиваете время.
Бен Фойгт
2

Ваша система использует все 8 ГБ ОЗУ, просто она использует ее не так эффективно, как хотелось бы. Я вижу огромное количество кеша в системе. Windows автоматически уменьшит размер кеша, поскольку приложениям требуется больше оперативной памяти.

Что касается размера файлов подкачки, я процитирую кого-то (Марк Руссинович), который на самом деле знает, о чем они говорят:

Насколько большой я должен сделать файл подкачки?

Возможно, один из наиболее часто задаваемых вопросов, связанных с виртуальной памятью, заключается в том, насколько большим должен быть файл подкачки? Нет конца нелепым советам в Интернете и в газетных киосках, посвященных Windows, и даже Microsoft опубликовала вводящие в заблуждение рекомендации. Почти все предложения основаны на умножении объема ОЗУ на некоторый коэффициент, с общими значениями 1,2, 1,5 и 2.

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

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

Учитывайте скорость в ОЗУ по сравнению с SSD или жестким диском, если учитывать человеческое время. [Память класса памяти: технологии, системы и приложения - страница 22]

  • Доступ к ОЗУ занимает около 60 нс, что позволяет приравнять это к 1 минуте в человеческом масштабе.
  • Доступ к SSD занимает около 50 мкс, это примерно в 800 раз медленнее, чем ОЗУ, что составляет около 14 часов в человеческом масштабе.
  • Быстрый доступ к жесткому диску занимает 5 мс, это примерно в 83 000 раз медленнее, чем ОЗУ, что составляет 60 дней в человеческом масштабе.

Вы действительно хотите, чтобы ваша оперативная память была почти случайным образом перетасована на запоминающее устройство, которое в 1 или 100 раз медленнее, чем ОЗУ, просто потому, что у вас недостаточно ОЗУ?

Еще один момент, о котором я не слышал, это то, что чип Intel HD Graphics 3000 использует «разделяемую память». На приведенном скриншоте он может потреблять до 1,7 ГБ вашей оперативной памяти. Так что поцелуй на около 1 ГБ вашей общей оперативной памяти до свидания там.

Ausmith1
источник
около 1Гб? Его более 1,5 ГБ, вероятно, больше (ближе к 2 ГБ), если учесть, что ОС собирается зарезервировать часть памяти для связи с ней.
Ramhound
Драйверы Intel будут предполагается настроить себя на основании разрешения и глубины цвета , что пользователь является движущей силой системы в. Таким образом, по крайней мере, 1 ГБ оперативной памяти ушел сразу, но вы совершенно правы, что в зависимости от обстоятельств пользователей драйверы Intel могут использовать более близкие к 2 ГБ драйверы. И это не легко увидеть это «невидимое» использование оперативной памяти с помощью встроенных в Windows инструментов.
Ausmith1
Причина, по которой я сказал 1.632GB, в том, что это то, что показано на скриншоте, если я не принимаю буквально использование, когда его нет.
Ramhound
Да, в тот конкретный момент времени он использовал 1632 МБ, в другое время он мог бы быть больше / меньше. Отключение Intel HD-видео, вероятно, является самым простым решением для этой системы, если предположить, что пользователь желает жить с последствиями наличия только графического процессора Nvidia, такими как увеличение использования батареи. Кажется, небольшая цена, чтобы заплатить мне, чтобы вернуть 1,5 ГБ оперативной памяти.
Ausmith1
4
Этот ответ немного вводит в заблуждение. Вы цитируете Марка Руссиновича, но на самом деле не следуете его советам в связанной статье.
JCM
0

Ваш BIOS и драйверы в порядке, как и ваша физическая память. Возиться с настройками оборудования и BIOS вы ничего не получите. Проблема в вашем смехотворно маленьком файле подкачки. Он должен быть таким же большим, как ваша установленная физическая память, но он равен 512 МБ, что составляет всего лишь 1/16 этого размера. Чтобы исправить проблему, сделайте это:

Перейдите в Панель управления / Система и безопасность / Система / Дополнительные параметры системы.

Выберите вкладку «Дополнительно» и нажмите кнопку «Настройки» в разделе «Производительность».

Выберите вкладку «Дополнительно».

Под Виртуальной памятью нажмите Изменить.

Установите флажок «Автоматически управлять размером файла подкачки для всех дисков».

Теперь просто нажмите кнопку ОК и перезагрузите, как требуется.

Кэри Грегори
источник
Windows хочет использовать 12 ГБ файла подкачки, и у меня есть 120 ГБ SSD с 17,8 ГБ свободного места на диске. Я мог бы попробовать, но я думаю, что 12 ГБ файла подкачки слишком много для моего неагрессивного использования.
Boris_yo
2
@Boris_yo Почему бы вам не получить стандартный жесткий диск емкостью 500 ГБ или 1 ТБ для хранения всего, что не нужно использовать на SSD? В любом случае, из-за того, как работает TRIM, заполнение твердотельного накопителя практически невозможно, и я уверен, что при необходимости вы можете переместить файл подкачки в другое место (например, на жесткий диск).
Томас,
Что сказал Томас Ваш SSD перегружен как есть. Как правило, плохая идея - заполнить твердотельный накопитель на 80%, а на системный диск всегда требуется не менее 20 ГБ. 12 ГБ для файла подкачки не должны быть проблемой, поэтому вам нужно разгрузить как минимум 20 ГБ на другой диск или просто найти способ освободить это место.
Кэри Грегори
В любом случае вы не должны выгружать SSD.
Даниэль Р Хикс
(По сути, Windows не будет использовать больше места для приложений, чем пространство файлов подкачки.)
Дэниел Р Хикс,
0

Windows 7 агрессивно кеширует информацию. Это во многом то, что заставило его работать лучше, чем Vista. У вас все еще есть куча свободной памяти, которую можно использовать, если она нужна вашим программам, просто Windows старается быть умной и угадывать, что вашему компьютеру понадобится или к чему будет обращаться дальше, поэтому она предварительно загружает (кэширует) информацию в оперативную память, которая получает Доступ много. Поскольку Windows не нужно искать эту информацию на жестком диске, это заставляет Windows работать быстрее.

http://arstechnica.com/information-technology/2010/02/behind-the-windows-7-memory-usage-scaremongering/

Дэвид
источник
-1

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

Jules2U
источник
1
Что вы подразумеваете под моими бегущими ботами?
Boris_yo
Он имеет в виду вредоносное ПО или тому подобное.
Ausmith1