Меню

Рабочие процессы в PRIV режиме

|

Рабочие процессы в PRIV режиме

Как я описывал во второй части моего рассказа об организации памяти в SAP AS ABAP, последовательность выделения памяти диалоговому рабочему процессу следующая:

  1. В первую очередь пользователю выделяется небольшой объем Roll area, который задается параметром ztta/roll_first (100-200 Кб).
  2. Если размер контекста пользователя растет, то используется память Extended memory через указатели (pointers).
  3. Если контекст пользователя использует весь объем Extended memory, определенный в квоте на один шаг диалога (параметр ztta/roll_extension), то рабочий процесс начинает использовать оставшуюся часть в локальной памяти Roll area, до размера квоты, определенной параметром ztta/roll_area.
  4. Если рабочему процессу необходимо больше памяти, то она выделяется в области SAP Heap memory (локальная память). С данного момента рабочий процесс переходит в PRIV режим (private mode).
  5. Если рабочему процессу необходимо памяти в SAP Heap memory больше, чем сконфигурировано в квоте, определенной параметром abap/heap_area_dia, то программа прерывается с дампом, сообщающем о нехватке памяти.

Таким образом, после того, как рабочий процесс использовал всю память, разрешенную квотами, в Roll area + Extended memory, ему выделяется память из области SAP Heap memory. С этого момента данный рабочий процесс переходит в привилегированный режим работы (PRIV mode) (Рис. 1). Это означает, что данный диалоговый рабочий процесс будет закреплен за данным пользователем, то есть не будет выгружать его контекст (roll-out) до тех пор, пока пользователь не выполнит все шаги текущей транзакции.

Рис. 1. Рабочий процесс в PRIV режиме.

Рабочий процесс в PRIV режиме работает хорошо, но скорость работы других пользователей, а, следовательно, и производительность всей системы в целом, снижается, так как данный рабочий процесс не участвует в механизме мультиплексирования. Снижение производительности будет тем больше, чем больше рабочих процессов находится в PRIV режиме.

В SAP системе такие процессы можно отследить через транзакцию SM50 (Рис. 2).

Рис. 2. Рабочий процесс в PRIV режиме в транзакции SM50.

Выбрав в транзакции SM04 пункт меню "Goto -> Memory", можно получить детальную информацию об использовании разных типов памяти данным пользователем (Рис. 3).

Рис. 3. Транзакция SM04: мониторинг использования SAP Heap memory пользователями.

Так же в транзакции ST02, на основном экране,

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

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

Войти