Performance: TCP Receive Spin Limit

By default, the thread responsible for receiving from TCP waits for a signal from the OS that data is available. For constrained CPU resources, this is the most efficient approach. However, FTL must incur costs associated with this wakeup, such as context switching, stale CPU caches, and so on.

If you have excess CPU resources, you can configure the transport to spin (that is attempt to receive from the socket) for a set amount of time before passing control to the OS. This can improve performance by reducing costs associated with context switching and so forth.

The time to dedicate to spinning depends on the latency of your network and the send rate of your application. (If a message is not received before the spin limit elapses, control is passed to the OS.) A value of 10 milliseconds is often sufficient.

For information on how to configure persistence service transports, see Persistence Service Details Panel.