Показаны сообщения с ярлыком SM66. Показать все сообщения
Показаны сообщения с ярлыком SM66. Показать все сообщения

23 сентября 2019 г.

Расширение функциональности транзакции SM04

В статье "Мониторинг рабочих процессов SAP системы" я описывал транзакцию SM50. Данная транзакция используется для мониторинга рабочих процессов ABAP инстанции. Так же в статье упоминалось, что начиная с релиза системы SAP NetWeaver 7.40 SP08, транзакция получила расширенную функциональность и позволяет просматривать рабочие процессы всех инстанций текущей SAP системы. Таким образом, произошла замена функциональности транзакции SM66. При запуске транзакции SM66 в новых релизах SAP систем вызывается транзакция SM50 с расширенным отображением рабочих процессов по всем инстанциям. Запуск старой версии транзакции SM66 возможен через код транзакции SM66_OLD. И в прошлом посте я объяснил, чем она может быть интересна и полезна. 

Теперь хочу рассказать о том, что такие же изменения произошли и в паре транзакций SM04 - AL08. Первая транзакция (SM04) служит для просмотра списка пользователей, выполнивших вход в текущую ABAP инстанцию. В транзакции можно просмотреть список открытых режимов каждого пользователя. Можно закрыть режим пользователя или все режимы, принудительно выбросив пользователя из SAP системы. Это бывает необходимо, например, перед ручным удалением блокировок из таблицы блокировок SAP, о чём я писал тут. Также в транзакции можно просмотреть количество памяти SAP системы выделенной пользователю. Начальный экран транзакции знаком всем тем, кто в той или иной степени приобщён к делу администрирования SAP системы (рис. 1).

Рис. 1. Список пользователей, выполнивших вход в ABAP инстанцию.

Как вы знаете, SAP система поддерживает горизонтальное масштабирование. Производительность уровня сервера приложений SAP может быть увеличена через установку дополнительных диалоговых инстанций, или как их сейчас называют Additional Application Server (AAS). В этом случае для просмотра пользователей, выполнивших вход во все ABAP инстанции текущей SAP системы, необходимо пользоваться транзакцией AL08 (рис. 2).

Рис. 2. Просмотр пользователей по всей системе в транзакции AL08.

В новых версиях SAP систем, основанных на SAP NetWeaver 7.40 SP08 и выше, ситуация немного изменилась. В транзакции SM04 появилась возможность перейти в режим просмотра пользователей по всей системе. Для этого необходимо перейти в пункт меню "Перейти к -> Список по всем системам" (рис. 3).

Рис. 3. Переход к просмотру пользователей по всем инстанциям в транзакции SM04.

После этого в списке появятся пользователи других ABAP инстанций, а в таблицу добавится столбец с именами инстанций серверов приложений (рис. 4).

Рис. 4. Просмотр пользователей по всем инстанциям в транзакции SM04.

И именно этот экран отображается в свежих релизах SAP систем при вызове кода транзакции AL08. 

Для вызова же старой версии транзакции AL08 служит отдельная транзакция - AL08_OLD
Кто-то может быть к ней очень сильно привык. :) 

Отличается она от новой версии, например, тем, что список всех инстанций системы с распределением пользователей по ним отображается сразу в верхней части экрана транзакции (рис. 5). Но каких-то функциональных особых "фишек" я в ней не знаю.

Рис. 5. Отображение ABAP инстанций SAP системы и пользователей в них в транзакции AL08_OLD.

Официально об этом в SAP note 2445935 - AL08 new layout as of EHP7.




19 августа 2019 г.

Мониторинг рабочих процессов SAP системы

Как вы знаете, ядром любой ABAP инстанции SAP системы является ABAP-диспетчер, который управляет рабочими процессами (рис. 1).

Рис. 1. Архитектура ABAP части SAP NetWeaver.

Рабочие процессы разделяются по назначению:
  • диалоговые (DIA) - отвечают за работу диалоговых пользователей системы;
  • фоновые (BTC) - выполняют фоновые задания;
  • обновления (UPD, UP2) - отвечают за обновление данных в таблицах;
  • блокировки (ENQ) - управляют блокировками на уровне сервера приложений;
  • печати (SPO) - отвечают за печать из SAP системы.

Мониторинг рабочих процессов осуществляется в транзакции SM50. Классический вариант транзакции хорошо известен администраторам SAP системы (рис. 2).

