В серии статей, посвященных Монитору ресурсов Windows (Resource Monitor), я рассказываю, как этот инструмент может пригодиться администраторам при диагностике потенциальных узких мест, связанных с системными ресурсами. В трех предыдущих статьях я описывал использование Монитора ресурсов для наблюдения за производительностью дисковой подсистемы, центрального процессора и сети. В заключительной статье цикла речь пойдет о мониторинге состояния памяти.
Для удобства рассмотрения мы будем использовать скриншот Монитора ресурсов (рис. A), запущенного на производственном сервере под управлением Windows Server 2008 R2. На этом сервере установлен Exchange Server 2010 со всеми ролями, поэтому он очень активно использует оперативную память. Как и все другие наши серверы, этот работает в виртуальной машине на базе VMware vSphere 4.1.
Рисунок A. Монитор ресурсов в Windows Server 2008 R2 – вкладка «Сеть» (нажмите на изображении для увеличения).
Давайте посмотрим, какие сведения о памяти можно получить с помощью Монитора ресурсов на данном сервере Windows.
Процессы
В разделе «Процессы» (Processes) на вкладке «Память» (Memory) собраны ключевые сведения об использовании оперативной памяти процессами. Вот какую информацию здесь можно найти:
• «Образ» (Image) – имя исполняемого файла. Это имя процесса, активно использующего память. • «ИД процесса» (PID) – идентификатор процесса. Может пригодиться для управления процессами с использованием других утилит или для поиска процессов в Диспетчере задач (Task Manager). • «Ошибок отсутствия страницы в памяти/сек.» (Hard Faults/sec). Такие ошибки иногда еще называют страничными (Page Fault). Ошибка отсутствия страницы в памяти – не обязательно критическая, но может указывать на нехватку оперативной памяти. Такая ошибка возникает всякий раз, когда система использует файл подкачки на диске. Это важный момент, поскольку диск работает намного медленнее оперативной памяти, что ощутимо снижает быстродействие. Если страничные ошибки возникают регулярно, и особенно если показатели высокие, следует задуматься о расширении объема оперативной памяти сервера. • «Завершено (КБ)» (Commit (KB)) – общий объем физической и виртуальной памяти (файла подкачки), выделенной данному процессу. • «Рабочий набор (КБ)» (Working Set (KB)) – объем физической памяти, выделенной данному процессу. Показатель в этом столбце должен быть равен сумме показателей в двух следующих столбцах, которые являются его составляющими. • «Общий (КБ)» (Shareable (KB)) – общий объем выделенной данному процессу физической памяти, которая при необходимости может использоваться совместно с другим процессом. • «Частный (КБ)» (Private (KB)) – общий объем выделенной данному процессу физической памяти, которая не может использоваться другими процессами.
Физическая память
Под разделом «Процессы» располагается раздел «Физическая память» (Physical Memory), в котором содержатся следующие сведения:
• «Используется» (In Use) – объем памяти, которая в данный момент используется. • «Доступно» (Available) – сколько еще от общего объема физической памяти доступно для выделения. • «Зарезервированное оборудование» (Hardware Reserved) – количество памяти, зарезервированной для различных устройств. Почти любой аппаратный компонент сервера может резервировать для себя память. На нашем сервере Exchange, как видно из рис. A, зарезервирован 1 Мбайт. • «Изменено» (Modified). Данные записываются на страницы памяти и хранятся на них, пока в фоне происходит обработка другой информации. При обновлении данных в памяти эти страницы помечаются как измененные. Чтобы система могла использовать ресурсы памяти наиболее эффективно, страницы памяти, к которым давно не обращались, могут быть перенесены в следующую категорию: • «Ожидание» (Standby). К этой категории относится память, содержащая кэшированные данные и код, которые в данный момент активно не используются, но могут потребоваться в обозримом будущем. Для управления этим классом памяти Windows присваивает каждой странице определенный приоритет. Когда у других процессов возникает потребность в оперативной памяти, страницы с низким приоритетом извлекаются из категории «Ожидание» и предоставляются процессам, которые в них нуждаются. • «Свободно» (Free) – объем свободной памяти, которая никак не используется. Можно подумать, что столь ничтожный объем свободной памяти в системе, имеющей 16 Гбайт RAM, свидетельствует о наличии серьезных проблем, но на самом деле, это не так. Многие новые продукты Microsoft устроены таким образом, что для них куда продуктивнее использовать весь объем доступной оперативной памяти, чем позволять ей простаивать. Например, Exchange полностью использует всю доступную память, кэшируя определенные фрагменты данных для обеспечения быстрого доступа.
Распространенная ошибка – судить о состоянии системы только по показателям «Используется» и «Доступно» и беспокоиться, если определенный процесс потребляет слишком много памяти. Важно понимать, как именно должно себя вести то или иное приложение.
К примеру, Exchange 2010 зачастую использует весь объем доступной памяти, и это не случайно. Exchange старается кэшировать как можно больше данных для повышения быстродействия в целом. Поэтому чтобы определить, есть ли на сервере Exchange 2010 проблемы с памятью, необходимо учитывать и другие показатели, в том числе ошибки отсутствия страниц в памяти. Если служба не должна потреблять много памяти, но потребляет, требуется более тщательная диагностика. В этом случае может пригодиться Монитор производительности (Performance Monitor).
В заключение
Надеюсь, этот цикл статей о Мониторе ресурсов помог вам освоить новые способы мониторинга состояния Windows Server с помощью простого и бесплатного инструмента, который разработчики Microsoft встроили в операционную систему, чтобы облегчить администраторам диагностику проблем, связанных с производительностью.