10 ноября 2015 г.

Материалы SAP курсов: новый ресурс


На странице с материалами SAP курсов появилась ссылка на новый ресурс. Там есть курсы по администрированию SAP систем, BW и Solution Manager. Не знаю, сколько проживет ресурс, это личный блог Евгения Губского.

P.S. Ресурс долго не прожил. Евгений, к сожалению, закрыл свой блог.

Автор: Шиболов Вячеслав Анатольевич


9 ноября 2015 г.

Опрос: дистрибутив Linux и версия ORACLE

По результатам прошлого опроса по платформам, на которых работают SAP системы, можно сделать небольшие выводы. В опросе успело поучаствовать 40 человек. Можно предположить, что это информация по 40 проектам.

Наибольшую популярность среди операционных систем получил Linux, на втором месте AIX. В меньшинстве оказались OS/390, OS/400 от IBM. Сдал позиции и Solaris, некогда очень популярная платформа. Кстати, по операционным системам результаты опроса идут в разрез с результатами статистики, что я выкладывал тут. Что на это повлияло, я не знаю. Может быть изменения в тренде, может быть ограниченность нашей выборки, а может быть не равнозначность данных: в прошлой статистике были данные о приобретенных в компании SAP инсталляциях. А сейчас я просил указывать платформы для "боевых систем".

Среди баз данных по прежнему лидирует ORACLE, до сих пор с большим отрывом. Посмотрим, как будет развиваться ситуация далее. Претендентов на лидерство два: DB2 LUW и SAP HANA Database.

По версиям системы всё получилось более или менее предсказуемо - у большинства относительно свежие версии: SAP NetWeaver 7.4, 7.3, да и версия 7.0 еще не старая. :)

На основе полученных от вас данных (еще раз спасибо за участие), хотел бы провести в вдогонку еще два опроса: посмотреть на наиболее популярную на данный момент версию ORACLE и дистрибутив Linux. Просьба указывать те же системы, что и в прошлом опросе: системы из основных ландшафтов (не песочницы, игровые или "для себя").

В опросе участвовало 23 человека. Всем спасибо.

Результаты:




Автор: Шиболов Вячеслав Анатольевич


6 ноября 2015 г.

Организация памяти в SAP AS ABAP. Заключение

В опубликованных мною 9 постах про организацию памяти в SAP системе (ABAP части) я осветил всё, что планировал на данный момент:

Осталась упомянуть ещё пару моментов. 

Немного повторюсь, но основные цели при конфигурации и рекомендации следующие:
  • В качестве основной области памяти для SAP системы необходимо стремиться использовать SAP Extended Memory, уменьшая долю SAP Roll memory (для систем < SAP NetWeaver 7.40). Необходимо так же избегать использования Heap Memory диалоговыми рабочими процессами и перехода их в PRIV режим. Это позволит рабочим процессам быстро переключать контексты пользователей и поддерживать общую производительность системы при работе большого количества пользователей на высоком уровне.
  • При выборе архитектуры сервера следует отдавать предпочтение 64-битной. Причины я указывал в первом посте.
  • На сервере должна быть сконфигурирована swap область (paging file) достаточного объема. SAP рекомендует использовать размер = 3 * (размер оперативной памяти). Для серверов с большим количеством оперативной памяти следует делать свою поправку, так как цифра по формуле получается очень большой. Минимальные цифры: 32-бита - 3,5 Гб; 64-бита - 20 Гб. Подробности тут
  • Необходимо стремиться в качестве расположения виртуальной памяти SAP использовать оперативную память сервера, а не область подкачки (swap). Основная рекомендация - виртуальная память SAP должна быть меньше, чем 150 % от основной памяти сервера (в идеале, меньше, чем размер физической памяти). Конечно же, не стоит забывать про память, которая выделяется инстанции базы данных (в случае работы центральной инстанции и инстанции базы данных на одном сервере) или другим приложениям.
  • Величина максимального использования Roll area (поле MaxUse) должна быть не больше 80 % от размера буфера Roll area (In Mem). То есть использование файла на диске для Roll area не рекомендуется.
  • Величина максимального использования SAP Extended memory (поле MaxUse) должно быть не больше 80 % от сконфигурированного размера (In Mem). Всем активным пользователям должно с запасом хватать данного вида памяти.
  • Рекомендуется использование «Zero Administration Memory Management» (ZAMM), как наиболее оптимального метода использования памяти системой SAP. Особенно, если вы не сильны в конфигурации памяти, а ваша платформа-версия системы позволяет активировать это.
  • С регулярной периодичностью (не реже 1 раза в месяц) проводить мониторинг использования памяти всеми инстанциями системы, используя транзакцию ST02 и другие инструменты.
  • При изменении конфигурации оборудования или количества рабочих процессов, пользователей, инстанций, компонентов и модулей системы производить своевременную корректировку настроек памяти SAP.
  • Отслеживать дампы системы (транзакция ST22), которые возникают в следствии не оптимальной настройки системы памяти в SAP. Это могут быть дампы вида: STORAGE_PARAMETERS_WRONG_SET, SYSTEM_ROLL_IN_ERROR, TSV_TNEW_BLOCKS_NO_ROLL_MEMORY, SYSTEM_NO_ROLL, SET_PARAMETER_MEMORY_OVERFLOW и т.п.