Рис. 2. Пример основного экрана транзакции SM50 в системе на SAP_BASIS 620.

Транзакция позволяет выполнять мониторинг всех рабочих процессов текущей инстанции. Процессы могут иметь различный статус - ожидать запросов (простаивать), выполнять задачу, ожидать сообщения или быть остановленными на уровне операционной системы по причине ошибки или сбоя. По каждому процессу можно:
  • просмотреть журнал (пункт меню "Процесс -> Трассировка -> Просмотреть файл"), 
  • перейти в отладку работающей программы (пункт меню "Программа/Режим -> Программа -> Отладка"), 
  • сбросить задачу, работающую на рабочем процессе (пункт меню "Процесс -> Отменить с (без) дампом"),
  • перезапустить процесс после сбоя (пункт меню "Процесс -> Перезапуск после ошибки -> Да").

Для просмотра рабочих процессов всех инстанций SAP системы (в случае использования системы с больше, чем одной ABAP инстанцией) используется транзакция SM66.

В свежих релизах SAP системы (SAP NetWeaver 7.40 SP08 и выше) дизайн и функциональность транзакции SM50 притерпели некоторые изменения (рис. 3).

Рис. 3. Пример транзакции SM50 в системе SAP NetWeaver 7.50.

Появилась возможность просматривать не только все рабочие процессы, но и получить список только активных в текущий момент времени рабочих процессов. Для переключения между этими режимами отображения служат кнопки "Активные рабочие процессы" и "Все рабочие процессы" на панели (рис. 3 и 4).

Рис. 4. Отображение только активных рабочих процессов в транзакции SM50.

Кроме того, в транзакции появилась возможность просмотра рабочих процессов всех диалоговых инстанций текущей SAP системы. Для этого необходимо в меню выбрать пункт "Перейти к -> Список по всем системам" (рис. 5).

Рис. 5. Получение списка всех рабочих процессов SAP системы в транзакции SM50.

Причем, если запустить транзакцию SM66 в новых релизах SAP NetWeaver, то можно увидеть интерфейс очень похожий на SM50 (рис. 6).

Рис. 6. Пример транзакции SM66 в системе SAP NetWeaver 7.50. 

Такая же кнопка переключения между отображением всех процессов или только активных (рис. 6 и 7).

Рис. 7. Пример транзакции SM66 в системе SAP NetWeaver 7.50 с полным списком рабочих процессов.

Дополнительно есть возможность переключить режим отображения рабочих процессов на отображение только по конкретной ABAP инстанции. Для этого в меню транзакции SM66 есть пункт "Перейти к -> Переключить на инстанцию" (рис. 8).

Рис. 8. Переключение в транзакции SM66 на отображение рабочих процессов конкретной инстанции.

Таким образом, складывается ощущение, что в новых версиях SAP NetWeaver транзакции SM50 и SM66 представляют собой практически один и тот же инструмент, с повторяющимися функциями. То есть транзакция SM50 заменяет транзакцию SM66 в старой версии системы. Но это верно только в какой-то степени. И дальше я расскажу почему.

Старая версия транзакции SM66 обладала рядом полезных функций, которых я не нашел в новой версии. 

По умолчанию транзакция отображает список активных рабочих процессов всех ABAP инстанций SAP системы. Но на панели есть полезная кнопка "Process Selection", нажав на которую появляется возможность в диалоговом окне настроить режимы отображения (рис. 9).

Рис. 9. Настройка режима отображения процессов в старой версии транзакции SM66.

В диалоговом окне можно ограничить выборку рабочих процессов:
  • по типу, 
  • по статусу, 
  • по пользователю, задачи которого обрабатывает процесс,
  • по времени работы задачи на процессе,
  • по таблице, с которой работает процесс,
  • и так далее (рис. 10).

Рис. 10. Ограничение рабочих процессов для отображения в SM66.

Таким образом, поигравшись с настройками, можно выполнять мониторинг процессов, решая разные задачи. Например:
  • отобразить все фоновые рабочие процессы в системе (рис. 11),
  • отобразить все рабочие процессы, работающие больше определённого периода времени,
  • отобразить все рабочие процессы, которые не обрабатывают в данный момент времени запросы пользователей - для того, чтобы понять сколько свободных ресурсов есть в системе (рис. 12).

