Анализатор log-файлов самонастраивающегося менеджера памяти DB2

Впервые в IBM® DB2® для Linux®, UNIX® и Windows® 9 была реализована новая функциональная возможность настройки памяти - самонастраивающийся менеджер памяти (Self-Tuning Memory Manager - STMM). STMM упрощает задачу конфигурирования памяти, автоматически устанавливая значения некоторых критичных параметров конфигурации памяти. В данной статье представляется простая программа анализа log-файлов STMM, упрощающая мониторинг решений, принятых менеджером памяти.

Аскари Нагви, аналитик по разработке программного обеспечения, IBM

Аскари Нагви (Askari Naqvi) работает в организации DB2 в IBM Toronto Lab. Последние шесть лет он занимался несколькими критичными функциональными возможностями и улучшениями DB2 нескольких версий. К некоторым заметным проектам относятся DB2 Satellite, DB2 Query Patroller, Autonomics, Automatic Tablespaces и STMM. В настоящее время работает над Workload Management и улучшением Storage Management в DB2. Аскари получил степень магистра по вычислительной технике в McGill University, Монреаль.



Кристиан Гарсиа-Ареллано, разработчик программного обеспечения, IBM

Кристиан Гарсиа-Ареллано (Christian Garcia-Arellano) работает в отделе DB2 Engine Development в IBM Toronto Lab. Последние пять лет он в основном занимался несколькими улучшениями DB2, связанными с памятью, включая проектирование и разработку STMM. К другим проектам относятся улучшения в Configuration Advisor, управление памятью сортировки, исследование воздействия оперативной настройки памяти на рабочие нагрузки. Также занимается автономными проектами, например, Design Advisor.



Хэйсам Алсаед, тестировщик программного обеспечения, IBM

Хэйсам Алсаед (Haysam Alsayed) работает в отделе DB2 System Verification в IBM Toronto Software Lab. Хэйсам пришел в IBM в мае 2006 года, а изучал программирование в Schulich School of Engineering, University of Calgary. До сих пор занимался тестированием продукта DB2 Connect на различных хост-серверах, таких как z/os и iSeries. Также участвовал в тестировании DB2 9, в частности, интеграционных возможностей STMM, DB2 Connect и Security.



Адам Сторм, разработчик программного обеспечения, IBM

Адам Сторм (Adam Storm) работает в группе DB2 Engine Development в IBM Toronto Lab. Последние шесть лет занимался несколькими улучшениями DB2, связанными с памятью. К этим проектам относятся улучшения DB2 Configuration Advisor, создание DB2 Memory Tracker и работа над DB2 Memory Visualizer. Работал также над несколькими другими автономными проектами IBM, включая программу db2support и DB2 Design Advisor. В настоящее время Адам является ведущим разработчиком STMM для DB2 9.



06.06.2008

Важно: ознакомьтесь с отказом от ответственности перед прочтением данной статьи.

Введение

Менеджер памяти динамически распределяет доступные ресурсы памяти между ее потребителями, включая кучу сортировки, кэш пакета, список блокировки и буферные пулы. Эта функциональная возможность работает итеративно, изменяя конфигурацию памяти на небольшие значения с целью улучшения общей производительности системы.

Все изменения, сделанные STMM, регистрируются в двух местах: файле db2diag.log и log-файле STMM. Ниже рассмотрено содержимое обоих log-файлов и способы мониторинга изменений, сделанных STMM, при помощи программы db2diag и parseStmmLogFile.pl.


Как работает STMM

STMM принимает свои решения при помощи новых показателей, прогнозирующих, какой эффект окажет дополнительная память на данную кучу. Эти показатели, совместно с усовершенствованными алгоритмами настройки STMM, могут, в большинстве случаев, настроить систему из начальной конфигурации в почти оптимальную по использованию памяти в течение часа или менее. Однако при настройке системы STMM может принять сотни решений, каждое из которых приводит к изменениям параметров конфигурации или размера буферного пула. Поскольку в параметре конфигурации учитывается только самое последнее такое изменение, определение исторических значений конфигурационных параметров или буферных пулов требует исследования файла db2diag.log и log-файла STMM.


Мониторинг изменений в файле db2diag.log

Файл db2diag.log представляет собой репозиторий для простой информации по каждому изменению конфигурации, сделанному менеджером памяти. В данном файле содержатся записи, показывающие изменения конфигурации (листинг 1).

