На наших 64-битных серверах Windows 2008 R2, похоже, есть несоответствие между числом, показанным в диспетчере задач на вкладке «Производительность» в графике памяти, и суммой памяти (частный рабочий набор) на вкладке «Процессы». Первый стабильно выше. Несоответствие, похоже, не зависит от объема памяти, выделенной для блока, или от количества процессов в блоке. Для четырех исследованных мною серверов расхождение составляло от 853 МБ до 4,178 МБ. Может кто-нибудь объяснить это?
Помимо частных рабочих наборов процессов, существует множество других типов памяти, которые влияют на общее использование памяти, например, выделение ядра, страницы, отображаемые в рабочий набор системного кэша, страницы в измененном списке и т. Д. Вы можете использовать RamMap.exe (http://technet.microsoft.com/en-us/sysinternals/ff700229.aspx), чтобы получить более подробную картину того, что на самом деле находится в памяти.
График «памяти» в диспетчере задач - это объем общей физической памяти на вашем компьютере за вычетом доступной физической памяти.
Счетчик рабочего набора процесса также смотрит на физическую память - но общие библиотеки DLL, которые используют только одну ячейку физической памяти, учитываются в рабочем наборе каждого процесса, который ее использует, поэтому рабочий набор превышает объем памяти.
Если процесс выгружает память на диск, она не включается в счетчик рабочего набора и, следовательно, может привести к тому, что рабочий набор занижает объем используемой памяти.
Вот список того, к чему относятся все счетчики: http://msdn.microsoft.com/en-us/library/aa965225(VS.85).aspx
А вот довольно хороший пост в блоге, в котором подробно рассказывается: http://www.itwriting.com/dotnetmem.php