Salesforce

Server Performance Considerations (Magic xpi 3.x)

« Go Back

Information

 
Created ByKnowledge Migration User
Approval Process StatusPublished
Objective
Description

Server Performance Considerations

Objective

This technical note outlines the factors that enable optimal Magic xpi Server performance. It is divided into the following topics:

Environmental Performance Considerations

These hardware and software configuration issues may affect the overall performance of the Magic xpi Server:

  1. Hardware and Software Infrastructure

    • Your platform (IBM i, AIX, Solaris, Windows, Linux, etc.)

    • Your machine type (the specific machine model)

    • The number of CPUs in your machine

    • The CPU processing speed

    • Your machine’s memory size

    • Your machine’s storage performance (I/O)

    • Your operating system setup and load (for example, other applications and resources)

    • Your network setup (for example, communication speed and name resolving)

  2. Database Throughput

    • Magic xpi internal database server

    • Project-related database servers

  3. External Project Resource Throughput

    • Message Queuing

    • Web Services

    • HTTP

    • Mail server

    • Any other external resource

  4. Magic xpi Project Performance Considerations

    • Project activity volume

    • Concurrent flow execution

    • Deployment architecture:

      • Number of Magic xpi Servers

      • Magic xpi project topology

      • Internal database server location

    • Deployment configuration

    • Mapping complexity

Performance Guidelines

  1. Concurrent Flow Execution and Magic xpi Licenses

Concurrent flow execution happens when:

    • You invoke a flow asynchronously.

    • You use parallel or stand-alone flow branching.

    • You invoke a flow externally, with triggers.

Every concurrent flow execution requires a Magic xpi Server thread, and therefore also requires a Magic xpi concurrent thread license.

The number of concurrent flow invocation requests is limited, at any given time, by the number of available Magic xpi Server concurrent thread licenses.

When the license limit is reached, flow invocation requests wait in a queue. When the Magic xpi Server has an available license, the requests are processed.

Note:

Delays in flow invocation occur if you do not use enough license threads. This affects the overall throughput of the Magic xpi Server.

  1. Memory Usage

The Magic xpi Server requires an initial memory amount for its internal usage, independent of the project. Loading and executing the project requires additional memory. The amount of memory needed depends on:

    • The number of flows and steps.

    • The size of the processed data (message data).

    • The number of concurrent flows.

    • The nature of the Data Mapper steps (type and amount of mappings).

When the Magic xpi Server executes a project, the operating system uses its swap mechanism to manage the physical memory efficiently.

Note:

If your system has insufficient physical memory, the operating system swaps memory pages inefficiently. This leads to low throughput due to the slowdown of the processes that are executed on the Server’s host machine.

  1. Multiple CPUs

The Magic xpi Server can be used on multi-CPU machines. In a multi-CPU configuration, the operating system determines the allocation of CPU resources to processes executed on the machine.

A Magic xpi Server process does not interfere with the operating system’s CPU allocation. Other running processes also use CPU resources, which affects the overall CPU allocation.

Since the process representing a Magic xpi Server is multi-threaded, different CPUs may serve different threads of the Magic xpi Server process. This is controlled by the operating system and not by Magic xpi, and is dependent on the operating system. Magic xpi does not impose any limits on the number of CPUs that run on a specific machine.

The number of concurrent requests in the license file is the limit of concurrent requests for all CPUs serving the different threads.

The Magic xpi Server sometimes runs on a server that is running other applications and databases. Because of this, it is likely that the overall performance of the Magic xpi project will improve with the addition of more CPUs.

Note:

  • The Magic xpi Server is I/O bounded. Therefore, additional CPUs will not necessarily improve the project’s performance.

  • It is advisable to enhance project I/O performance by looking for bottlenecks in the processes.

  1. Project Architecture (Including Third Party and Database Location)

Magic xpi project architecture can have a major impact on the performance of the Magic xpi Server. These are some of the architectural issues that you should consider:

    • If multiple Magic xpi Servers are executing on the same machine, you should use the optimal number of concurrent flows executed by a single Magic xpi Server.

    • Multiple Magic xpi Servers may be executed on different machines.

    • The Internal database can be located on the same machine as the Magic xpi Server, or on another machine.

    • External project I/O performance. This includes:

      • Connectivity to external applications, such as middleware, HTTP, and Web Services.

      • Bottleneck processing due to external application performance and limitations.

      • Communication speed.

Note:

Proper selection and tuning of these applications, as well as the communication channel, can improve performance.

    • Magic xpi logging configuration.

Usage of Remote Services (Activity logging, ODS, PSS) and Routing are additional architectural solutions that may improve overall performance.

Note:

Limiting information collected by the Server and written to the internal database, such as statistics collection and level of activity logged, will improve the Magic xpi Server throughput.

  1. Operating System Setup

The following operating system resources can be tuned for enhancing the overall performance of the Server:

    • CPU allocation and process priority

    • Memory allocation

    • File handles

    • TCP/IP communication

    • I/O resource allocation

Note:

Neglecting machine tune-up may lead to inefficient use of the machine hardware and operating system and will have a negative effect on the overall machine performance.

Reference
Attachment 
Attachment