Performance

The following sections provide support for improving the performance of SIL Kit.

TCP Socket Configuration

The TCP sockets used by SIL Kit can be configured via the participant configuration file, more precisely the middleware options. This configuration needs to be done carefully. In particular, using Nagle’s algorithm (TcpNoDelay: false) and delayed acknowledgements (TcpQuickAck: false) are known to interact badly. Please note that version 4.0.56 and following will use the TCP_NODELAY flag (which disables Nagle’s algorithm) by default (TcpNoDelay: true).

Using TcpNoDelay: true and TcpQuickAck: true together may cause severe performance losses as well as non-deterministic behaviour, e.g., resulting in 40ms latency peaks on Linux platforms.

Message Aggregation

For the time-synchronized case, SIL Kit offers the possibility of aggregating messages prior to sending. This feature can be enabled via the EnableMessageAggregation parameter in the participant configuration file. We mention that the message aggregation feature has a significant impact on the throughput, in particular if several small messages (<1kB) are sent within one simulation step.