Рис. 11. Список всех фоновых процессов в SAP системе.

Рис. 12. Список рабочих процессов в статусе "Ожидает".

Но для новых версий систем (SAP NetWeaver 7.40 SP08 и выше) не всё потеряно. Старая версия транзакции SM66 доступна через транзакцию SM66_OLD, за которой скрывается та же программа - SAPMSM66.




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


21 августа 2015 г.

История одного долгоиграющего отчёта

Данным постом, я выполняю давно обещанное, но не выполненное. За что приношу свои извинения.

Этот пост написал и просил меня разместить у себя в блоге Дмитрий Бондарев.
Контакты Дмитрия: электронная почта: bdmalex@mail.ru, skype: bdmalex.
Стиль и пунктуация - автора.

История одного долгоиграющего отчёта
... или как сократить срок его выполнения не исправляя ни одной строки ABAP кода


   Существовал в нашей организации SAP ECC 6.0 на HP-UX платформе. И написали по какому-то ТЗ ABAP программисты отчёт дивный, который при запуске колбасил сервер и только после порядка 14 часов работы выдавал результат.

   Ушёл ABAP-программист с чувством выполненного долга в отпуск, и естественно начальство начало задавать вопросы базису: "Почему это работает так долго?".

   Начальственный заход для решения проблемы был простой: добавили в сервер ещё пяток ядер и немного ОЗУ. Запустили отчёт заново – и прослезились, никаких изменений.

   Запускаем отчёт с трассировкой и получаем следующие унылые результаты:
  • 98% времени уходит на работу на Сentral Instance (CI),
  • 2% времени уходит на работу и взаимодействие с базой данных (DB).
   Так как у нас CI и DB – это 2 разных сервера, я даже слегка расстроился. Мне сначала думалось, что проблема связана с большим временем работы на БД. А стало ясно, что игры с оптимизацией запросов никаких существенных профитов не принесут и оптимизировать надо именно то,что крутится на СI.

   Первый резерв вспомнился навскидку – это класс задания:



Выбираем класс "A" – и задание отрабатывает за 12 часов.
Всего на 7% меньше – но уже приятно!

   Дальше, переходим на сервер приложений и запускаем любимую команду top.
Выясняется, что существенный % времени занимает переключение задания между ядрами процессора. А что будет, если жёстко привязать задание к одному процессорному ядру и заставить его работать только там. Зачем тратить драгоценное время на скачки с одного ядра на другое?
Заходим сразу после запуска задания в SM66 (или SM50, ну в общем это дело вкуса) и выясняем необходимый нам PID (идентификатор процесса). Далее на HP-UX под нашим любимым пользователем <sid>adm  запускаем команду:
 > mpsched –c номер_процессорного ядра  –p PID 
   Смотрим результат: отчёт отработал за 10 часов.

Для других *nix-платформ команды привязки следующие:
  • bindprocessor для AIX
  • psrset для Solaris
  • taskset (+ chrt) для Linux
   В принципе, на этом можно было бы успокоиться, но ведь аппетит всегда приходит во время еды? Что ещё можно сделать, чтобы ускориться?

   Ну, а почему бы не повысить приоритет нашему процессу. Запускаем:
 > renice –n +20 –p PID 
   Смотрим результат: отчёт отрабатывает за 8 часов.

   Вот таким, совсем нехитрым способом, можно ускорить выполнение любого отчёта на многопроцессорной машинке с HP-UX (и не сомневаюсь, что аналогично можно сделать на любой *nix платформе, разве что запускаемые команды будут отличаться названием). В моём случае выигрыш составил порядка 42%, что на мой взгляд – вполне осязаемая и ощутимая величина.

Автор: Дмитрий Бондарев (e-mail: bdmalex@mail.ru, skype: bdmalex)


2 июля 2009 г.

Дополнительные сервера приложений. Транзакции.


Если в вашем "подворье" появились дополнительные диалоговые сервера, то придётся использовать ряд новых транзакций:
  • SMLG - создание и администрирование logon групп,
  • SM51 - список всех серверов приложений, с возможностью дистанционного входа, просмотра списка процессов и пользователей каждой инстанции,
  • AL08 - список активных пользователей всех серверов приложений,
  • SM66 - список активных процессов всех серверов приложений на одном экране.