Startseite
>
7. Ausblicke
>
7.1. Performanceüberlegungen
>
7.1.1. Hardware
|
Zurück
Vor
|
|
|
|
Einige Regeln zur optimalen Ausnutzung der Hardware:
Mit den folgenden Randbedingungen kann die Performance des Server gesteuert werden:
-
Der Apache ist unter UNIX per default ein preforking-Server. Ein Hauptserver startet
eine
Anzahl an Kindern, die die Anfragen bearbeiten. Der Vater betreut nur die Kinder, startet
bei Bedarf weitere oder beendet überzählige.
- Es werden maximal 32 neuer Server
je Sekunde gestartet (exponential! 1/s, 2/s, 4/s, 8/s,
16/s, 32/s). Daher sollten genug Server gestartet und bereitgehalten werden
(MinSpareServers, MaxSpareServers, StartServers)
- Ein Server benötigt 200 – 400 kB
RAM. Wenn die Maschine anfängt zu swappen, muss
die Anzahl der Clients begrenzt werden (MaxClients, Timeout)
- Verschiedene Module können ein „memory-leak“
haben. Daher werden die einzelnen
Prozesse nach einer maximalen Anzahl von Anfragen terminiert und neu gestartet
(MaxRequestPerChild). Da nur begrenzt neue Prozesse gestartet werden, darf dieser Wert
nicht zu klein sein. Für rein statische Seiten kann dieser Wert sehr hoch gesetzt werden.
- Bei HTTP/1.1 besteht die Möglichkeit,
dass ein Client mehr als eine Anfrage je Verbindung
an den Server sendet (persistent connections). Durch das Warten des Servers auf weitere
Anfragen werden Ressourcen blockiert. Daher kann hier eine Optimierung notwendig
werden (KeepAlive, MaxKeepAliveRequests, KeepAliveTimeout)
- Das Statusmodul erfordert teilweise
mehrere Systemaufrufe zur Zeitmessung. Daher sollte
auf jeden Fall der erweiterte Status (ExtendedStatus) vermieden werden, wenn es auf
Performance ankommt.
- Virtuelle Server, die von einem Server
bedient werden, kosten Performance, da der Server
ständig prüfen muss, für welchen Server eine Anfrage vorliegt. Hochleistungsserver sollten
sich daher auf einen Server beschränken.
|
|
|
|