Меню

Буферизация в системе SAP. Часть 2

|

В статье рассмотрены вопросы буферизации на уровне сервера приложений SAP. А так же даны рекомендации по мониторингу и оптимизации буферов серверов приложений SAP.

Часть 1 >>

Проблемы буферизации

При анализе таблиц, в контексте буферизации на уровне 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

У вас уже есть учетная запись?

Войти