SAP Process Orchestration Technical information
TABLE OF CONTENTS 1 INTRODUCTION... 3 2 PROCESS ORCHESTRATION SOFTWARE COMPONENTS... 4 2.1 SAP Process Orchestration components... 4 2.2 SAP NetWeaver Application Server Java Cluster Architecture... 4 2.3 Instances... 5 2.4 Determining relevant hosts... 5 2.5 Database Server... 6 3 SAP PROCESS ORCHESTRATION SIZING... 7 4 DETERMINING NUMBER OF CORES... 8 4.1 Microsoft Windows and Linux... 8 4.1.1 Windows and Linux in physical environments... 8 4.1.2 Windows and Linux in virtual environments... 8 4.1.3 How to check the number of cores on Windows... 8 4.1.4 How to check the number of cores on Linux... 8 4.2 IBM Power Systems (AIX, IBM i, PowerLinux)... 9 4.2.1 Dedicated LPAR... 9 4.2.2 Shared Processor Pool LPAR... 9 4.2.3 AIX Workload Partition (WPAR)... 9 4.2.4 How to check the number of cores... 9 4.3 Solaris... 10 4.4 HP-UX... 11 4.4.1 HP-UX Physical Servers (HPPA & IA64)... 11 4.4.2 HP-UX Virtual Partitions (IA64 only)... 11 4.4.3 HP-UX Virtual Machines (IA64 only)... 12 2
Note: This guide is only applicable to Java-only deployment options of SAP Process Orchestration. 1 INTRODUCTION SAP Process Orchestration enables customer to automate, integrate and optimize business processes - from simple workflows to integrated processes that span applications, geographies, and organizational boundaries. The software consists of process management, business rules, and integration capabilities to support every stage of the business process lifecycle including modeling, execution, monitoring and optimization of business processes. For general licensing information, please refer to the SAP Software Usage Right document provided by SAP. This document provides additional technical information regarding the SAP Process Orchestration license metric, in particular how to count CPU cores on various hardware platforms. All explanations of licensing rules in the following do not replace nor overrule any specific licensing definitions in a customer s terms & conditions nor his individual contract. Especially where customers have non-standard agreements or licensing terms, the following explanations do not apply in part or full. For questions regarding your specific licensing terms as an SAP customer please contact your responsible sales contact or distributor. 3
2 PROCESS ORCHESTRATION SOFTWARE COMPONENTS 2.1 SAP Process Orchestration components The SAP Process Orchestration software consists of the following components: SAP Process Integration (PI) SAP Business Process Management (BPM) SAP Business Rules Management (BRM) 2.2 SAP NetWeaver Application Server Java Cluster Architecture An SAP NetWeaver Application Server Java cluster consists of a global dispatcher, a system database, an instance where central services like the Message Server and the Enqueue Server are located as well as one or several application server instances. Multiple instances can run on one host, or can be distributed across multiple hosts. 4
2.3 Instances For the SAP Process Orchestration license, only application server Java instances (as depicted above) with the following installed usage types are relevant (as described in the Master Guide) - Advanced Adapter Engine Extended (PI-AEX) - Advanced Adapter Engine (PI-AAE) - Process Integration (PI) - Business Process Management and Business Rules Management (BPM) If the host contains an application server instance with one or more of the usage types listed above, then the cores available of this host have to be considered and counted for SAP Process Orchestration licenses. Hosts which only run central services, web dispatcher or system database are not counted for the SAP Process Orchestration licenses Hosts that do not require a SAP Process Orchestration license may still require other licenses, e.g. a SAP NetWeaver Foundation for Third Party Applications. 2.4 Determining relevant hosts First, find out all instances which are installed on the host. Run the sapcontrol command and specify the host name (e.g. localhost) and instance number (e.g. 0): sapcontrol [-host <hostname] nr <instance number> function GetSystemInstanceList This will return the list of instances on this system: 31.03.2014 14:56:31 GetSystemInstanceList OK hostname, instancenr, httpport, httpsport, startpriority, features, dispstatus vmlocalhostxx, 1, 50113, 0, 1, GATEWAY MESSAGESERVER ENQUE, GREEN vmlocalhostxx, 0, 50013, 50014, 3, J2EE ICMAN IGS, GREEN If there is an instance with feature J2EE, check which usage types are installed on this instance via the following URL (note: the command above lists the http port of the SAP start service. Typically the web application server runs on port xxx00 so if the port as shown above is 50013, you have to use port 50000 for the web application server): http://<host>:<port>/utl/usagetypesinfo Example (PO installation): If any of the usage types listed under chapter 2.3 is present, the cores available to this system have to be counted. 5
2.5 Database Server The database is not covered by the core metric and is priced separately. However, if the database is sharing cores with the application, then in accordance with the above rules, all available cores must be licensed. 6
3 SAP PROCESS ORCHESTRATION SIZING The following table shows a rough-cut T-shirt sizing for SAP Process Orchestration, which can be used to determine the approximate number of cores required. Depending on the scenario, you can pick between different sizing metrics. For integration-centric scenarios, you can go with message throughput. This sizing assumes that most messages are stateless and will be handled via AEX only, while a certain percentage of messages requires stateful processing via a BPM process. For human-centric scenarios (workflows), you can go either with task throughput or concurrent users. Both sizing metrics use the same underlying factor of SAPS per task instance, as each user is assumed to process 20 tasks per hour. For combined usage, please add the number of cores per scenario. Sizing Metric XS S 2 Cores 1 4 Cores M 8 Cores L 12 Cores XL 20 Cores XXL 36 Cores Messages / 85,000 170,000 340,000 520,000 850,000 1,500,000 Hour 2 Human Tasks / 2,000 4,000 8,000 12,000 20,000 36,000 Hour Concurrent Users 3 100 200 400 600 1,000 1,800 1 Assumption: 2,000 SAPS per Core 2 80% of messages stateless (AEX only), 20% stateful (AEX+BPM) 3 Each users processes 20 tasks per hour 7
4 DETERMINING NUMBER OF CORES 4.1 Microsoft Windows and Linux 4.1.1 Windows and Linux in physical environments The SAP license is based on the amount of physical processors and their number of cores provided to the operating system. 4.1.2 Windows and Linux in virtual environments The number of cores for SAP licensing in virtual environments is reflected by the number of virtual CPUs which are configured for the virtual machine and which are therefore visible inside the guest operating system. Unlike operating SAP applications on the physical CPU cores, a virtual CPU only gets CPU cycles of the underlying hardware and has no one to one assignment to a physical CPU core. The physical power which backs a virtual CPU is influenced by the configuration of the virtual machine and by the overall host utilization. In certain scenarios, it might be lower than the power of an appropriate physical processor core. To make sure that enough physical CPU processor cores are available to the configured virtual CPUs, you should avoid over-provisioning of physical CPU resources, or reserve the configured CPU resources of the relevant virtual machine. Furthermore, activating Hyper-Threading in BIOS and setting Hyper-Threading-related options on the virtualization administration tool can reduce the physical power behind a single virtual CPU to a fraction of a physical CPU core. In case of any questions how to deal with configuration settings related to Hyper-Threading, to the reservation of CPU resources, to the configuration of CPU affinity or to a possible CPU limit, please get in contact with your virtualization or hardware partner. 4.1.3 How to check the number of cores on Windows To determine the number of cores on your Windows (guest) operating system, open a Command Prompt or a Windows Powershell and execute the following command: wmic cpu get NumberOfCores This command lists the amount of cores per socket. On a multi-socket machine, summarize the amount of cores per socket. Example on 8-cores machine having 2 sockets with 4 cores per socket: NumberOfCores 4 4 4.1.4 How to check the number of cores on Linux To determine the number of cores on your Linux (guest) operating system, open a Command Prompt and execute the following command: lscpu grep -i socket The number of cores is "Core(s) per socket" multiplied by "Socket(s)". Example on 40-cores machine: Core(s) per socket: 10 Socket(s): 4 8
4.2 IBM Power Systems (AIX, IBM i, PowerLinux) The following section describes how to determine the number of cores for IBM Power Systems running the operating systems AIX, IBM i, and PowerLinux in Logical Partitions (LPARs). 4.2.1 Dedicated LPAR Dedicated LPARs are handled like a non-virtualized system. The number of cores is given by the number of CPUs assigned to the LPAR. 4.2.2 Shared Processor Pool LPAR For Shared Processor Pool LPARs the number of virtual CPUs is counted. The configuration of the LPAR should ensure that enough real CPU cores can be used by the defined virtual CPUs. Please get in contact with your IBM business partner if you are not sure how to set up LPAR parameters like entitlement, capping, and processor pool size accordingly. 4.2.3 AIX Workload Partition (WPAR) The number of cores is determined by the number of cores assigned to the LPAR hosting the AIX global environment of the WPAR. 4.2.4 How to check the number of cores You can determine the number of cores on your system with the following commands from inside the LPAR. This is valid for Dedicated LPARs as well as for Shared Processor Pool LPARs. As an alternative you can also get this information from the Hardware Management Console (HMC). AIX: execute the system command lparstat -i and get the value of the metric Online Virtual CPUs. IBM i: execute the system command WRKSYSACT and get the value of the metric Virtual Processors. The system command WRKSYSACT is only available if the software product "IBM Performance Tools for i" is installed. PowerLinux: execute the system command cat /proc/ppc64/lparcfg and get the value of the metric partition_active_processors. To get the number of assigned cores from the HMC perform the following steps: 1. Logon to the HMC 2. Navigate to the respective LPAR 3. Open the Properties sheet of the LPAR and switch to the Hardware tab 4. For a Dedicated LPAR get the value of Processing Units Assigned 5. For a Shared Processor Pool LPAR get the value of Virtual Processors Assigned 9
4.3 Solaris Running SAP on Solaris we support zones and LDOM and both are handled like a non-virtualized system. The number of cores is given by the number of CPUs assigned to the zones or LDOM. Solaris 9,10,11 (run as root): kstat -p cpu_info:*:*:core_id awk '{ a[$2]++ } END { for (b in a) { print b } }' wc -l Result is the number of cores used by the zone, LDOM or native OS 10
4.4 HP-UX The following section describes how to determine the number of CPU cores on HP-UX 11iv3 servers running on PA-RISC and Itanium. Virtualized servers are included for Itanium-based platforms covering vpars & HPVM starting with version 6.2 and ongoing. 4.4.1 HP-UX Physical Servers (HPPA & IA64) There are multiple ways to get the number of available CPU cores on an HP-UX system. The easiest and most verbose one is machinfo(1) which is located at /usr/contrib/bin in case the PATH variable is not set accordingly. The output format has changed over the years, but the most recent HP-UX 11iv3 updates (e.g. 1303, 1403) use this format: physical cores # machinfo Intel(R) Itanium 2 9100 series processor (1.42 GHz, 12 MB) 2 cores, 4 logical processors per socket 532 MT/s bus, CPU version A1 Active processor count: 2 sockets 4 cores (2 per socket) 4 logical processors (2 per socket) LCPU attribute is disabled general CPU information currently active CPU configuration The number of logical CPU cores/processors (e.g. 4 in the example above) depends on the Hyper-Threading configuration of the server. The Hyper-Threading configuration could be reviewed by checking if Hyper- Threading is enabled on the firmware-level (setboot(1m)) and in the operating system (kernel parameter lcpu_attr is set to 1 via kctune(1m)). In case older HP-UX 11iv3 updates are used (e.g. 1103), the following format might be used: physical processors # machinfo 8 Intel(R) Itanium 2 9000 series processors (1.6 GHz, 24 MB) 533 MT/s bus, CPU version C2 16 logical processors (2 per socket) Again, the number of logical processors/cpu cores depends on the Hyper-Threading configuration. Command to determine the number of cores manually The following command might be used to determine the number of (logical) processors/cores on a low-level basis: # ioscan -Cprocessor grep -i processor wc l In case Hyper-Threading is enabled, the returned number has to be divided by 2 to get the number of physical CPU cores. 4.4.2 HP-UX Virtual Partitions (IA64 only) HP-UX Virtual Partitions (vpars) starting with version 6.2 on HP-UX Itanium use dedicated CPU resources, so that the same commands as for physical servers above might be used to determine the number of assigned physical/logical CPU cores. To find out if the server is running as a virtual partition, please use the model(1) command: # model ia64 hp Integrity Virtual Partition 11
4.4.3 HP-UX Virtual Machines (IA64 only) HP-UX Integrity Virtual Machines (HPVM) provide virtualized, isolated containers for HP-UX Integrity servers. CPU resources are assigned on a sub-cpu level by configuring (a) the number of (virtual) CPU cores and (b) the minimal/maximal entitlement (in percent) of each assigned CPU core available for computing. To find out if the server is running as an Integrity virtual machine, please use the model(1) command: # model ia64 hp server Integrity Virtual Machine The machinfo(1) command only shows the number of assigned (virtual) CPU cores to the virtual machine. The entitlement information is not displayed since this information is hidden by the virtual machine abstraction layer (Hypervisor). # machinfo CPU info: Intel(R) Itanium(R) Processor 9520 (1.73 GHz, 20 MB) 1 core, 1 logical processor per socket 6.38 GT/s QPI, CPU version D0 Active processor count: 1 socket 1 core virtual CPU cores 12
www.sap.com