Advanced Settings - Storm Streaming Server
Storm Streaming Server exposes a set of low-level system tuning options through the <AdvancedSettings> block. These settings control socket behavior, CPU monitoring strategy, and server load analysis intervals.
Sample Configuration
Below you'll find a sample configuration for the config/preferences.xml file.
<AdvancedSettings>
<ReuseAddresses>true</ReuseAddresses>
<TCPNoDelay>true</TCPNoDelay>
<CPUMonitoring>application</CPUMonitoring>
<LoadAnalyseInterval>5</LoadAnalyseInterval>
<LoadProbeInterval>2</LoadProbeInterval>
</AdvancedSettings>
Parameters
| Parameter | Description | Default |
|---|---|---|
<ReuseAddresses> | Enables the SO_REUSEADDR socket option, allowing quick address reuse after a connection is closed. This prevents "address already in use" errors during server restarts. | true |
<TCPNoDelay> | Enables the TCP_NODELAY socket option, which disables Nagle's algorithm. This reduces latency by sending packets immediately rather than buffering small writes. | true |
<CPUMonitoring> | Determines the CPU load monitoring source. Set to application to monitor only the Storm process, or system to monitor the entire system's CPU usage. | application |
<LoadAnalyseInterval> | Interval in seconds between comprehensive server load analyses. Minimum value: 1. | 5 |
<LoadProbeInterval> | Interval in seconds between CPU load probes. Minimum value: 1. | 2 |
For live streaming scenarios, we recommend keeping both <ReuseAddresses> and <TCPNoDelay> set to true. Disabling Nagle's algorithm is particularly important for maintaining low latency on RTMP and WebSocket connections.
CPU Monitoring Modes
The <CPUMonitoring> parameter affects how Storm measures CPU load, which in turn impacts cluster load balancing decisions and the values reported in the Control Panel and REST API.
In application mode, Storm tracks only its own process CPU usage. This is useful when the server is dedicated to streaming and you want load metrics to reflect only Storm's footprint. In system mode, Storm monitors the entire system's CPU usage, which provides a more accurate picture when the server runs additional services alongside Storm.
If you are using Storm's clustering module with weight-based allocation, the CPU monitoring mode directly influences how the cluster distributes streams across nodes. Make sure all nodes in a cluster use the same monitoring mode for consistent behavior.
All parameters support environment variables using the ${EV:VARIABLE_NAME} syntax. Fields locked by environment variables cannot be modified via the REST API.
If you have any questions or need assistance, please create a support ticket and our team will help you.