Относится к Что означают виртуальные байты на панели рабочих процессов в диспетчере IIS7.5?
У меня есть сервер, на котором работает несколько разных сайтов. Мы наблюдаем некоторые проблемы с производительностью и памятью.
Когда я перехожу к рабочим процессам, я вижу один из сайтов с количеством виртуальных байтов 5 ГБ. Частные байты - более разумные 800 МБ. Сервер x64 с 8 ГБ памяти и IIS 7.
Проблема в том, что количество виртуальных байтов так велико, или это отвлекающий маневр? Если количество виртуальных байтов велико, означает ли это, что память хранится в файле подкачки, что может вызывать сбой? Или пул приложений просто создает большой кусок виртуальной памяти в Windows x64 и не влияет на другие процессы и не записывается в файл подкачки?
Не обязательно проблема. Этот профиль виртуальной памяти - это то, что мы видим для той же архитектуры и использования физической памяти.
Если бы он продолжался бесконечно, это было бы плохо, и в конечном итоге он бы прекратил свое существование, хотя предел операционной системы довольно высок. Если было выполнено большое выделение виртуальной памяти, а в системе не было достаточно большого непрерывного сегмента, это приведет к сбою выделения виртуальной памяти.
Если вы заинтересованы в учете этого распределения виртуальной памяти, вы можете запустить VMMap от SysInternals. В процессе w3wp, выполняющем приложение .NET Framework, обычно это куча, управляемая сборщиком мусора. Обратите внимание, что когда VMMap подключается к процессу, w3wp будет в течение длительного периода интенсивно использовать эту информацию, пока она собирает эту информацию - о чем следует помнить.
Сборка мусора и производительность
http://msdn.microsoft.com/en-us/library/ee851764.aspx