Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Super-server

From Wikipedia, the free encyclopedia
Principle of super-server
Example of a server running sshd (port 22), identd (port 113), ftpd (port 21) and httpd (port 80)

A super-server, sometimes called a service dispatcher, is a type of daemon run generally on Unix-like systems.

Usage

[edit]

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[citation needed] or low-traffic daemons with occasional usage (such as ident and SSH).

Performance

[edit]

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

[edit]

References

[edit]
  1. Lennart, Poettering. "systemd for Developers I". Pid Eins. Retrieved 26 April 2021.