Буферизация в системе SAP. Часть 2
В статье рассмотрены вопросы буферизации на уровне сервера приложений SAP. А так же даны рекомендации по мониторингу и оптимизации буферов серверов приложений SAP.
Проблемы буферизации
При анализе таблиц, в контексте буферизации на уровне SAP инстанции, возможны следующие проблемные ситуации:
- таблица, которую следует буферизировать, не буферизируется,
- таблица, которую не следует буферизировать, буферизируется. Например, таблица, данные в которой часто изменяются.
Выявить проблемы с буферизацией поможет транзакция ST10 - Table Call Statistics. Данный инструмент позволяет просмотреть статистику по количеству обращений к таблицам со стороны базы данных и ABAP-процессора, а также информацию по буферизации.
На начальном экране транзакции ST10 следует выбрать пункты "All Tables", "This Server" и "Since Startup" и нажать кнопку "Show Statistics" (рис. 23).
Рис. 23. Начальный экран транзакции ST10.
Статистика отображается в виде таблицы (рис. 24).
Рис. 24. Статистика по таблицам системы.
Настроена ли буферизация для таблицы можно увидеть в поле "Buf key opt":
- ful - полная буферизация,
- gen - буферизация по ключу,
- sng - буферизация единичных записей,
- пусто - буферизация отключена.
В поле "Buffer State" для буферизированных таблиц можно обнаружить следующие значения:
- Valid - записи таблицы в буфере и могут быть прочитаны при запросе,
- Invalid - записи в таблице устарели, потому что операция изменения в базе данных еще не завершена,
- Pending - записи в таблице устарели, но они не будут обновлены при следующем обращении, потому что не прошел период завершения операции изменения в базе данных,
- Loadable - записи в таблице устарели, но будут обновлены при следующем обращении к таблице со стороны ABAP-процессора,
- Loading - записи таблицы в данный момент подгружаются в буфер из базы данных,
- Absent, Displaced - записи таблицы еще не в буфере (например, не было ни одного обращения к ним),
- Multiple - статус возникает для таблиц, для которых активна буферизация по ключу, когда часть областей данных в буфере, а часть нет,
- Error - при загрузке данных в буфер произошла ошибка, буферизация невозможна.
Анализ буферизированных таблиц
Для анализа буферизированных таблиц следует отсортировать таблицу по столбцу "DB Activity - Rows Affected" (рис. 25). Таблицы в топе количества чтений и настроенном буфере должны быть выбраны для дальнейшего изучения. Здесь возможны две причины:
- таблица часто перезагружается в буфер из-за размера или частоты изменений,
- тип буферизации не удовлетворяет условиям WHERE в запросах к таблице.
Рис. 25. Список таблиц с большим количеством чтений из базы данных.
Также можно проанализировать количество "Invalidations" и "Changes" для буферизированных таблиц, отсортировав список по соответствующим столбцам. Таблицы из топ - кандидаты на предмет корректировки настроек буферизации (рис. 26, 27).
Рис. 26. Список таблиц с большим количеством сбоев при чтении буфера.
Рис. 27. Список таблиц с большим количеством изменений.
При нажатии на панели кнопки "Next view" можно посмотреть объём, который каждая таблица занимает в буфере и максимальный размер, который она занимала с момента старта инстанции (рис. 28).
Рис. 28. Анализ объема, занимаемого таблицей в буфере.
Внимание стоит уделить таблицам, которые занимают больше 1 Мб и имеют много "Invalidations", а также таблицам, которые занимают больше 5 Мб.
Предупреждение: никогда не отключайте буферизацию для таблиц из области имен SAP без прямого указания на это в SAP нотах.
Анализ небуферизированных таблиц
Для анализа небуферизированных таблиц можно нажать на панели кнопку "Not buffered" и отсортировать по столбцу "ABAP Processor Requests - Total" (рис. 29).
Рис. 29. Анализ не буферизированных таблиц.
Здесь стоит обратить внимание на небольшие таблицы (< 5 Мб), содержащие настройки системы либо сгенерированные в процессе настройки (например, таблицы типа Aххх, где xxx>499), либо из области имен клиента (Y* или Z*). Также необходимо учитывать частоту изменений данных в таблице (столбец "Changes").
Для таблиц из области имен SAP указания следует искать в SAP нотах.
Нововведения в управлении памятью
Как я уже упоминал в посте "SAP NetWeaver 7.4: особенности конфигурации памяти", в системах, начиная с версии SAP NetWeaver 7.4, в плане управления памятью, появился целый ряд изменений и нововведений. Еще одно нововведение это то, что Generic Table Buffer и Single Record Table Buffer теперь объединены в один буфер, с названием Table Buffer.
Новый вид Table Buffer отображается и может быть проанализирован в той же транзакции ST02 (рис. 30).
Рис. 30. Единый Table Buffer.
Размер его (в Мб) может быть указан через новый параметр rsdb/tbi_buffer_area_MB. Значение параметра (по-умолчанию) равное "1", означает, что размер вычисляется по формуле:
Размер в байтах = (rttb/buffer_length * 1024 + zsca/table_buffer_area) * 1,1
Особенности хранения буферов SAP в памяти
На уровне инстанции SAP системы выделяют две области памяти: Shared Memory (память доступная для
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
ЗарегистрироватьсяУ вас уже есть учетная запись?
Войти