lucifer1101
Registered User
Hallo,
nachdem das Ding (1&1 vServer L), über das ich schon zweimal verzweifelt schrieb, grundsätzlich soweit das tut, was es soll bringt mich noch ein letztes Manko zum Verzweifeln:
- auf dem Server läuft eigentlich nur eine relativ harmlose Seite, die auf eine MySQL-DB (klein) zugreift, und diese mit ein paar simplen PHPs anspricht, ausliest. Die Hits auf den Unterbereich, der überhaupt mit PHP und MySQL zu tun hat, halten sich sehr in Grenzen
- einfache Sachen, wie z.B. Plesk deaktivieren und andere unnötige Dienste nicht mitlaufen lassen, sind auch schon gemacht.
Jetzt zum "Ärgernis": selbst wenn ich "nur" ganz alleine ein paar der PHPs aufrufe, und dadurch ein paar billige MySQL-Abfragen abgearbeitet werden, gehen die verbrauchten Ressourcen, vor allem der wohl allseits herrschende Knackpunkt der privvmpages, also der Speicher immens hoch, bis der Server schnell sagt, dass er in der "Black zone" ist und entsprechend nur noch langsam antwortet oder MySQL-Fehler und Co bringt.
Im Moment der tatsächlichen Arbeit (Abfrage, Seitenabruf, was auch immer), ist das natürlich logisch, dass er Speicher braucht. Aber warum erholt sich das nicht mehr wirklich? Ist erst einmal ein hoher Wert an Auslastung erreicht, geht er nicht mehr nennenswert nach unten (auf z.B. 40 - 50 %), sondern bleibt bei > 80? Selbst nachts, wenn definitiv kein einziger Aufruf erfolgt, und niemand was will, sinkt der Wert nicht. Das einzige was hilft, ist ein Neustart der Maschine...
Mir ist klar, dass ein vServer, noch dazu der kleinste keine Leistungsmaschine ist, aber dass so schnell der Speicher verbraucht ist, und vor allem nicht wieder leer wird, kapier ich einfach nicht - räumt da keiner auf ;-)?
Meine Hoffnung ist, dass mir jemand einen Tipp geben kann, was sich an den MySQL-Einstellungen oder APache Server-Tuning-Daten verändern lässt, um das Verhalten zu verbessern.
Mal interessanter Abschnitt der my.cnf:
und aus der apache-tuning-dingensda
Für heiße Tips, die die Funktion aufrecht erhalten, aber vielleicht dafür sorgen, dass nicht irgendwo stundenlang Apache oder MySQL einen Haufen Daten für nix bunkern, wäre ich dankbar.
nachdem das Ding (1&1 vServer L), über das ich schon zweimal verzweifelt schrieb, grundsätzlich soweit das tut, was es soll bringt mich noch ein letztes Manko zum Verzweifeln:
- auf dem Server läuft eigentlich nur eine relativ harmlose Seite, die auf eine MySQL-DB (klein) zugreift, und diese mit ein paar simplen PHPs anspricht, ausliest. Die Hits auf den Unterbereich, der überhaupt mit PHP und MySQL zu tun hat, halten sich sehr in Grenzen
- einfache Sachen, wie z.B. Plesk deaktivieren und andere unnötige Dienste nicht mitlaufen lassen, sind auch schon gemacht.
Jetzt zum "Ärgernis": selbst wenn ich "nur" ganz alleine ein paar der PHPs aufrufe, und dadurch ein paar billige MySQL-Abfragen abgearbeitet werden, gehen die verbrauchten Ressourcen, vor allem der wohl allseits herrschende Knackpunkt der privvmpages, also der Speicher immens hoch, bis der Server schnell sagt, dass er in der "Black zone" ist und entsprechend nur noch langsam antwortet oder MySQL-Fehler und Co bringt.
Im Moment der tatsächlichen Arbeit (Abfrage, Seitenabruf, was auch immer), ist das natürlich logisch, dass er Speicher braucht. Aber warum erholt sich das nicht mehr wirklich? Ist erst einmal ein hoher Wert an Auslastung erreicht, geht er nicht mehr nennenswert nach unten (auf z.B. 40 - 50 %), sondern bleibt bei > 80? Selbst nachts, wenn definitiv kein einziger Aufruf erfolgt, und niemand was will, sinkt der Wert nicht. Das einzige was hilft, ist ein Neustart der Maschine...
Mir ist klar, dass ein vServer, noch dazu der kleinste keine Leistungsmaschine ist, aber dass so schnell der Speicher verbraucht ist, und vor allem nicht wieder leer wird, kapier ich einfach nicht - räumt da keiner auf ;-)?
Meine Hoffnung ist, dass mir jemand einen Tipp geben kann, was sich an den MySQL-Einstellungen oder APache Server-Tuning-Daten verändern lässt, um das Verhalten zu verbessern.
Mal interessanter Abschnitt der my.cnf:
Code:
# The MySQL server
[mysqld]
set-variable = max_connections=250
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 32M
max_allowed_packet = 1M
table_cache = 64
#sort_buffer = 4M
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
und aus der apache-tuning-dingensda
Code:
# prefork MPM
<IfModule prefork.c>
# number of server processes to start
StartServers 5
# minimum number of server processes which are kept spare
MinSpareServers 5
# maximum number of server processes which are kept spare
MaxSpareServers 10
# highest possible MaxClients setting for the lifetime of the Apache pro
cess.
ServerLimit 150
# maximum number of server processes allowed to start
MaxClients 150
# maximum number of requests a server process serves
MaxRequestsPerChild 100
</IfModule>
Für heiße Tips, die die Funktion aufrecht erhalten, aber vielleicht dafür sorgen, dass nicht irgendwo stundenlang Apache oder MySQL einen Haufen Daten für nix bunkern, wäre ich dankbar.