Листинг 1. Запись, показывающая изменение конфигурации
2006-10-17-19.10.00.912218-240 I408210A457        LEVEL: Event
PID     : 946302               TID  : 1           PROC : db2stmm (MYDB1) 1
INSTANCE: ewhhr                NODE : 001         DB   : MYDB1
APPHDL  : 1-52                 APPID: *N1.cgarciaa.060809150048
AUTHID  : CGARCIAA
FUNCTION: DB2 UDB, config/install, sqlfLogUpdateCfgParam, probe:20
CHANGE  : STMM CFG DB DEWHR000: "Sheapthres_shr" From: "109306" <automatic>
                                                 To: "105115" <automatic>

Обратите внимание на то, что в приведенной выше записи изменение конфигурации предваряется выражением "STMM CFG". Оно означает, что данное изменение выполнено STMM, в отличие от изменения, инициированного пользователем. Также в этом файле имеются записи, показывающие изменения буферного пула (листинг 2).

Листинг 2. Запись, показывающая изменение буферного пула
2006-10-17-19.03.58.672185-240 I395047A488        LEVEL: Event
PID     : 946302               TID  : 1           PROC : db2stmm (MYDB1) 1
INSTANCE: ewhhr                NODE : 001
APPHDL  : 1-52                 APPID: *N1.cgarciaa.060809150048
AUTHID  : CGARCIAA
FUNCTION: DB2 UDB, buffer pool services, sqlbAlterBufferPoolAct, probe:90
MESSAGE : Altering bufferpool “BUFFERPOOL_16K" From: “117268" <automatic>
                                               To: “109666" <automatic>

Эти записи можно легко отфильтровать при помощи программы db2diag. Например, для просмотра всех изменений размера буферного пула можно использовать следующую команду:

Листинг 3. Команда db2diag для просмотра изменений буферного пула
db2diag -g "message:=Altering bufferpool" db2diag.log

Для базы данных с несколькими разделами, использующей функциональность разделения данных DB2, можно отфильтровать изменения, выполненные для каждого раздела, используя параметр -node. Например, следующая команда фильтрует все обновления конфигурации в разделе 1 базы данных:

Листинг 4. Команда db2diag для просмотра изменений конфигурации
db2diag -node 1 -g "changeevent:=CFG DB" db2diag.log

Log-файл STMM

Кроме записей в файле db2diag.log изменения регистрируются также более подробно в log-файлах STMM, которые сохраняются в подкаталоге с названием stmmlog, в том же каталоге, в котором находится и файл db2diag.log. Log-файлы STMM предназначены, в основном, для использования отделом поддержки DB2 при определении проблем. Однако некоторая информация о настройках в log-файлах STMM может помочь администраторам баз данных понять решения, принятые STMM. Каждая запись в log-файлах STMM содержит статистические показатели, собранные перед принятием решения по настройке, и действия, выполненные на основе этих показателей. Журнал регистрации STMM разделен максимум на пять файлов, максимальный размер каждого из которых равен 10MB. Эти файлы обрабатываются циклически, а перед созданием нового файла всегда удаляется самый старый.

Анализатор log-файлов STMM предназначен для фильтрации важной информации по настройке и ее форматирования, для того чтобы облегчить отображение эволюции конфигурации памяти.


Анализ log-файла STMM

Программа анализа parseStmmLogFile.pl, представленная здесь, имеет следующий синтаксис:

Листинг 5. Синтаксис parseStmmLogFile.pl
parseStmmLogFile.pl <log file> <database name> <options>

Программа выводит сгенерированную информацию в виде таблицы. Первые четыре столбца этой таблицы остаются постоянными независимо от параметров, выбранных пользователем. Это следующие столбцы:

  • Порядковый номер интервала настройки.
  • Время возникновения интервала настройки.
  • Общее количество секунд после первого интервала настройки в log-файле.
  • Продолжительность времени в секундах, прошедшего с начала предыдущего интервала настройки. Это значение включает время, потраченное на изменение размера куч памяти и на сбор статистических показателей для принятия решения по настройке.

В листинге 6 показан пример первых четырех столбцов с двумя интервалами настройки.

Листинг 6. Пример информации, выводимой parseStmmLogFile.pl
[ MEMORY TUNER - LOG ENTRIES ]
[ Interv ] [        Date         ] [ totSec ] [ secDif ]
[        ] [                     ] [        ] [        ]
[      1 ] [ 02/01/2006 09:45:02 ] [     76 ] [     76 ]
[      2 ] [ 02/01/2006 09:46:03 ] [    137 ] [     61 ]

В зависимости от выбранных параметров программа анализирует log-файл STMM и собирает подробную информацию по этим выбранным параметрам. Можно выбрать четыре параметра:

  • (s) - Отображает информацию, относящуюся к новому размеру (параметр по умолчанию).
  • (m) - Отображает минимальный размер каждого потребителя.
  • (o) - Отображает информацию по настройке DATABASE_MEMORY.
  • (4) - Преобразовывает размер всех потребителей памяти в 4KB-страницы. Должен комбинироваться с одним из параметров, указанных выше.

