В нашей ферме SharePoint все наши внешние веб-серверы имеют много памяти в «ждущем» режиме, что означает, что для нашего рабочего процесса IIS доступно очень мало памяти.
У нас 32 ГБ оперативной памяти в каждом из ящиков, а резервная память увеличится примерно до 28 ГБ, тогда как рабочий процесс IIS, похоже, использует только около 2 ГБ. Кроме того, мы видели, как машина широко использовала файл подкачки, когда эта память была в режиме ожидания, поэтому я начинаю думать, что эта память в режиме ожидания не позволяет IIS использовать ее, заставляя ее переключаться на диск, что вызывает больше проблем с производительностью. .
я использовал SysInternals RamMap чтобы определить, что хранится в памяти, и он смог сказать мне, что почти все в резервной памяти относится к типу «Mapped File».
Когда я сортирую файлы, перечисленные на вкладке сводки файлов в RamMap, по размеру файла, самые большие файлы (около нескольких сотен мегабайт каждый) - это файлы журнала IIS и файлы журнала SharePoint.
Я хотел бы понять, какой процесс загружает эти файлы в резервную память и почему они не освобождаются. Когда я делаю iisreset
, он не освобождает память.
Любые идеи?
Спасибо!
Резервная память - это данные, которые были кэшированы в память и с тех пор не изменялись (хотя они могли быть прочитаны) и при необходимости могут быть удалены. По запросу он может быть мгновенно освобожден. Если бы физическая оперативная память была нужна для чего-то еще, резервная память была бы отброшена, она сохранялась бы в памяти на случай, если она снова понадобится, и ее будет быстрее получить из памяти, чем с диска.
Все сопоставленные файлы поддерживаются файлом подкачки, поэтому, если процесс имеет сопоставленное представление файла размером 2 ГБ, он будет подкреплен 2 ГБ файла подкачки. Поэтому, если IIS запущен и у него есть несколько файлов журнала, открытых для записи, вполне возможно, что они будут резервировать место в файле подкачки. Это не проблема и не повлияет отрицательно на производительность.
У 2008 R2 есть реальная проблема с переводом памяти в режим ожидания. Особенно на коробках Itanium. «Это известная проблема», - ответил я от MS.
Windows обычно хорошо использует память, когда она доступна, и освобождает ее, когда это требуется другим процессам. «Отображенный файл» не использует физическую память, а только виртуальную. Процесс может сопоставить файл с памятью для доступа к содержимому файла, как если бы он находился в памяти - и этот метод может быть быстрее, чем доступ к файлу с помощью традиционных методов. Но опять же, это не означает, что в память загружается весь файл.
Вы наблюдаете реальные проблемы с производительностью на машине?
Можете ли вы опубликовать некоторую статистику на вкладке «Производительность» в диспетчере задач Windows?