Deine MySQL Variablen in der my.cnf sind ausreichend dimensioniert. MySQL nimmt sich bei deiner Konfiguration im Extremfall bis zu 1,6 GB RAM. Wenn dieser nicht zur Verfügung steht, lagert MySQL auf Festplatte aus (Swap).
Mußt also sicherstellen, daß MySQL im Extremfall die vollen 1,6 GB RAM zur Verfügung hat.
Vorgehensweise:
1. in der
Code:
/etc/httpd/conf/httpd.conf
schauen, wieviele MaxClients bei
Code:
<IfModule prefork.c>
MaxClients 20
eingetragen sind.
Diese Anzahl an MaxClients multiplizierst du mit 13 MB. Also wenn du MaxClients = 50 hast, 50 multipliziert mit 13 MB = 650 MB RAM.
Zu diesen 650 MB kommen dann nochmal pauschal ca. 200 MB Für Linux, cpanel ect.
Macht zuammen 850 MB.
Dein Server sollte dann mindestens 850 MB + 1600 MB (MySQL) = 2,45 GB RAM haben. Wenn dein Server nur 2 GB RAM hat, dann solltest du die Variablen, insbesondere die Buffers, Caches und Threads in der my.cnf kleiner machen z.B. halbieren, so daß MySQL im Extremfall maximal 1,15 GB RAM in Anspruch nimmt (850 MB + 1,15 GB = 2 GB).
Code:
MEMORY USAGE
Configured Max Memory Limit : 1.15 GB
Man limminiert sozusagen den RAM Verbrauch von Apache und MySQL, so daß bei 100% Auslastung der Server zwar keine neuen Connections zuläßt, er aber nicht in die Knie geht.
Wenn man sehr viele gleichzeitige Verbindungen benötigt, sollte man in der
Code:
/etc/httpd/conf/httpd.conf
Timeout 30
KeepAlive On
MaxKeepAliveRequests 150
KeepAliveTimeout 2
eintragen.