Комментарии по теме

«Ко­рре­кти­ро­вка таблиц базы данных с помощью ABAP»
Олег Точенюк:
Андрей а вам никто никогда не говорил, что обновлять таблицы базы данных SAP категорически запрещено, независимо от того чем обусловлены такие желания. Свои Z-таблицы, да сколько угодно, но......
«Будущее SAP»
Артем Седловский:
Добрый день всем! Интересная философская статья. Позволю себе ответить на вопросы, заданные в конце. К сожалению, в развитии продуктов и особенно в приобретениях лично я наблюдаю отсутствие...
«Тра­нза­кция SM02: сообщения в SAP системе»
Олег Башкатов:
С помощью ФМ TH_POPUP можно отправить сообщение конкретному пользователю :-)

База знаний

Вы можете подписаться на эту колонки этого автора, если авторизируетесь или зарегистрируетесь

SAP NetWeaver 7.4: особенности конфигурации памяти

18 апреля 2016, 14:59

Начиная с SAP Kernel 7.40 (ядро, которое поставляется в паре с системой SAP NetWeaver 7.4), в организации памяти в SAP AS ABAP были внедрены два крупных нововведения:

  • упразднение SAP Roll memory,
  • введение Zero Administration Memory Management (ZAMM) для Unix систем.

В классической схеме, как я уже упоминал в этом и этом постах, SAP Roll Memory состоит из SAP Roll buffer и SAP Roll file и служит для хранения контекста пользователя (имя, полномочия, значения по умолчанию и т.д.). Схемы выделения памяти для диалогового и не-диалогового процессов (в Unix системах), описанные мной тут, выглядят следующим образом:

  • диалоговый процесс: Roll memory (1) -> Extended memory -> Roll memory (2) -> Heap memory.
  • не-диалоговый процесс: Roll memory -> Heap memory -> Extended memory.

В SAP NetWeaver 7.4 схема выделения памяти значительно упростилась:

  • диалоговый рабочий процесс: Extended memory -> Heap memory.
  • не-диалоговый рабочий процесс: Heap memory -> Extended memory.

Описание схем можно найти в SAP note # 941735 - SAP memory management system for 64-bit Linux systems.

Таким образом, SAP параметры ztta/roll_area, ztta/roll_first, rdisp/ROLL_MAXFS и rdisp/ROLL_SHM были удалены (источник). Напомню, что все параметры я перечислял в этом посте.

Все данные, которые раньше хранились в SAP Roll memory, теперь хранятся в Extended Memory.

В транзакции ST02 строка с SAP Roll memory присутствует в виде рудимента (Рис. 1 и 2).

Рис. 1. Основной экран транзакции ST02 в системе SAP NetWeaver 7.4.

Рис. 2. Список SAP параметров для настройки памяти в SAP AS ABAP.

В системе можно воспользоваться отчетом RSMEMORY (запуск через транзакцию SA38/SE38) (Рис. 3). Отчёт позволяет настраивать схемы выделения памяти для диалоговых и не-диалоговых рабочих процессов (схема выделения будет действовать только для текущей инстанции и только до перезапуска). Подробности можно найти тут.

Рис. 3. Отчет RSMEMORY.

Вторая важная особенность системы на базе SAP Kernel 7.4x это введение ZAMM для Unix систем. До этого момента ZAMM был доступен для систем MS Windows (я описывал тут) и для 32-х битных Linux систем (подробности тут).

ZAMM, в данном случае, настраивается аналогичным образом. Конфигурируем значение параметра PHYS_MEMSIZE, если необходимо (по-умолчанию, равен размеру физической памяти, установленной на сервере) (Рис. 4).

Рис. 4. Параметр PHYS_MEMSIZE.

В отличие от систем на платформе MS Windows, Extended Memory в Unix статична:

em/max_size_MB = em/initial_size_MB = 70 % от PHYS_MEMSIZE (Рис. 5 и 6).

Рис. 5. Параметр em/initial_size_MB.

Рис. 6. Параметр em/max_size_MB.

Формулы для всех параметров, значения которых рассчитываются в рамках ZAMM, можно найти в SAP note # 2085980 - New features in memory management as of Kernel Release 7.40.

Стоит отметить еще пару моментов. Как я упоминал в этом посте, внутри Extended Memory выделяют область, которая называется Extended Global Memory (сокращенно EG). Данная область определяется параметром em/global_area_MB и составляет около 5-10 % от Extended Memory (SAP note # 1514752 - Extended Global Memory configuration). Начиная с SAP Kernel 7.40, в Extended Global Memory перенесли Table Buffer, который хранит записи таблиц на уровне сервера приложений SAP. И всё это хранится в Extended Memory (Рис. 7).

Рис. 7. Содержимое Extended Memory в SAP AS ABAP.

Таким образом, в новой версии SAP NetWeaver Extended Memory содержит больше областей, чем в предыдущих версиях. Это означает, что при равных значениях параметра em/initial_size_MB в ранних релизах и в SAP NetWeaver 7.4, в последней может наблюдаться недостаток данной памяти для работы пользователей. Особенно следует учитывать данную деталь в случае обновления системы до версии SAP NetWeaver 7.4 с предыдущих версий. На основном экране транзакции ST02 перенос Table Buffer в EG легко прослеживается (рис. 1).

Подробности в SAP note # 2148571 - Explanation for higher Extended Memory (EM) and Extended Global Memory (EG) consumption after upgrade to SAP Kernel 7.4x.

Начиная с SAP NetWeaver 7.4 SPS08 (SAP Kernel 7.42), появляется новый вид памяти - PROC/Heap Memory, который принадлежит рабочим процессам (то есть является локальным), но не содержит контекст пользователя, как Heap Memory. Лимит, определяющий максимальное количество данной памяти для всех рабочих процессов, определяется параметром em/proc_max_size_MB. Значение по-умолчанию равно 0, что означает без ограничений. При введении ограничения рекомендуется выделять по 100 Мб на один рабочий процесс.

Подробности в SAP note # 2019744 - How to limit overall swap space consumption of the ABAP Server in NW 7.40

Ролевое назначение : SAP Консультант / Consultant

Функциональная область : Информационные технологии / IT, Basis, ABAP

Ключевые слова : SAP NetWeaver

Комментарии:

Илья Муковоз (Рейтинг: 4972) 15:25, 20 апреля 2016

Вячеслав, добрый день!
Подскажите, когда в системе начинает работать задание в BTC процессе, на уровне управления памятью происходит выделение и блокирование всего объема памяти, установленного параметром abap\heap_area_nondia, и 10 одновременно работающих BTC отъедят/заблокируют под себя 10*abap\heap_area_nondia Gb памяти, или это максимальное значение после которого мы получим дамп с ошибкой о нехватке памяти?
15:52, 20 апреля 2016

Вячеслав Шиболов (Рейтинг: 444)

Илья, добрый день!
 
Этот параметр (abap\heap_area_nondia) ограничивает максимальный объем выделяемой памяти, по достижению которого процесс будет остановлен с дампом. Выделение памяти же идет постепенно, в зависимости от потребностей процесса.
18:20, 20 апреля 2016

Илья Муковоз (Рейтинг: 4972)

Спасибо, Вячеслав!