Configuring IBM eXtremeMemory

By configuring eXtremeMemory, you can store objects in native memory instead of on the Java™ heap. Configuring eXtremeMemory enables the IBM® eXtremeIO transport mechanism.

Before you begin

  • To learn more about eXtremeMemory and for more information about determining the maximum amount of memory to use for eXtremeMemory, see Planning to use IBM eXtremeMemory.
  • WebSphere® eXtreme Scale 8.6.0.8 adds support for Linux® PowerPC® LE. eXtreme Scale already supports Linux Intel.

About this task

For more information about eXtremeMemory and its benefits versus the Java heap to store your data grid objects, see IBM eXtremeMemory. When you are using eXtremeMemory, eXtremeIO is used for communication between container servers. Objects are serialized into bytes on the container server. To enable eXtremeMemory, you set the required server properties on all of the container servers in the data grid and restart the servers.

eXtremeMemory is not used on catalog servers. If you have a catalog server and a container server that are collocated, the container servers use eXtremeMemory, but the catalog server does not.

Procedure

  1. Configure the native libraries by setting the appropriate environment variables.
    Add the wxs_install_root/ObjectGrid/native directory to the native library path.

    You can set the environment variable with one of the following ways:

    • Set the LIBPATH environment variable before calling the Java program:
      export LIBPATH=$LIBPATH:wxs_install_root/ObjectGrid/native
    • [Linux]Set the LD_LIBRARY_PATH environment variable before calling the Java program:
      LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:wxs_install_root/ObjectGrid/native
      export LD_LIBRARY_PATH
    • Set the java.library.path Java system property to the location where the native libraries are located:
      java -Djava.library.path=wxs_install_root/ObjectGrid/native <other args>
  2. Update the server properties file for each container server in the configuration to enable eXtremeMemory.
    To enable eXtremeMemory, you must set the enableXM property. If you do not want the default value of 25% of the entire system to be used for eXtremeMemory, you must also set the maxXMSize property. After you decide on the properties that you want to set, you can set the values in the server properties file or programmatically with the ServerProperties interface.

    For more information about determining the maxXMSize value to set, see Planning to use IBM eXtremeMemory.

    Required properties
    enableXM
    When set to true, enables IBM eXtremeMemory on the server and configures the server to use IBM eXtremeIO for synchronous and asynchronous replication. Cache entries for maps that are compatible with eXtremeMemory are stored in native memory instead of on the Java heap. All container servers in the data grid must use the same value for the enableXM property.

    Default:false

    Suggested properties
    maxXMSize
    Sets the maximum amount of memory, in megabytes, used by the server for eXtremeMemory storage.

    Default: 25% of the total memory on the system.

  3. Optional: [Version 8.6 and later] Tune the Java virtual machines for eXtremeMemory.
    For more information, see Tuning Java virtual machines.
  4. Enable the container servers to start using eXtremeMemory.
    You can use one of the following methods to pick up the new property values:
[Version 8.6 and later]

What to do next

You can also set properties to configure eXtremeIO. For more information, see Configuring IBM eXtremeIO (XIO).