В составе SAP Kernel есть утилита sappfpar, которая позволяет провести тестирование параметров памяти, установленных в профиле инстанции. 
Запуск производить из под пользователя <sid>adm, формат команды следующий:
 # sappfpar check pf=/usr/sap/<SID>/SYS/profile/<Instance_profile> nr=<system_number> name=<SID> 
В конце экрана с результатами утилита выведет информацию об ошибках и предупреждениях (рис. 1). В данном примере ошибок нет.

Рис. 1. Проверка профиля инстанции с помощью утилиты sappfpar.

Данную проверку можно запустить из транзакции RZ10, выбрав пункт меню "Профиль -> Проверить" (рис. 2). Данная проверка запускается автоматически при сохранении профиля после изменений.

Рис. 2. Результаты проверки профиля инстанции в транзакции RZ10.

У этой утилиты есть другая замечательная функция, которую можно использовать в Unix системах. В посте про мониторинг памяти я описывал как подсчитать общее количество виртуальной памяти в SAP. Утилита sappfpar делает похожие вычисления. В строке "Total, minimum requirement" она выдает минимальные требования к виртуальной памяти со стороны SAP, а в строке "Total, worst case requirement" - максимальное количество, которое может быть занято данной инстанцией (рис. 3 и 4).

Рис. 3. Пример результатов работы утилиты sappfpar.

Рис. 4. Пример результатов работы утилиты sappfpar.

Согласуясь с последней цифрой из результатов работы утилиты, необходимо обеспечить систему достаточным количеством области подкачки (swap). Подробности тут и тут.


По мере раскрытия темы я уже привёл много SAP нот, но есть еще несколько на данную тему:

Данная тема освещается в курсе SAP "ADM315 - Workload Analysis AS ABAP" (Unit 3). Так же можно заглянуть в книгу Thomas Schneider "SAP Performance Optimization Guide".


2 ноября 2015 г.

Какого размера область подкачки необходима для SAP системы?

Как я уже ни раз упоминал, на уровне операционной системы существует понятие виртуальной памяти. Данная память состоит из физической памяти сервера и области подкачки. Область подкачки в разных операционных системах представляет собой либо файл, либо область на жестком диске. В операционных системах семейства MS Windows эта область называется файлом подкачки или paging file и представляет собой один или несколько файлов на жестких дисках сервера (рис. 1).

Рис. 1. Paging file в MS Windows.

В операционных системах семейства Unix данная область имеет название swap (swap space) и, может быть представлена как файловая система или как диск (раздел) целиком (рис. 2).

Рис. 2. Пример вывода команды swapinfo в ОС HP-UX.

Со стороны системы SAP есть определенные требования к размеру области подкачки. При недостаточном размере система может не запуститься, так как не сможет разместить все свои области в виртуальной памяти операционной системы, или могут возникнуть проблемы в работе программы установки системы (SAPINST, SAP Software Provisioning Manager).

В эпоху 32-битных серверных архитектур и небольших объемов физической памяти, требование было простое - 3*(размер физической памяти), но минимум 3,5 Гб.

Сейчас все поменялось. При объеме физической памяти в 128 Гб, выделять для swap области 384 Гб нерационально и бессмысленно. К тому же, кардинально изменился состав SAP систем - инстанция базы данных, ABAP инстанция, которая может включать в себя PAS (CI) и AAS (DI), Java инстанция (SCS инстанция, Java инстанция с разным количеством Server processes), SAP агенты (SMD и SAP Host Agent) и т.д. Каждая компонента системы имеет свои требования к виртуальной памяти.

