Apache Geode CHANGELOG

Configuring Multicast Speed Limits

After you determine the maximum transmission rate, configure and tune your production system.

For best performance, the producer and the consumers should run on different machines and each process should have at least one CPU dedicated to it. The following is a list of configuration changes that can improve multicast performance. Check with your system administrator about changing any of the limits discussed here.

  • Increase the default datagram size for systems running Microsoft Windows from 1024 bytes to a value that matches your network’s maximum transmission unit (MTU), which is typically 1500 bytes. The higher setting should improve the system’s network performance.
  • Distribution statistics for stack time probes are disabled by default to increase multicast performance. To reduce multicast speed, you can enable time statistics by setting the gemfire.enable-time-statistics property to true.

    This enables time statistics for a Java application:

    -Dgemfire.enable-time-statistics=true
    

    The time statistics properties are passed to the cache server on the gfsh the command line:

    gfsh>start server --name=server_name --enable-time-statistics=true
    
  • Monitor the members that receive data for signs of data loss. A few data loss messages can happen normally during region creation. Multicast retransmit requests and unicast retransmits can also be monitored to detect data loss. Even when you see data loss, the cause of the problem may have nothing to do with the network. However, if it happens constantly then you should try testing the flow control rate again

  • If necessary, reconfigure all the gemfire.properties files and repeat with lower flow control maximum credits until you find the maximum useful rate for your installation.

  • Slow system performance might be helped by reducing how far your multicast messaging goes in your network.

  • Reduce multicast latency by disabling batching. By default, Geode uses batching for operations when the region’s scope is distributed-no-ack. Set the disableBatching property to true on the application or when starting a cache server process through the gfsh command line:

    gfsh>start server --name=server_name --J=-Dp2p.disableBatching=true