Выявление узких
мест, связанных с работой
памяти
Подкачка
страниц (paging)
Дата и код в
памяти разделены на
страницы. На Intel компьютерах
page = 4096 bytes. Каждая страница
памяти хратится в страничном
фрейме (page frame)
Подкачка
страниц (paging) – это процесс
перемещения страниц между
физической и виртуальной
памятью.
Чрезмерное
перемещение страниц с диска
в RAM и наоборот может очень
сильно загрузить процессор.
Эти проблемы легко могут
выглядеть как проблемы с
процессором или с диском.
Virtual
Memory System
Комбинация
из физической памяти (RAM),
кэша файловой системы и
виртуальной памяти на диске
(pagefile.sys) называется Memory
Subsystem.
Код и данные в RAM, которые не
используются активно
сбрасываются в виртуальную
память на диск. Если на
компьютере не хватает RAM, то
обмен с виртуальной памятью
происходит чаще, что сильно
замедляет работу компьютера.
Вся память делится на
зарезервированную,
запомненную и свободную
- Зарезервированная
память (reserved memory):
набор непрерывных
адресов, которые
Диспетчер виртуальной
памяти (VMM) выделяет для
процесса, но не
учитывает в общей квоте
памяти процесса др тех
пор, пока она не будет
фактически
использована. Когда
процессу необходимо
произвести запись в
память, ему выделяется
нужный объем из
зарезервированной
памяти.
- Выделенная
память (committed memory):
память,
зарезервированная в
файле pagefile.sys, на случай,
когда потребуется
выгрузить содержимое
памяти на диск. Объем
выделенной памяти
процесса характеризует
фактически потребляемый
им объем памяти. Объем
выделенной памяти
ограничен размером
файла подкачки.
Предельный объем
выделенной памяти в
системе (commit limit)
определяется тем, какой
объем памяти можно
выделить процессам без
увеличения размеров
файла подкачки.
- Available
Memory (свободная): память
не являющаяся ни
зарезервированной ни
запомненной.
Пулы
памяти (memory pools)
Объекты,
создаваемые и используемые
приложениями и операционной
системой, хранятся в так
называемых пулах памяти.
- Перемещаемый
или нерезидентный пул
(paged pool) содержит
объекты, которые можно
при необходимости
выгрузить на диск– это
виртуальная память.
- Неперемещаемый
или резидентный пул
(non-paged pool) - данные или
код, которые должны
остаться в памяти и не
могут быть записаны или
восстанавлены с диска.
Рабочий
набор (working set) - это
физическая память (RAM)
видимая процессом или
программой.
Ошибки
страниц (page faults)
Ощибки
страниц возникает когда
программа запрашивает
страницу кода или данных,
которая не содержится в
рабочем наборе. И должна быть
найдена где-то в другом
месте.
- Программные
прерывания (soft page fault) – это
когда программа
запрашивает страницу,
которая находится в
памяти, но вне рабочего
набора. В этом случае не
требуется
восстановление страницы
с диска.
- Аппаратные
прерываеия (hard page fault) – это
когда программа
запрашивает страницу,
которая не содержится в
физической памяти (RAM) и
подлежит восстановлению
с диска. Сбои страниц
такого типа лучше всего
показывают наличие
узких мест в
конфигурации памяти.
Более 5 сбоев в секунду
говорят о необходимости
добавления RAM.
Счетчики для объекта
Память
| Page Faults/sec: |
Показывает
насколько часто данные
не находятся в рабочем
наборе. Включает случаи
аппаратных и
программных прерываний |
| Page Inputs/sec: |
Показыает
количество страниц
восстанавленных с диска
за секунду для обработки
прерываний page fault.
Сравнение с Page Faults/sec
дает количество
программных прерываний
типа page fault. |
| Page Outputs/sec: |
Сколько страниц
записывались на диск для
освобождения RAM по
запросу прерывания page
fault. |
| Pages/sec: |
Общее количество
страниц восстановленных
с диска и записанных на
диск. Сумма Page Outputs/sec и
Page Inputs/sec.
Сравнение с Page
Faults/sec дает
представление о
количестве мягких и
жестких сбоев страниц.
Допустимое
среднее значение: 0 - 20
Pages/sec
|
| Pages
Reades/sec |
Показывает
сколько раз в секунду
система осуществляет
чтение с диска по
прерыванию page fault. |
| Pages
Writes/sec |
Показывает
сколько раз в секунду
система осуществляет
запись на диск по
прерыванию page fault. |
| Available Bytes: |
Количество байт в
физической памяти (RAM),
свободных для всех
программ и процессов. Обычно
низок, так как NT Disk Cache
Manager использует
свободную RAM для
кэширования файловой
системы и возвращает ее
по требованию процесса
или программы
Менее 4MB
свободной памяти
показывает наличие
чрезмерного пистания
страниц.
|
| Committed Bytes: |
Общее количество
выделенной памяти для
всех процессов. Показывает
фактический объем
памяти, используемый
системой. Может быть
больше размера RAM.
Превышение
значением счетчика
размера RAM показывает
наличие узкого места.
|
| Pool
Non-paged Bytes |
Общее
количество байт памяти в
резидентном пуле. Эта
память используется
операционной системой
для внутренних нужд. Увеличение
значения этого счетчика
без увеличения
активности компьютера
говорит о наличии
процесса, пожирающего
память.
|
|