Superserver
Ein Superserver ist ein Serverprozess, der viele Ports überwacht und beim Eintreffen eines Client-Requests den zuständigen Serverdienst startet. Hat dieser Server seine Aufgabe für diese Anfrage erledigt, wird er beendet.
Inetd ist ein bekanntes Beispiel für einen Superserver bei Unix-Systemen. Die Zuordnung der Netzwerkdienste zu den Portnummern erfolgt in der Datei /etc/services.
Vorteile
BearbeitenIm klassischen Ansatz überwacht ein Serverprozess einen Port. Bei vielen Ports sind also viele Prozesse im Wartezustand und verbrauchen dabei Systemressourcen, vor allem Arbeitsspeicher. Beim Superserver-Ansatz wird nur der vergleichsweise kleine Server vorgehalten, was weniger Arbeitsspeicher bei inaktiven Serverdiensten benötigt.
Viele Superserver sind dahingehend konfigurierbar, dass
- Zugriffe nur von bestimmten Adressen aus möglich sind,
- Dienste unter bestimmten Benutzern gestartet werden können,
- Schwellenwerte für gestartete Prozesse sowohl absolut als auch pro Zeiteinheit eingestellt werden können.
Zudem ermöglicht der Superserver eine vereinfachte Programmierung der Serverdienste, da er für jede eingehende Verbindungsanforderung einen eigenen Prozess startet. Der Programmierer braucht sich um diese Einzelheiten innerhalb seines Programmes nicht zu kümmern.
Nachteile
BearbeitenFür das Starten des jeweiligen Servers wird Zeit benötigt, was die Reaktionszeit bis zur Verfügbarkeit des Netzwerkdienstes entsprechend erhöht. Bei vielen kurzen Verarbeitungen wird auf dem System dadurch mehr Last generiert als mit einem bereits wartenden Verarbeitungsprozess.
Siehe auch
BearbeitenLiteratur
Bearbeiten- Andrew S. Tanenbaum, Marten Van Steen: Distribute Systems – Principles and Paradigms. Pearson Prentice Hall, Upper Saddle River 2007, ISBN 0-13-239227-5.