Что может быть причиной такого высокого коммит-заряда в XP?

6463
thomasrutter

У меня возникали ошибки памяти при работе виртуальных машин в VirtualBox, поэтому я проверил свой коммит-заряд и вот, это 1913 МБ!

У меня только 2 ГБ физической памяти.

После закрытия всех «приложений» у меня остается около 1800 МБ. Это большая часть моей оперативной памяти. Открывающий проводник процессов не показывает процессов, которые кажутся неработоспособными, самая большая область памяти - это проводник процессов размером около 26 МБ, а все остальное немного меньше.

Могут ли Windows "утечь" память? Стоит ли подозревать драйвер или что-то вроде антивируса Symantec? Будет ли их использование памяти вообще отображаться в проводнике процессов?

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

0

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

4
Andrew Moore

Плата за фиксацию - это максимально возможное использование файла подкачки . Это не связано с оперативной памятью.

Windows в основном адресует память в файл подкачки, прежде чем какие-либо приложения используют ее, основываясь на текущем использовании файла подкачки. Плата за фиксацию не отражает текущее использование памяти, но отражает, сколько памяти Windows использует текущая адресация в файле подкачки.

Утилита диспетчера задач Windows на вкладке «Производительность» отображает три счетчика, связанные с начислением платы:

  • Итого - это количество используемого виртуального адресного пространства на основе файла подкачки, т. Е. Текущая стоимость фиксации. Соответствующий счетчик производительности называется «Committed Bytes».
  • Limit - максимально возможное значение для Total; это сумма текущего размера файла подкачки плюс физическая память, доступная для подкачки (это исключает ОЗУ, которое выделено для областей, не предназначенных для страниц). Соответствующий счетчик производительности называется «Commit Limit».
  • Пиковое значение - это наибольшая сумма, которую достигла общая сумма фиксации с момента последней перезагрузки компьютера.

Плата за фиксацию увеличивается при открытии и использовании любой программы и снижается при закрытии программы. Это также изменится, когда уже запущенные программы выделяют или освобождают частную виртуальную память; например, с API-интерфейсами VirtualAlloc и VirtualFree.

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

Некоторая дополнительная информация доступна в документации Windows XP .

Спасибо - я был в значительной степени осведомлен о том, что плата за коммит уже была, но меня озадачивает то, почему он поднимается до стратосферного уровня при работе виртуальных машин, но никогда не возвращается после завершения работы, что в конечном итоге приводит к ошибкам нехватки памяти. thomasrutter 14 лет назад 0
В этом случае это будет ошибка в мониторе VirtualBox. Очевидно, он выделял кучу для каждой запущенной виртуальной машины, а затем не освобождает ее при остановке виртуальной машины. Однако закрытие монитора должно заставить все это исчезнуть. Jamie Hanrahan 7 лет назад 0
1
thomasrutter

Кажется, это проблема с VirtualBox.

Я отключил технологию виртуализации Intel в Virtualbox, как предлагалось на другом форуме, и до сих пор у меня не было проблем.