IBM Support

Slow performance on Linux in a VM on 7.0.1 and prior releases

Question & Answer


Question

Why am I experiencing slow performance running WebSphere Lombardi on my Linux server which is running in a VM.

Cause

Linux uses an entropy pool to build secure communications. The Oracle driver (and perhaps other drivers) uses this entropy pool when it communicates with the database.

The entropy pool on Linux gets exhausted very quickly in Linux running in a VM. This causes VERY slow database calls. In a stand alone test running in a loop returning 3MB of data, calls went from an average of 5 seconds to an average of 30 seconds after the 3rd or 4th database call.

If you have this problem you will notice slow startup times for the process server and slow execution. Java thread dumps will show the system waiting to retrieve data from the database.

This problem does not appear in our testing on non-vm linux systems, although it may possibly occur on headless systems without a keyboard or mouse as the keyboard is used to rebuild the entropy pool.

Answer

You can solve this problem by adding the following to the startup of the server:

-Djava.security.egd=file:///dev/urandom

or you can change your java.security file as documented here:
Avoiding JVM Delays Caused by Random Number Generation

There is also a great article on this issue here:
Entropy drained

This problem does NOT occur on our 7.x releases or if you are running 6.x on WebSphere on Linux. This is because the IBM JVM does not do entropy the same way and will not exhaust the entropy pool.

[{"Product":{"code":"SSFPRP","label":"WebSphere Lombardi Edition"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Process Server","Platform":[{"code":"PF016","label":"Linux"}],"Version":"7.0.1;6.2.2;6.2.1;6.2;6.1;6.0.1","Edition":"All Editions","Line of Business":{"code":"LOB15","label":"Integration"}}]

Product Synonym

TW Teamworks Lombardi

Document Information

Modified date:
15 June 2018

UID

swg21469372