Пример 1. История изменения размеров кучи

Этот параметр используется для отображения изменений конфигурационных параметров и буферных пулов, выполненных STMM.

В листинге 7 команда parserStmmLogfile.pl отображает информацию из двух интервалов настройки. Первый интервал начинается после 76 секунд с начала создания log-файла STMM, а двумя настраиваемыми параметрами являются SHEAPTHRES_SHR и PCKCACHESZ. Вторая строка отображает второй интервал настройки, начавшийся спустя 61 секунду, и результаты передачи 1000 страниц из PCKCACHESZ в SHEAPTHRES_SHR.

Листинг 7. Пример выводимой информации по интервалам настройки
$ parseStmmLogFile.pl stmm.0.log mydbname s
                      
  [ MEMORY TUNER - LOG ENTRIES ] 
  [ Interv ] [        Date         ] [ totSec ] [ secDif ] [ newSz ]
  [        ] [                     ] [        ] [        ] [ SHEAPTHRES_SHR  PCKCACHESZ ] 
  [      1 ] [ 02/01/2006 09:45:02 ] [     76 ] [     76 ] [ 31482 19438 ]       
  [      2 ] [ 02/01/2006 09:46:03 ] [    137 ] [     61 ] [ 32482 18438 ]

Пример 2. История изменений размеров памяти базы данных

Следующая команда используется для вывода основной информации о решениях по настройке памяти базы данных. В нее включен столбец, указывающий общий объем памяти системы, определенный настройщиком памяти (configMem), объем физической памяти, доступной для использования базой данных DB2 (memAvail), и текущий объем памяти базы данных общего пользования, размер которой задается конфигурационным параметром DATABASE_MEMORY (setConfSz).

Листинг 8. Пример выводимой информации по настройке database_memory
$ parseStmmLogFile.pl stmm.0.log mydbname o

[ MEMORY TUNER - DATABASE MEMORY AND OVERFLOW BUFFER TUNING - OG ENTRIES ]
[ Interv ][ Date                ][ totSec ][ secDif ][ configMem ][ memAvail ][ setCfgSz ]
[      1 ][ 02/01/2006 09:45:02 ][     76 ][     76 ][       N/A ][      N/A ][      N/A ]
[      2 ][ 02/01/2006 09:46:03 ][    137 ][     61 ][   4194304 ][  1559966 ][    62224 ]

Пример 3. История изменений SORTHEAP

Данная команда используется для вывода итоговой информации по настройке значения конфигурационного параметра SORTHEAP. Каждая строка представляет успешное автоматическое обновление значения SORTHEAP. Выводятся следующие столбцы: предыдущее значение конфигурационного параметра SORTHEAP (OLD), текущее значение (NEW), минимальное и максимальное значения, вычисленные настройщиком памяти (min и max).

Листинг 9. Пример выводимой информации по настройке SORTHEAP
$ parseStmmLogFile.pl stmm.0.log mydbname v

[ SORTHEAP TUNING - SORTHEAP CHANGE VALIDATION RECORDS ]
[ Date                ][ totSec ][ secDif ][ SHEAPTHRES_SHR ][ OLD ][ NEW ][ min ][  max ]
[ 02/01/2006 14:51:01 ][    184 ][    184 ][          11212 ][ 373 ][ 560 ][ 224 ][ 2243 ]

Советы и рекомендации

  • Убедитесь в том, что имя базы данных, указанное при выполнении программы, существует в log-файле STMM.
  • Для оптимальных результатов указывайте только один параметр (m, s, или o) при каждом выполнении программы, для того чтобы гарантировать читабельность.
  • Если параметры не указаны, по умолчанию используется параметр s.
  • Подробный список параметров представлен внутри самого сценария вместе с примерами, приведенными выше.
  • Программа для работы требует наличия в системе установленного интерпретатора Perl. Если интерпретатор Perl в вашей системе отсутствует, его можно загрузить с сайта http://www.perl.org. Перед загрузкой и установкой этого программного обеспечения убедитесь в том, что не нарушаете политику вашей организации по использованию программного обеспечения сторонних фирм.
  • Эта инструментальная программа была разработана на языке сценариев Perl, что позволяет администраторам базы данных изменять ее для своих потребностей. Например, ее можно изменить и использовать другой формат, который можно импортировать в другие программы, например, для графического отображения исторических данных.

Отказ от ответственности

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


Загрузка

ОписаниеИмяРазмер
Программа анализа STMM log-файловparseStmmLogFile.pl44KB

Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Information Management, Open source
ArticleID=312428
ArticleTitle=Анализатор log-файлов самонастраивающегося менеджера памяти DB2
publish-date=06062008