22 октября 2015 г.

Особенности конфигурации памяти в SAP AS ABAP на Linux

В прошлом посте я писал про особенности конфигурации памяти в ABAP инстанции SAP системы, работающей в среде операционной системе MS Windows. Особый упор был сделан на механизм упрощенной конфигурации или ZAMM. В этот раз рассмотрим среду Linux.

В операционной системе Linux доступны две разные системы управления памятью. Переключение производится посредством SAP параметра es/implementation:
  • MAP implementation (es/implementation = map).
  • STD implementation (es/implementation = std).

MAP implementation - в данном случае, только активный в текущий момент времени контекст пользователя виден в адресном пространстве рабочего процесса. Использование оптимально в 32-битной версии операционной системы. Возможно использование для систем на базе SAP Kernel 4.5B (уровень патча 731) и выше. Для SAP Kernel версий от 6.20 до 7.00 является системой по-умолчанию (es/implementation = map).

Для использования необходимо Linux ядро 2.4 и TMPFS, смонтированная под /dev/shm, так как SAP Extended Memory хранится в TMPFS.

Стоит отметить, что в данном случае, возможна активация Zero Administration Memory Management (ZAMM), как в операционной системе MS Windows

Как и в MS Windows, активируется через параметр PHYS_MEMSIZE, который устанавливается в зависимости от размера оперативной (физической) памяти. Возможна установка в процентном отношении ('100%', '50%', '25%'). В данном случае, сообщение об ошибке ('не цифровое значение') в RZ10 можно игнорировать. Большая часть параметров должна быть удалена из профиля, их установка будет выполнена в автоматическом режиме, в зависимости от параметра PHYS_MEMSIZE (рис. 1).

Рис. 1. Параметры SAP профиля, которые устанавливаются в рамках ZAMM.

Данную схему управления можно использовать и в 64-битной операционной системе, но это не рекомендуется. 

В ноте, помимо вышеуказанной информации, описано, как корректно монтировать TMPFS, в поддерживаемых SAP AG, версиях Linux.


STD implementation - в данном случае, используется схема управления памятью, как в Unix системах: все контексты пользователей видны в адресном пространстве одновременно. Начиная с SAP Kernel 7.10, в 64-битных Linux системах STD implementation активировано по-умолчанию. 

При STD implementation значение параметров SAP идентично классической Unix схеме. Про это я писал в посте - Организация памяти в SAP AS ABAP - III.

В данном контексте важными являются следующие параметры операционной системы Linux (настройка в файле /etc/sysctl.conf):
  • kernel.shmmax - не рекомендуется изменять значение, которое установлено по-умолчанию, так как оно уже достаточного размера.
  • kernel.shmall - не рекомендуется изменять значение, которое установлено по-умолчанию, так как оно уже достаточного размера.
  • TMPFS - хотя уже не используется для хранения SAP Extended Memory, но SAP рекомендует использовать значение равное 75 % от виртуальной памяти операционной системы (ОЗУ + swap).
В ноте описаны SAP параметры с их назначением, схемы выделения памяти (о которой я писал тут), а также, возможные ошибки в системе.


P.S. Коллеги, у кого системы работают на AIX (до SAP NetWeaver 7.40), помогите материалом для следующего поста: скриншоты, список нот, личные заметки. Знаю, что там есть своя специфика в работе механизма управления памятью, но сам никогда с системами на этой операционной системе не сталкивался. Спасибо. :)

6 комментариев:

  1. Спасибо,

    подскажите пожайлысте, что лутьше применить.
    STD implementation (es/implementation = std) или PHYS_MEMZISE параметер ?

    Если применять параметер STD implementation (es/implementation = std), вырешеваються другие параметры автоматически (как при PHYS_MEMSIZE)?

    Спасибо

    ОтветитьУдалить
    Ответы
    1. На сколько я помню, es/implementation = std никак не связан с PHYS_MEMSIZE, это немного другое. А вот Zero Administration Memory Management (ZAMM) по-моему на свежих ядрах можно активировать и при es/implementation = std режиме. Поищите в SAP нотах.

      Удалить
    2. большое спасибо. Можете пожайлуста подсказать мне, если на одном сервере установленны вместе: SAP Application Server и HANA DB, можно ли использовать Zero Managment, т.е. установить только параметр PHYS_MEMSIZE и удалить остальные? Правильно ли я понимаю, что память увеличивается только до PHYS_MEMSIZE для Инстации SAP?
      Спасибо большое

      Удалить
    3. Теоретически да, только в пределах этого параметра. Но нужно изучать именно для вашей версии системы. Могут быть нюансы.

      Удалить
  2. Спасибо большое.
    Одно мне не понятно.

    В SAP-Note 941735 стоит следущее:
    // SAP-Kernel < 7.40: три параметра профиля, используемые с реализацией MAP (em/address_space_MB, em/max_size_MB и PHYS_MEMSIZE), не имеют значения, если вы используете реализацию STD. //

    занaчит если я использую Параметр (Linux):
    es/implementation = std
    тогда
    я не могу применить этот параметр PHYS_MEMSIZE.

    Как же тогда будут вырешиваться другие Buffer Parameter ? Как в этом случае (es/implementation = std) применить Zero Managment,если эти параметры (em/address_space_MB, em/max_size_MB и PHYS_MEMSIZE) не имеют значения ???
    Или я что то не правильно понимаю ?

    Спасибо огромное

    ОтветитьУдалить
    Ответы
    1. Ну, если вы используете SAP HANA, значит у вас релиз SAP ядра выше, чем 7.40. Эта фраза относится только к старым ядрам, где ZAMM в Linux поддерживался только для 32-бит.

      Удалить