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

ВУЗ: Не указан

Категория: Книга

Дисциплина: Операционные системы

Добавлен: 29.10.2018

Просмотров: 33149

Скачиваний: 742

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

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


background image

Утилиты для получения информации о системе 

Глава 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


background image

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 (Неиспользуемая) — неиспользуемая память; всегда находится 

в списках ZeroedFree или Bad.

SIN_ch_14.indd   364

27.12.2011   14:38:40


background image

Утилиты для получения информации о системе 

Глава 14  365 

Процессы

На вкладке Processes (Процессы) показано разделение по категориям стра-
ниц физической памяти, которые могут быть связаны с одним процессом 
(рис. 14-2). Сюда включена закрытая память процессов пользовательского 
режима, а также память режима ядра, содержащая таблицы страниц процес-
сов. В столбцах PrivateStandby и Modified показан объем закрытой памяти 
процесса из списков ActiveStandby и Modified, соответственно. В столбце 
Page Table показана суммарная память режима ядра, выделенная под табли-
цы страниц процессов.

Рис. 14-2.  RAMMap, вкладка Processes

Рис. 14-3.  RAMMap, вкладка Priority Summary

SIN_ch_14.indd   365

27.12.2011   14:38:40


background image

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