Skip to main content

socket-burst-dampener

A daemon that spawns a specified command to handle each connection, and dampens connection bursts.

Motivation

It is typical to configure a forking daemon such as rsync so that it will respond with an error when a maximum number of concurrent connections has been exceeded. Alternatively, it may be desirable to queue excess connections, and service them in the order of arrival while taking care to ensure that too many processes are not spawned at once. The socket-burst-dampener daemon applies this behavior to any daemon command that works with inetd.

On Linux, the net.core.somaxconn sysctl setting specifies the queue length for completely established sockets waiting to be accepted. It may also be useful to adjust the maximum queue length for incomplete sockets that is controlled by the net.ipv4.tcp_max_syn_backlog sysctl setting (mentioned in the listen(2) man page).

Usage

usage: socket-burst-dampener [-h] [--address ADDRESS] [--ipv4] [--ipv6]
                             [--load-average LOAD] [--processes PROCESSES]
                             [-v]
                             PORT CMD [ARG [ARG ...]]

  socket-burst-dampener
  A daemon that spawns a specified command to handle each connection, and dampens connection bursts

positional arguments:
  PORT                  listen on the given port number
  CMD                   command to spawn to handle each connection
  ARG                   argument(s) for CMD

optional arguments:
  -h, --help            show this help message and exit
  --address ADDRESS     bind to the specified address
  --ipv4                prefer IPv4
  --ipv6                prefer IPv6
  --load-average LOAD   don't accept multiple connections unless load is below
                        LOAD
  --processes PROCESSES
                        maximum number of concurrent processes (0 means
                        infinite, default is 1)
  -v, --verbose         verbose logging (each occurence increases verbosity)

Example with rsync

socket-burst-dampener 873 --processes $(nproc) --load-average $(nproc) -- rsync --daemon

Metadata

Release files for socket-burst-dampener 1.3.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for socket-burst-dampener 1.3.4
File Size Uploaded
socket_burst_dampener-1.3.4.tar.gz 5.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for socket-burst-dampener 1.3.4
File Interpreter ABI Platform
socket_burst_dampener-1.3.4-py3-none-any.whl Python 3 none any Details

Total release size: 11.6 kB

Release files / socket_burst_dampener-1.3.4.tar.gz

Download URL socket_burst_dampener-1.3.4.tar.gz
Size 5.2 kB
Tags Source
SHA-256 checksum
How to use checksums
faaa3270454934d8efcb1ead67c16ca4820f010c3d92715f4824acad42d3a00e
BLAKE2b-256 checksum
How to use checksums
61c975c634168ad32d835f24a6f5d5b3e852ac6755fe174f0702cf1a7e45d5c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / socket_burst_dampener-1.3.4-py3-none-any.whl

Download URL socket_burst_dampener-1.3.4-py3-none-any.whl
Size 6.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6c0f8e452521f4abe7795afb445f5bedcfe88987b3d122da90634edae6bf476a
BLAKE2b-256 checksum
How to use checksums
425ba35e14cc0f02179811219fb4c107e072139b89000474891b21d9b10e94f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release history Release notifications | RSS feed

This release

1.3.4 This release

2 release files

1.3.3

2 release files

1.3.1

2 release files

1.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page