Configuration Guide
|
The following configuration option tunes UM for the highest possible throughput.
# # LBM can be configured to make efficient use of CPU time, leading # to the highest-possible throughput (bytes per second or messages # per second). This may come at the expense of latency at low # message rates. The following line configures LBM to accumulate # 8KB of messages (or for wait implicit_batching_interval) before sending. # source implicit_batching_minimum_length 8192
This is an example configuration that favors low latency at the expense of higher CPU utilization and potentially lower throughput.
# # Latency can be reduced at the expense of network efficiency and # system CPU time by adjusting implicit batching parameters. The # default parameters hold messages for up to 200 milliseconds or until # 2048 bytes are waiting to go. The lowest possible latency is # obtained by setting the minimum batching length to 1 byte, which # effectively disables the implicit batching feature. For example: # context mim_implicit_batching_minimum_length 1 source implicit_batching_minimum_length 1 # # Latency can be kept to a minimum with UM by writing receiving # applications that can accept messages in the order they arrive. # See https://communities.informatica.com/infakb/faq/5/Pages/80043.aspx # for more information. Here's how to use arrival-order delivery: # receiver ordered_delivery 0 # # Disable Nagel's algorithm (batching) for TCP responses to eliminate # queuing latency when sending only single responses. # context response_tcp_nodelay 1 # # If you are running a LAN environment with under 100 machines, you can # drastically improve your recovery related latencies without significant # additional network overhead by using the following UM loss recovery parameter. # See https://communities.informatica.com/infakb/faq/5/Pages/80070.aspx # for additional information about this and other recovery parameters. # receiver transport_lbtrm_nak_backoff_interval 10
This is an example configuration file that changes the default transport to reliable multicast so all sources created send messages over LBT-RM.
# # UM can be configured to create sources using the LBT-RM reliable # multicast protocol instead of the default TCP. # source transport LBT-RM # # Stable and reliable operation with multicast requires careful # setting of rate control limits. # # It's generally best to start with small limits and gradually # increase them after testing indicates that they can be safely # sustained on your network. # # The following example limits (new) data to 10 Mbps and retransmissions # to 1 Mbps (10%). # context transport_lbtrm_data_rate_limit 10000000 context transport_lbtrm_retransmit_rate_limit 1000000
If you need to reduce the amount of UDP-based Topic Resolution traffic on your network, the best way to do it is to switch to TCP-based Topic Resolution and turn off UDP-based TR.
However, many users cannot switch fully to TCP TR (at least not quickly). Especially for users running multiple versions of UM in their network, they may need to run UDP TR for a significant period while components are upgraded.
This section discusses methods for disabling various aspects of UDP-based TR, but this should be done only as part of a larger TR strategy; see UDP-Based Topic Resolution Strategies.
You can disable topic advertisements in the Initial Phase, Sustaining Phase or both phases of topic resolution.
Disabling Initial Phase Advertisements
Use the following options to disable topic advertisements in only the Initial Phase.
source resolver_advertisement_minimum_initial_interval 0 source resolver_advertisement_maximum_initial_interval 0
Disabling Sustaining Phase Advertisements
Use the following option to disable topic advertisements in only the Sustaining Phase.
source resolver_advertisement_sustain_interval 0
You can disable the querying of topics by receivers in the Initial Phase, Sustaining Phase or both phases of topic resolution.
Disabling Initial Phase Queries
Use the following options to disable topic queries in only the Initial Phase.
receiver resolver_query_minimum_initial_interval 0 receiver resolver_query_maximum_initial_interval 0
Disabling Sustaining Phase Queries
Use the following options to disable topic queries in only the Sustaining Phase.
receiver resolver_query_sustain_interval 0
Use the following options to disable topic queries by wildcard receivers. This can reduce CPU load and latency outliers under some circumstances, but can also slow down the process of a wildcard receiver discovering all matching sources. Be aware that wildcard receivers will only discover sources when those sources advertise.
Additionally, queries should not be disabled in a DRO environment (see Interest and Topic Resolution).
wildcard_receiver resolver_query_minimum_interval 0 wildcard_receiver resolver_query_maximum_interval 0
When using Persistence, use the following options to disable context name queries by sources. This should only be done if numeric IP addresses are used to identify Stores.
resolver_context_name_query_maximum_interval 0 resolver_context_name_query_minimum_interval 0
TCP-based Topic Resolution minimizes topic resolution traffic.
To use the unicast resolver, use a configuration file like the following example:
# # Topic resolution can be configured to use unicast traffic with an # LBM resolver daemon (lbmrd) instead of the default which uses multicast. # Be sure to insert the IP address of your lbmrd below. # context resolver_unicast_daemon 127.0.0.1:15380
Ultra Messaging topic resolution prior to LBM Version 4.0 did not have resolution phases. To implement pre-4.0 topic resolution, include the following configuration option changes in your Ultra Messaging configuration file. This is not recommended unless you have a mix of pre-4.0 and post-4.0 versions of UM that need to interoperate.
# ----- Disable Advertisements in 4.0 Initial Phase source resolver_advertisement_minimum_initial_interval 0 # ----- Re-establish pre-4.0 Advertisement Behavior source resolver_advertisement_minimum_sustain_duration 0 context resolver_sustain_advertisement_bps 0 # ----- Disable Queries in 4.0 Initial Phase receiver resolver_query_minimum_initial_interval 0 # ----- Re-establish pre-4.0 Query Behavior receiver resolver_query_sustain_interval 100 receiver resolver_query_minimum_sustain_duration 0 context resolver_sustain_query_bps 0 receiver resolution_number_of_sources_query_threshold 1 # ----- Re-establish pre-4.0 Wildcard Query Behavior wildcard_receiver resolver_query_minimum_interval 0
To use the early default ports (prior to LBM 3.3 and UME 2.0), the following configuration file may be used.
context mim_destination_port 4401 context mim_incoming_destination_port 4401 context mim_outgoing_destination_port 4401 context resolver_multicast_port 2965 context resolver_multicast_incoming_port 2965 context resolver_multicast_outgoing_port 2965 context resolver_unicast_destination_port 5380 context resolver_unicast_port_high 4406 context resolver_unicast_port_low 4402 source transport_lbtrm_destination_port 4400 context transport_lbtrm_source_port_high 4399 context transport_lbtrm_source_port_low 4390 context transport_lbtru_port_high 4389 context transport_lbtru_port_high 4380 receiver transport_lbtru_port_high 4379 receiver transport_lbtru_port_low 4360 context request_tcp_port_high 4395 context request_tcp_port_low 4391 context transport_tcp_port_high 4390 context transport_tcp_port_low 4371
In the unusual case that you must run older versions of Ultra Messaging (less than LBM 3.3 / UME 2.0) on certain machine(s) and need these older version to work with the machines running the current versions of UMS and UMP, you can use the following configuration file for the older versions to synchronize port usage between old and current versions.
context mim_destination_port 14401 context mim_incoming_destination_port 14401 context mim_outgoing_destination_port 14401 context resolver_multicast_port 12965 context resolver_multicast_incoming_port 12965 context resolver_multicast_outgoing_port 12965 context resolver_unicast_destination_port 15380 context resolver_unicast_port_high 14406 context resolver_unicast_port_low 14402 source transport_lbtrm_destination_port 14400 context transport_lbtrm_source_port_high 14399 context transport_lbtrm_source_port_low 14390 context transport_lbtru_port_high 14389 context transport_lbtru_port_low 14380 receiver transport_lbtru_port_high 14379 receiver transport_lbtru_port_low 14360 context request_tcp_port_high 14395 context request_tcp_port_low 14391 context transport_tcp_port_high 14390 context transport_tcp_port_low 14371