Как рассчитать общие требования при установке той или иной SAP системы?

Ну во-первых, требования к памяти есть в Installation Guide для каждой системы. Конечно же, требования там начальные, но и они позволяют запустить систему и работать с минимальной нагрузкой со стороны пользователей.
Во-вторых, на этой странице SAP Community Network есть ссылка на документ, в котором проведена попытка свести требования к памяти со стороны различных компонент SAP системы в таблицы. А к SAP note # 1518419 - Page file and virtual memory required by the SAP system прикреплена Excel-табличка, которая позволяет произвести подсчет требований к виртуальной памяти операционной системы. Введя размер физической памяти сервера, можно получить требования к размеру области подкачки (рис. 3).

Рис. 3. Пример расчета paging file для SAP системы.

Данная нота и расчёт созданы для операционных систем семейства MS Windows, но я думаю, что для Unix систем, в качестве точки отсчета, это то же можно смело использовать.

Для продуктивной системы, конечно же, необходимо проведение процедуры Hardware Sizing совместно с производителем оборудования.

Также в составе SAP Kernel есть утилита memlimits, которая позволяет протестировать выделение памяти в данной операционной системе. Программу на 64-битных платформах необходимо запускать с ключом -l, указав после него размер запрашиваемой памяти в Мб (рис. 4):
 # memlimits -l 20000 
Рис. 4. Пример вывода команды memlimits -l 20000 в HP-UX.

Первая строка в результатах "Maximum heap size per process" показывает, сколько памяти может быть занято локально одним процессом - Local work processes memory.
"Maximum protectable size (mprotect)" показывает лимит для SAP Extended Memory.
"Maximum address space per process" - лимит памяти, которая может быть выделена процессу в сумме.

На операционной системе MS Windows данная утилита так же доступна, но картина с результатами несколько иная (рис. 5).

Рис. 5. Пример вывода команды memlimits -l 20000 в MS Windows.

Здесь важной является первая строка результата - "Maximum heap size per process", которая, как и в Unix, показывает сколько памяти может быть выделено одному рабочему процессу в системе.

Данной утилитой так же можно проверить максимальное количество доступной виртуальной памяти, указав после ключа -l большое число (например, 120000) и проанализировав результаты в последней строке (рис. 6).

Рис. 6. Пример вывода команды memlimits -l 120000 в HP-UX.

Перед запуском утилиты необходимо убедиться, что SAP система полностью остановлена.

Подробности можно найти тут или в справке к программе по ключу -h:
 # memlimits -h 

Автор: Шиболов Вячеслав Анатольевич


28 октября 2015 г.

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

Начиная с 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. SAP параметр em/initial_size_MB.

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


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), помогите материалом для следующего поста: скриншоты, список нот, личные заметки. Знаю, что там есть своя специфика в работе механизма управления памятью, но сам никогда с системами на этой операционной системе не сталкивался. Спасибо. :)

19 октября 2015 г.

SAP NetWeaver AS ABAP 7.03 SP4 64-bit Trial

MiniSAP(старое название) - это SAP система, созданная прежде всего для разработчиков на ABAP, распространяется компанией SAP бесплатно, как Trial версия. Я про это писал в этом и этом постах.

Сегодня я хочу написать, как установить систему SAP NetWeaver AS ABAP 7.03 SP4 64-bit Trial. На данный момент это последняя версия ABAP Trial системы, которую можно скачать.

Доступна она, как и две предыдущие, по этой ссылке (необходима бесплатная регистрация на SAP SCN портале).

Требования к системе подросли, так как это уже 64-битная система:
  • Windows 7 Professional или Windows Server 2008 (64-бит).
  • минимум 2 Гб ОЗУ (желательно 4 Гб или больше),
  • файл подкачки 16 - 24 Гб (программа установки просит именно 24 Гб),
  • Intel Pentium III 1.1 GHz или выше,
  • 45 Гб на HDD (36 Гб занимает система с базой данных после установки), файловая система NTFS,
  • отсутствие установленной SAP системы и MaxDB инстанции.
Документацию по установке и использованию искать в файле start.htm в архиве с дистрибутивом.

Я устанавливал в виртуальную машину с 3 Гб оперативной памяти. Жесткого диска размером 80 Гб мне хватило (после установки свободно осталось всего 6 Гб). При этом paging file настроил размером 16 Гб.

В качестве операционной системы выбрал MS Windows 2008 64-bit ENG.