IBM Support

Performance Tuning Tips - Memory and Core Processors in the SBI Tuning Utility

Technical Blog Post


Abstract

Performance Tuning Tips - Memory and Core Processors in the SBI Tuning Utility

Body

Support is often asked, what are the best values to use in the Performance Tuning Utility in Sterling B2B Integrator(SBI). The reality is that the best settings are unique to each customer's business needs, environment, estimated load, protocols used, etc. It is difficult to come up with a one size fits all approach to tuning SBI.

An accurate way to assess this is to do a performance tuning and sizing engagement with IBM Professional Services.

In SBI Support we sometimes need to give off the cuff settings to customers who have not done an initial performance tuning. When you install SBI, the initial tuning settings may be derived by how much memory and CPUs you have installed in your Operating System (OS).

That's a good first step, however here are 9 tips on considering how to initially tune SBI from the memory and core processor(CPU) standpoint values, using the SBI Tuning Utility:

  1. Avoid assigning the entire RAM available on your OS as the memory available in SBI. Remember to leave room for other applications running on the server and the OS operations in general. My recommendation is to start small and increase as needed. For example, on an OS server where 8 GB of total RAM is available, start with 4 GB(think half of total memory available) of memory assigned to SBI and go up from there if needed.

  2. When assigning Core Processors in the Tuning Utility in SBI, assign the number of CPUs you have installed on the server where SBI runs. Avoid allocating more Core Processors to SBI than what the OS has. The reason we ask for the number of Core Processors is to calculate the global thread limit. Think of 4 SBI threads per 1 CPU. For example, if you assign 4 Core Processors to SBI in the tuning utility, you may have approximately 16 SBI threads running concurrently. Depending on what type of operation SBI is doing per thread, consider that each thread will take memory and CPU cycles. The more threads running concurrently, the more CPU cycles SBI will use.

  1. By default, the recommended settings for the initial heap size and maximum heap size sometimes are set to the same value by the SBI tuning utility. You can start off with the recommended settings. However, if you have very large memory allocation (greater than 8GB), I would suggest to try to assign the initial heap size to half of the maximum heap size(decrease in 1024MB decrements).

  2. Use the tuning utility's recommended settings for the nursery, permanent generation size and thread stack size values. These values should only be changed to other than the recommended settings if IBM Professional Services or IBM Support Engineers advice it.

  3. Consider setting Enable Verbose GC value to True in production. This will have minimal impact on your environment and during a performance problem it will provide important information regarding the memory footprint with little overhead.

  4. Do consider setting “Enable Heap Dump on Sigquit/Ctrl-break” to False before going to production. This signal will generate a heap dump every time a Thread dump is generated. It is recommended that this setting be set to true only when instructed by IBM Support.

  5. In an SBI clustered environment, always tune all your nodes to the same values. If you make a tuning change in one node of the SBI cluster, the change must be made to the rest of the nodes in the cluster.

  6. Always do your performance tuning changes in a non-production environment first before propagating to production. Ideally, the non-production environment should have the same OS settings as your production environment.

  7. Consider testing your estimated load in a non-production SBI environment. This is crucial to determine if memory and any other adjustments may be needed in SBI depending on the load.

 

By definition, tuning is described as adjust to correct. So keep in mind that as the SBI application changes, tuning should be taken into consideration. However, be mindful of over tuning as there are other side effects of it as well.

I hope by reading these tips, it assists to initially set your SBI's Core Processors and memory tuning settings through the Sterling B2B Integrator Tuning Utility.

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SS3JSW","label":"IBM Sterling B2B Integrator"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

UID

ibm11122123