Configuration Guide
|
Transport acceleration options enable kernel-bypass acceleration in conjunction with the following vendor solutions:
DBL is a kernel-bypass technology that accelerates sending and receiving UDP traffic and operates with DBL-enabled Myricom 10-Gigabit Ethernet adapter cards for Linux and Microsoft Windows.
DBL does not support fragmentation and reassembly, so do not send messages larger than the MTU size configured on the DBL interface.
DBL acceleration is compatible with the following Ultra Messaging transport types:
To use DBL Transport Acceleration, perform the following steps:
Users of DBL are advised to make use of Dynamic Fragmentation Reduction.
Scope: | context |
Type: | int |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in LBM 4.0. |
Value | Description |
---|---|
1 | DBL acceleration is enabled for LBT-RM. |
0 | DBL acceleration is not enabled for LBT-RM. Default for all. |
Scope: | context |
Type: | int |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in LBM 4.0. |
Value | Description |
---|---|
1 | DBL acceleration is enabled for LBT-RU. |
0 | DBL acceleration is not enabled for LBT-RU. Default for all. |
Scope: | context |
Type: | int |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in LBM 4.0. |
Value | Description |
---|---|
1 | DBL acceleration is enabled for MIM. |
0 | DBL acceleration is not enabled for MIM. Default for all. |
Scope: | context |
Type: | int |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in LBM 4.0. |
Value | Description |
---|---|
1 | DBL acceleration is enabled for topic resolution. |
0 | DBL acceleration is not enabled for topic resolution. Default for all. |
Solarflare Onload is a kernel-bypass technology that accelerates message traffic and operates with Solarflare 10GbE Ethernet NICs.
Ultra Messaging loads the Onload library dynamically during Ultra Messaging initialization on Linux-based (X86) platforms.
Onload default behavior accelerates all sockets. You can access the Onload onload_set_stackname API extension to select the sockets you want to accelerate by using UM configuration options. Selecting sockets with a stackname lets you accelerate data transmission sockets and not sockets for control messages, topic resolution, or responses.
You can select a stackname with the configuration options onload_acceleration_stack_name (receiver) and onload_acceleration_stack_name (source) for the following Ultra Messaging transport types:
If you use the onload_set_stackname API directly for any other accelerated sockets, note that after Ultra Messaging accelerates a transport socket, Ultra Messaging resets the stackname to the default for all threads by calling:
onload_set_stackname(ONLOAD_ALL_THREADS, ONLOAD_SCOPE_NOCHANGE, "");
Ultra Messaging resets the stackname during source creation and when a receiver matched topic opens a transport session.
To enable Onload socket acceleration for selected transports, perform the following steps:
To enable acceleration for all applications in an environment, export the following environment variable:
export LD_PRELOAD=libonload.so
To enable acceleration on a per-application basis, start the application as in the following example:
onload <app_name> [app_options]
Set UM configuration option onload_acceleration_stack_name (source) according to the thread the source uses.
Note: Disable batching to ensure that it is the application thread that sends the data out.
Set UM configuration option onload_acceleration_stack_name (receiver) according to the thread the receiver uses.
Note: Receiver transports might not share the same thread if MTT is enabled.
Users of Onload are advised to make use of Dynamic Fragmentation Reduction.
For detailed information about onload stack names, refer to the Solarflare Onload User Guide.
Solarflare NICs can be used with in-kernel device drivers, or with the kernel-bypass driver "Onload".
Sometimes the kernel driver is less susceptible to packet loss than Onload. This is because the kernel driver is invoked as needed via interrupt, while Onload is dependent on the application to call the driver via a socket call (like "epoll()"). With the kernel driver, if the application is delayed in making a socket call, the socket buffer can be configured to hold large numbers of datagrams. In contrast, if using Onload, only the NICs rx ring buffer is available. Even short delays can lead to packet loss with Onload.
Informatica is not an expert in tuning Solarflare NICs and Onload. We recommend using the Onload documentation and discussing your use case with Onload support engineers.
However, we can give a few tips based on our own experience and that of our customers.
Scope: | receiver |
Type: | string |
Default value: | NULL |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UM 6.5. |
Scope: | source |
Type: | string |
Default value: | NULL |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in UM 6.5. |
UD (Unreliable Datagram) acceleration is a kernel-bypass technology that accelerates sending and receiving UDP traffic and operates with Mellanox 10-Gigabit Ethernet or InfiniBand adapter cards for 64-bit Linux on X86 platforms.
UD acceleration does not support fragmentation and reassembly, so do not send messages larger than the MTU size configured on the Mellanox interface.
UD acceleration is available for the following Ultra Messaging transport types:
To use UD acceleration, perform the following steps:
Users of UD acceleration are advised to make use of Dynamic Fragmentation Reduction.
Scope: | context |
Type: | int |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in LBM 5.2. |
Value | Description |
---|---|
1 | Accelerated Topic Resolution is enabled. |
0 | Accelerated Topic Resolution is not enabled. Default for all. |
Scope: | context |
Type: | int |
When to Set: | Can only be set during object initialization. |
Version: | This option was implemented in LBM 4.1. |
Value | Description |
---|---|
1 | Accelerated Multicast is enabled. |
0 | Accelerated Multicast is not enabled. Default for all. |