Подтвердить что ты не робот

Какая разница между рабочим набором и размером фиксации?

при отладке ошибок OOM, какая разница между рабочим набором и размером фиксации? Особенно, какое точное значение для размера фиксации?

4b9b3361

Ответ 1

Отсюда рабочий набор:

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

Размер фиксации:

общий объем виртуального адресного пространства для страниц, для которого не назначено хранилище резервных копий, отличное от файла подкачки. В системах с файлом подкачки это можно рассматривать как максимальное возможное использование pagefile. В системах без файла подкачки он по-прежнему учитывается, но все такое виртуальное адресное пространство должно постоянно оставаться в физической памяти (ОЗУ).

Таким образом, вы можете думать о рабочем наборе как о количестве используемой физической памяти, в то время как размер фиксации указывает объем используемой виртуальной памяти (такие вещи, как библиотеки DLL или файлы с отображением памяти, которые могут быть возвращены файлами, отличными от файла страницы).

Тем не менее, эти цифры обычно не полезны при попытке найти "утечки памяти" в.NET. Вместо этого вы должны использовать сторонние профилировщики памяти.

Ответ 2

Committed Memory или Commit Charge - это вся оперативная память, которую ЦП либо выделил, работал, либо работает для запуска приложений и операционной системы.

Это общая загрузка платформы, отражающая использование реальной памяти - или нехватка ОЗУ, когда вступает в игру Pagefile. Этот фиксированный лимит равен установленному ОЗУ (за исключением зарезервированного оборудования) или RAM + файл подкачки должен быть понятным при рассмотрении вышеизложенного:)

Рабочий набор не является показателем использования памяти.

Рабочий набор - это уровень приоритета, заданный для данных в ОЗУ , которые невозможно выгрузить, чтобы уменьшить давление памяти.

Рабочий набор для процесса динамически назначается диспетчером OS Memory Manager (Balance Manager).

https://msdn.microsoft.com/en-us/library/bb742613.aspx

Настройка производительности системы Windows

Самый высокий минимум WS, разрешенный для 32-битных процессов, составляет 4 ГБ, для 64-битных - 8 ГБ. Это минимальное количество оперативной памяти, гарантированное для приложения, фактическое использование может и обычно намного больше.

Это особенно актуально для 32-битных приложений на 64-битном оборудовании. Все, что превышает 4 ГБ, не отображается в рабочем наборе, потому что оно находится в списке ожидания.

Например, Fallout New Vegas (32-битное приложение) с тонны мод может съесть 9 ГБ оперативной памяти, 5 ГБ будет в списке ожидания.

Легко проверить, какие данные находятся в ОЗУ через сторонние инструменты (например, Systernals).

Примечание: Кэшированные данные не учитываются в пределе Commit Limit (обычно файлы, открытые с жесткого диска).

Cached и Standby сначала очищаются, чтобы перезагрузить память. Ни один из вариантов не идеален. Лучше иметь больше оперативной памяти, чем свободную память. Это то, что для ОЗУ - Кэширование данных.

Commit Charge также является хорошим способом оценить минимальные требования к ОЗУ для конкретной машины Когда PF включится, если Commit превысит RAM, разница в том, сколько еще требуется RAM.

IBM описывает Committed Memory как потребляемую системную память.

(https://www.ibm.com/support/knowledgecenter/en/SSEPGG_9.7.0/com.ibm.db2.luw.qb.server.doc/doc/c0057140.html)

Внутренние документы Windows описывают Committed Pages как страницы, которые в конечном итоге переводятся в физическую память

(Microsoft Windows Internals 6th Edition, глава 10: Управление памятью с .195)

AMD определяет Commit как безвозвратно записать законченную инструкцию в физическую память.

(http:/developer. amd.com/wordpress/media/2012/10/24593_APM_v21.pdf)

Все ОЗУ и файл Pagefile, объединенные в контексте ОС, - это виртуальная память.

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

"Рабочий рабочий процесс" - это то, что процесс знает как ОЗУ.

A Объект раздела - это общее физическое пространство памяти, которое может быть просмотрено CPU. Является ли хранение ОЗУ или жесткого диска несущественным. На 32-битном оборудовании объект раздела составляет 4 ГБ. На 64-битном оборудовании это 256TB.
"Сегмент" определяет виртуальный кеш, а "Рабочий набор" определяет уровень кэша.

https://i.stack.imgur.com/9rZEW.jpg


Примечание: **** При обсуждении пределов памяти в блогах Technet/MSDN обращаются к объектам раздела как "хранилище резервных копий" или "разделы подфайла подкачки".

"В целом" (: P) эти блоги были опубликованы около 10 лет назад. (Время, когда Intel пыталась внедрить AMD в землю, и Microsoft просто искалечила XP/Vista 32 при продвижении x64. Многие узнают историю (: P).

x86-32 включает IA-32 и K7, оба из которых теперь являются динозаврами.

AMD64 прибыл с K8. Intel64 с C2D.


Intel заявляет, что инструкция Committed может быть отменена и отложена. Я бы предположил, что откат происходит из-за HT, а отложенные средства откладываются до тех пор, пока файл подкачки не освободит оперативную память (это будет рассмотрено). Руководство разработчика программного обеспечения Intel® 64 и IA-32 Volume 3B: Руководство по системному программированию, часть 217-10

Инженеры иногда ссылаются на Commit Charge как "System Working Set" или "CPU Working Set".

Отчеты о работе системы и отчета диспетчера задач.

https://msdn.microsoft.com/en-us/library/bb742613.aspx

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

Теоретически объект раздела может быть 128TB -256TB на 64-битном оборудовании. Если 32-битный процесс достигает предела в 4 ГБ, CPU указывает на другой виртуальный сегмент в ОЗУ (дальний указатель) и продолжает грузоперевозки.

Ничего не изменилось, по крайней мере, на аппаратной стороне.

Здесь 32-битный API имеет недостаток. Страницы, на которые ссылается 32-битный процесс, но вне его. 4 Гб Рабочий набор предполагается включенным в файл подкачки, даже если нет файла подкачки.

Страницы добавляются в резервный или кешированный как файлы с отображением памяти (это можно увидеть с помощью RAMMap).