mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
Switch Broker's default backpressure policy to drop_oldest, bump buffer sizes
At every site where we've dug into backpressure disconnect findings, it has been the case that the default values were too small. 8192, so 4x the old default, suffices at every site to drown out premature disconnects. With metrics now available for the send buffers regardless of backpressure overflow policy, this also switches the default from "disconnect" to "drop_oldest" (for both peers and websockets), meaning that peerings remain untouched but the oldest queued message simply gets dropped when a new message is enqueued. With this policy, the number of backpressure overflows is then simply the count of discarded messages, something that users can tune to see drop to zero in everyday use. Another benefit is that marginal overflows cause less message loss than when an entire buffer's worth (plus potentially more in-flight messages) gets thrown out with a disconnect.
This commit is contained in:
parent
5008f586ea
commit
841a40ff88
1 changed files with 4 additions and 4 deletions
|
@ -89,20 +89,20 @@ export {
|
||||||
## Max number of items we buffer at most per peer. What action to take when
|
## Max number of items we buffer at most per peer. What action to take when
|
||||||
## the buffer reaches its maximum size is determined by
|
## the buffer reaches its maximum size is determined by
|
||||||
## :zeek:see:`Broker::peer_overflow_policy`.
|
## :zeek:see:`Broker::peer_overflow_policy`.
|
||||||
const peer_buffer_size = 2048 &redef;
|
const peer_buffer_size = 8192 &redef;
|
||||||
|
|
||||||
## Configures how Broker responds to peers that cannot keep up with the
|
## Configures how Broker responds to peers that cannot keep up with the
|
||||||
## incoming message rate. Available strategies:
|
## incoming message rate. Available strategies:
|
||||||
## - disconnect: drop the connection to the unresponsive peer
|
## - disconnect: drop the connection to the unresponsive peer
|
||||||
## - drop_newest: replace the newest message in the buffer
|
## - drop_newest: replace the newest message in the buffer
|
||||||
## - drop_oldest: removed the olsted message from the buffer, then append
|
## - drop_oldest: removed the olsted message from the buffer, then append
|
||||||
const peer_overflow_policy = "disconnect" &redef;
|
const peer_overflow_policy = "drop_oldest" &redef;
|
||||||
|
|
||||||
## Same as :zeek:see:`Broker::peer_buffer_size` but for WebSocket clients.
|
## Same as :zeek:see:`Broker::peer_buffer_size` but for WebSocket clients.
|
||||||
const web_socket_buffer_size = 512 &redef;
|
const web_socket_buffer_size = 8192 &redef;
|
||||||
|
|
||||||
## Same as :zeek:see:`Broker::peer_overflow_policy` but for WebSocket clients.
|
## Same as :zeek:see:`Broker::peer_overflow_policy` but for WebSocket clients.
|
||||||
const web_socket_overflow_policy = "disconnect" &redef;
|
const web_socket_overflow_policy = "drop_oldest" &redef;
|
||||||
|
|
||||||
## How frequently Zeek resets some peering/client buffer statistics,
|
## How frequently Zeek resets some peering/client buffer statistics,
|
||||||
## such as ``max_queued_recently`` in :zeek:see:`BrokerPeeringStats`.
|
## such as ``max_queued_recently`` in :zeek:see:`BrokerPeeringStats`.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue