For details on how flow-control works, see Section 2.13, “Managing incoming and outgoing messages with flow-control”. The summary of the main points is as follows:
The syslog-ng application normally reads a maximum of
log_fetch_limit() number of messages from a
source.
From TCP and unix-stream sources, syslog-ng reads a maximum of
log_fetch_limit() from every connection of the
source. The number of connections to the source is set using the
max_connections() parameter.
Every destination has an output buffer
(log_fifo_size()).
Flow-control uses a control window to determine if there is free space in
the output buffer for new messages. Every source has its own control window;
log_iw_size() parameter sets the size of the
control window.
When a source accepts multiple connections, the messages of every connection use the same control window.
The output buffer must be larger than the control window of every source that logs to the destination.
If the control window is full, syslog-ng stops reading messages from the source until some messages are successfully sent to the destination.
If the output buffer becomes full, and neither disk-buffering nor flow-control is used, messages may be lost.
![]() |
Note |
|---|---|
If you modify the |
See also Section 7.2, “Handling lots of parallel connections”.
© 2007-2010 BalaBit IT Security
Please send your comments or documentation bugs to: documentation@balabit.com