A super-server or sometimes called a service dispatcher is a type of daemon run generally on Unix-like systems.
Usage
A super-server starts other servers when needed, normally with access to them checked by a TCP wrapper. It uses very few resources when in idle state. This can be ideal for workstations used for local web development, client/server development or low-traffic daemons with occasional usage (such as ident and SSH).
Performance
The creation of an operating system process embodying the sub-daemon is deferred until an incoming connection for the sub-daemon arrives. This results in a delay to the handling of the connection (in comparison to a connection handled by an already-running process).
Whether this delay is incurred repeatedly for every incoming connection depends on the design of the particular sub-daemon; simple daemons usually require a separate sub-daemon instance (i.e. a distinct, separate operating system process) be started for each and every incoming connection. Such a request-per-process design is more straightforward to implement, but for some workloads, the extra CPU and memory overhead of starting multiple operating system processes may be undesirable.
Alternatively, a single sub-daemon operating system process can be designed to handle multiple connections, allowing similar performance to a "stand alone" server (except for the one-off delay for the first connection to the sub-daemon).[1]
Implementations
References
- ↑ Lennart, Poettering. "systemd for Developers I". Pid Eins. Retrieved 26 April 2021.