Файл: Руссинович М., Маргозис А. Утилиты Sysinternals. Справочник администратора 2012.pdf
Добавлен: 29.10.2018
Просмотров: 33149
Скачиваний: 742

362 Часть
II
Работа с утилитами
Все процессы пользовательского режима и большинство программ ре-
жима ядра обращается к коду и данным через адреса виртуальной памяти.
Этот код и данные могут находиться в физической памяти или в файле на
диске, но должны быть спроецированы в рабочий набор процесса
1
— физи-
ческую память, которую диспетчер памяти назначает процессу, — когда про-
цесс считывает и записывает данные или выполняет код. Утилита VMMap,
описанная в главе 7, показывает память с точки зрения виртуального адрес-
ного пространства процесса: сколько занято исполняемыми и другими
проецированными файлами; сколько занято стеками, кучами и другими
областями данных; сколько виртуальной памяти спроецировано в рабочий
набор процесса; сколько памяти не используется. RAMMap представляет
память как общесистемный ресурс, совместно используемый всеми процес-
сами. Виртуальная память процесса, выделенная и разделенная на страни-
цы, в RAMMap не отображается. На рис. 14-1 показана вкладка Use Counts
(Счетчики использования) окна RAMMap.
Рис. 14-1. Вкладка Use Counts в RAMMap
На семи вкладках RAMMap показаны данные о памяти, представленные
с различных позиций, включая тип, список страниц, использование процес-
сами, приоритет, проецируемые файлы и т.д. Некоторые вкладки содержат
очень много информации. Чтобы быстро найти строку, содержащую иско-
мый текст, такой как имя файла или процесса, нажмите Ctrl+F, чтобы от-
крыть окно Find (Найти), или нажмите F3, чтобы повторить предыдущий
поиск. Данные можно обновить в любое время, нажав F5.
Подробнее об описанных здесь концепциях см. в пятой редакции книги
«Windows Internals» (Microsoft Press, 2009).
1
Обычно это так, но не всегда: расширения оконного доступа к адресам (Address Windowing
Extension, AWE) и крупные страницы памяти не входят в рабочий набор, даже при обращении к ним.
SIN_ch_14.indd 362
27.12.2011 14:38:40

Утилиты для получения информации о системе
Глава 14 363
Счетчики памяти
Таблицы и диаграммы на вкладке Use Counts (Счетчики) показыва-
ют данные об использовании разных типов и страниц памяти (рис. 14-1).
В столбцах таблицы и на итоговой диаграмме над таблицей показано, сколь-
ко оперативной памяти находится в каждом из списков диспетчера памяти.
В строках таблицы и на сводной диаграмме слева от нее показано распре-
деление оперативной памяти по типам. Цвета заголовков строк и столбцов
служат ключом для интерпретации соответствующих диаграмм. Порядок
столбцов можно изменять, перетаскивая их за заголовки, и можно сортиро-
вать таблицу по содержимому столбцов, щелкая заголовки этих столбцов.
Последовательные щелчки заголовков переключают сортировку по возрас-
танию и по убыванию.
На этой вкладке показаны следующие списки страниц памяти:
• Active (Активная) — память, которая доступная для обращения без обра-
ботки страничной ошибки. Сюда включена память, находящаяся в рабочем
наборе одного или нескольких процессов или одном из системных рабочих
наборов (например, рабочем наборе системного кеша), а также неподкачи-
ваемая память, такая как пул неподкачиваемой памяти и AWE.
• Standby (Ожидающая) — кешированная память, которая удалена из ра-
бочего набора, но может вернуться в него (в активную память) после об-
работки «мягкой» страничной ошибки (soft fault). К этой памяти можно
обратиться без дискового ввода-вывода.
• Modified (Измененная) — память, удаленная из рабочего набора, моди-
фицированная, но еще не записанная на диск. Ее можно вернуть в рабо-
чий набор после «мягкой» страничной ошибки, но перед повторным ис-
пользованием она должна быть записана на диск.
• Modified no write (Измененная, без записи) — то же, что и Modified, за
тем исключением, что по запросу драйверов файловой системы страница
была помечена как не записываемая на диск автоматически, например, из
за записи транзакций NTFS.
• Transition (Переход) — временное состояние страницы, заблокирован-
ной в памяти драйвером для выполнении ввода-вывода.
• Zeroed (Обнуленная) — память, заполненная нулями и доступная для
выделения.
• Free (Свободная) — незанятая и не обнуленная память. Доступна для
выделения кодом режима ядра и пользовательского режима после ини-
циализации. При необходимости диспетчер памяти может обнулять
страницы свободной памяти перед передачей их пользовательскому про-
цессу. Поток обнуления страниц, запускаемый с более низким приорите-
том, чем все остальные потоки, заполняет свободные страницы нулями и
перемещает их в список Zeroed (Обнуленная), из-за чего в этом списке
обычно очень мало страниц.
SIN_ch_14.indd 363
27.12.2011 14:38:40

