при отладке ошибок OOM, какая разница между рабочим набором и размером фиксации? Особенно, какое точное значение для размера фиксации?
Ответ 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).