4 Stimmen

Apache2 - Optimale Werte für ServerLimit, MaxClients, MaxRequestsPerChild für eine Website mit sehr hohem Verkehrsaufkommen

Ich betreibe eine Website mit viel Traffic (100.000 täglich). Zur Stoßzeit (über 1500 aktive Benutzer online) wird die Website stark verlangsamt und die Ladezeiten der Seiten erhöhen sich. (auch Bilder)

Wir verwenden Front-End + MySQL-Datenbank auf demselben Server. Es sind genügend ungenutzte Ressourcen vorhanden.

Load-Durchschnitt: 1,47, 1,63, 1,73 htop: http://grabilla.com/02b13-02a8961d-bd7e-404c-9873-06e57bb7eab1.png

Server-Konfiguration: E3 1230 (4 x 3,2 GHz) / 16 GB RAM / 1 Gbps Portgeschwindigkeit centoOS 5.8

Apache-Konfiguration:

Timeout 150
KeepAlive Off
MaxKeepAliveRequests 1000
KeepAliveTimeout 15

StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000

StartServers         2
MaxClients         450
MinSpareThreads     25
MaxSpareThreads     75 
ThreadsPerChild     25
MaxRequestsPerChild  0

Die CPU-Auslastung steigt in der Stoßzeit nie über eine durchschnittliche Last von 2 an. Der MySQL-Server hat zu diesem Zeitpunkt auch eine Auslastung von 7~15%. Es handelt sich nicht um ein Datenbank-Engpassproblem, da auch statische Seiten zur Stoßzeit lange Ladezeiten haben.

Über jegliche Tipps zur Optimierung dieser Werte würde ich mich sehr freuen, vielen Dank.

Website-URL: http://goo.gl/XVPAA

11voto

Amorphous Punkte 766

Angenommen, Sie verwenden Linux mit Prefork: Schalten Sie Keep-Alive ein. Wenn Sie konstanten Verkehr haben, erhöhen Sie die Anzahl der Server. Verringern Sie die Keep-Alive-Zeit, damit Sie Ihre Verbindungen nicht schnell saturieren und erhöhen Sie die Anzahl der Anfragen pro Kind, damit die Server nicht zu oft neu gestartet werden. Sie haben viel RAM, also versuchen Sie, die RAM-Auslastung zu maximieren und die CPU-Auslastung zu verringern. Probieren Sie dies zuerst aus:

Timeout 150
KeepAlive On
MaxKeepAliveRequests 1000
KeepAliveTimeout 5

StartServers      20
MinSpareServers   20
MaxSpareServers   30
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  10000

Bearbeiten Sie auch Ihre my.conf und erhöhen Sie den Cache und die Puffer.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X