364 Часть
II
Работа с утилитами
• Bad (Плохая) — непригодная к использованию память, сгенерировавшая
ошибку контроля четности или другую аппаратную ошибку. В этот же
список Windows помещает страницы, переходящие из одного состояние
в другое, и внутренние списки страниц.
В строках таблицы отображаются следующие типы памяти:
• Process Private (Закрытая память процесса) — память, которая может
использоваться только одним процессом.
• Mapped File (Проецируемый файл) — разделяемая память, представля-
ющая содержимое файла на диске. Примеры проецируемых файлов — ис-
полняемые образы и DLL ресурсов.
• Shared Memory (Разделяемая память) — память, которая может сообща ис-
пользоваться несколькими процессами и выгружаться в файл подкачки.
• Page Table (Страничная таблица) — память режима ядра с простран-
ствами виртуальных адресов процесса.
• Paged Pool (Выгружаемый пул) — выделяемая ядром память, которую
можно выгрузить на диск.
• Nonpaged Pool (Невыгружаемый пул) — выделяемая ядром память, ко-
торая должна всегда оставаться в физической памяти. Память из этого
пула фигурирует только в столбце Active (Активная).
• System PTE (Системные PTE) — память, содержащая записи системной
страничной таблицы (page table entry, PTE), которые используются для
динамического проецирования системных страниц, таких как диапазоны
ввода-вывода, стеки ядра и проекции списков описателей памяти.
• Session Private (Закрытая память сеанса) — память, выделяемая кодом
Win32k.sys или сеансовыми драйверами (например, драйверами видеоа-
даптера, клавиатуры и мыши) для использования одним сеансом служб
терминалов.
• Metafile (Метафайл) — память для метаданных файловой системы,
включая каталоги, файлы подкачки и файлы метаданных NTFS, таких
как MFT.
• AWE — память, используемая расширениями AWE. AWE — это набор
функций, с помощью которых программы могут управлять данными,
хранящимися в оперативной памяти.
• Driver Locked (Блокированная драйверами) — память, выделяемая
драйверами из системного пула памяти, всегда находится в списке актив-
ных страниц. Hyper-V и Virtual PC используют такую память в качестве
оперативной памяти виртуальных машин.
• Kernel Stack (Стек ядра) — память стеков потоков режима ядра.
• Unused (Неиспользуемая) — неиспользуемая память; всегда находится
в списках Zeroed, Free или Bad.
SIN_ch_14.indd 364
27.12.2011 14:38:40

Утилиты для получения информации о системе
Глава 14 365
Процессы
На вкладке Processes (Процессы) показано разделение по категориям стра-
ниц физической памяти, которые могут быть связаны с одним процессом
(рис. 14-2). Сюда включена закрытая память процессов пользовательского
режима, а также память режима ядра, содержащая таблицы страниц процес-
сов. В столбцах Private, Standby и Modified показан объем закрытой памяти
процесса из списков Active, Standby и Modified, соответственно. В столбце
Page Table показана суммарная память режима ядра, выделенная под табли-
цы страниц процессов.
Рис. 14-2. RAMMap, вкладка Processes
Рис. 14-3. RAMMap, вкладка Priority Summary
SIN_ch_14.indd 365
27.12.2011 14:38:40

366 Часть
II
Работа с утилитами
Сводка по приоритетам
На вкладке Priority Summary (Сводка по приоритетам) показана память,
которая в данный момент числится в списках ожидания, с разделением по
приоритетам (рис. 14-3). В столбце Repurposed (Изменено назначение)
показана память, взятая с момента запуска системы из списков ожидания
для удовлетворения новых запросов выделения памяти, а не возвращенная
в прежний рабочий набор после «мягкой» страничной ошибки. Частое из-
менение назначения для приоритетов от 5 и выше может говорить о том, что
система испытывала или испытывает нехватку памяти, ее производитель-
ность можно повысить путем наращивания оперативной памяти.
Физические страницы
На вкладке Physical Pages (Физические страницы) показана информация
о памяти на уровне отдельных страниц в следующих столбцах:
Physical Address (Физический адрес) — физический адрес страницы;
• List (Список) — список, в котором числится страница;
• Use (Назначение) — тип, например Process Private (Закрытая процес-
са), Kernel Stack (Стек режима ядра) или Unused (Неиспользуемая);
• Priority (Приоритет) — текущий приоритет страницы;
• Image (Образ) — содержит метку «Yes» («Да»), если страница содержит
проецируемый файл образа или его часть;
• Offset (Смещение) — указывает смещение в страничной таблице или
проецируемом файле, которое представляет страница;
• File Name (Имя файла) — имя проецируемого файла, данные которого
содержит физическая страница;
• Process (Процесс) — процесс-владелец (если память связана с одним
процессом);
• Virtual Address (Виртуальный адрес) — для памяти типа Process Pri-
vate (Закрытая память процесса) это виртуальный адрес в адресном
пространстве процесса, для памяти режима ядра, такой как System PTE,
— виртуальный адрес в системном пространстве;
• Pool Tag (Метка пула) — метка выгружаемого или невыгружаемого пу-
лов (если есть). Имеется только у страниц, расположены целиком в одной
выделенной области.
Два раскрывающихся списка в нижней части вкладки позволяют филь-
тровать физические страницы, отображаемые в таблице. В первом раскры-
вающемся списке выберите столбец, по которому нужно отфильтровать
данные, а во втором — значение. Дальнейший анализ можно облегчить, щел-
кнув заголовок столбца, чтобы отсортировать фильтрованные результаты.
Например, чтобы отображались только страницы с приоритетом 7, выбе-
рите Priority (Приоритет) в первом раскрывающемся списке, а во втором
выберите 7. Щелкните на заголовке столбца Use (Использование), чтобы
SIN_ch_14.indd 366
27.12.2011 14:38:41