Первый этап. Мониторинг памяти

Оценить
(1 голос)

Чтобы проверить, не является ли память "узким местом", следует воспользоваться утилитой vmstat, которая показывает, в том числе, что происходит с памятью в системе. Для целей оперативного мониторинга хорошим выбором является контрольный интервал в 5 секунд.

Трасса утилиты vmstat, представленная на рисунке 21.1, демонстрирует систему, в которой не ощущается нехватка памяти.

На что следует обращать внимание

Прежде всего, обратите внимание на значения показателей ро (pageouts - вытеснения страниц из оперативной памяти, количество килобайтов данных, вытесненных из оперативной памяти за секунду) и sr (scan rate - скорость сканирования, количество страниц памяти, отсканированных по алгоритму синхронизации). Когда эти показатели постоянно имеют высокие значения за один и тот же промежуток времени (например, значительно больше 100 (Кбайт или страниц соответственно) в секунду на системе с объемом оперативной памяти до 4 Гбайт, на более мощной системе это значение может быть больше), тогда возможно, что демон страниц вынужден скрывать свободную память от выполняющихся процессов. Необходимо ли увеличить объем памяти на,этой системе? Возможно, что да.

Однако увеличение памяти может и не помочь. Это могло бы показаться полной бессмыслицей, но, к сожалению, здесь не все так просто. Для прояснения ситуации потребуются некоторые дополнительные Пояснения.

Pageouts (вытеснения страниц из оперативной памяти) могут происходить по целому ряду причин, включая следующие:    

•             "Грязные" (измененные) страницы файловой системы сбрасываются на диск. Такое опорожнение является нормальным и не создает проблем. Если файлы БД размещаются в файлах файловой системы, следует ожидать появление этого вида вытеснения страниц.

•             Страницы памяти приложения выталкиваются на устройство своппинга (подкачки) для того, чтобы освободить оперативную память для других целей. Если рассматриваемые приложения являются активными или собираются стать активными, то замещение страниц - это плохо!

•             Новая память была затребована некоторым приложением, и ему была назначена область подкачки. Эта ситуация также соответствует норме и не является проблемой.

•             Страницы памяти были освобождены приложениями и выгружаются на диск. Не является ли замещение страниц пустой тратой времени, если память приложениям больше не требуется? Конечно является! В Solaris 8 был введен новый флаг MADV_FREE системного вызова madvise( ), который предназначен для того, чтобы разработчики могли сообщить операционной системе об отсутствии необходимости выгружать на диск такие страницы памяти.

Scan rate (скорость сканирования) представляет собой меру активности демона страниц. Этот демон активизируется и начинает искать страницы памяти для освобождения в том случае, когда какое-нибудь приложение не может найти достаточное количество в списке свободной памяти (память уменьшается до значения, задаваемого системным параметром lotsfree). Чем больший дефицит памяти, тем быстрее демон страниц будет сканировать страницы в основной памяти.

Основными потребителями памяти в системе являются:

•             Приложения, включая текст (двоичный код), стек, который содержит информацию, относящуюся к текущей стадии выполнения программы и ее функциям, динамическую память, содержащую рабочую область программы, и память совместного использования.

•             Страничный кэш файловой системы, который содержит ее данные; все блоки файловой системы на диске должны быть считаны в память до того, как смогут быть использованы. Этот кэш становится важным, когда файлы БД сохраняются в файловых системах.

•             Ядро операционной системы.

Нормальное замещение страниц до Solaris 8
Приоритетное замещение страниц
Файлы UFS и замещение страниц
Нормальное поведение замещения страниц, начиная с операционной системы Solaris 8
Продолжение углубленного анализа

Добавить комментарий


Защитный код
Обновить