Hallo,
ich lass mein Spiel auf einem Suse Linux 9 System mit Apache als Webserver laufen. Das Problem ist, das die Serverperformance mit der Zeit immer mehr abnimmt, bis so ca nach 12h nichts mehr geht. Wenn ich dann den Apache Däemon neustarte, läuft alles wieder ganz normal - bis es nach 12h wieder von vorne anfängt. Die CPU-Auslastung bleibt aber ständig um die 0,1 - 2 %.
Hatte jemand schon ähnliche Probleme, oder kann mir sagen woran es liegen könnte?
Performance nimmt zur Laufzeit ab
gepostet vor 19 Jahre, 4 Monate von MannaZ
gepostet vor 19 Jahre, 4 Monate von Kampfhoernchen
Gabs da nicht mal was mit connection_keep_alife oder so, dass die Verbindungen zu den Clients aufrecht erhält?
Ansonsten überprüfe mal, ob es an der Speicherauslastung liegt, wovon ich jetzt einfach mal ausgehe.
Ansonsten überprüfe mal, ob es an der Speicherauslastung liegt, wovon ich jetzt einfach mal ausgehe.
gepostet vor 19 Jahre, 4 Monate von MannaZ
Also der Speicher (Ram) ist immer ziemlich voll - auch direkt nach dem Neustarten - und ich hab mir sagen lassen das sei normal. Glaub also nicht das es daran liegt.
Wo genau könnte der Fehler bei "connection_keep_alife" liegen?
Wo genau könnte der Fehler bei "connection_keep_alife" liegen?
gepostet vor 19 Jahre, 4 Monate von Kampfhoernchen
Überprüf mal die httpd.conf
Da sollte irgendwo das hier drin stehen:
#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On
#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 15
Vielleicht stimmt an den Werten irgendwas nicht - im Zweifelsfall schalt die Funktion mal komplett ab. Aber wie gesagt - is nur ne Idee.
Alternativ könnts auch an Cron-Jobs liegen, dass die irgendwie weiterlaufen, und so Recourcen verbrauchen.
Da sollte irgendwo das hier drin stehen:
#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On
#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 15
Vielleicht stimmt an den Werten irgendwas nicht - im Zweifelsfall schalt die Funktion mal komplett ab. Aber wie gesagt - is nur ne Idee.
Alternativ könnts auch an Cron-Jobs liegen, dass die irgendwie weiterlaufen, und so Recourcen verbrauchen.
gepostet vor 19 Jahre, 4 Monate von schokofreak
Kann unmöglich an Keep- Alives liegen.
Wieso?
Ganz einfach, weil diese ungültig werden sobald der Client die Verbindung von sich aus trennt. Das passiert spätestens dann, wenn der Client den Browser schliesst.
Ich würde mal kucken was da mit dem Ram genau los ist. Oder die Prozesse / Threads genauer beobachten.
Gruss
Wieso?
Ganz einfach, weil diese ungültig werden sobald der Client die Verbindung von sich aus trennt. Das passiert spätestens dann, wenn der Client den Browser schliesst.
Ich würde mal kucken was da mit dem Ram genau los ist. Oder die Prozesse / Threads genauer beobachten.
Gruss
gepostet vor 19 Jahre, 4 Monate von Kampfhoernchen
Bei der Firma, bei der ich Praktikum gemacht hatte - hat eben der Teil mit dem automatischen schließen nicht geklappt. Dadurch hatte der Server alle 2 Tage genau das gleiche Problem - der Arbeitsspeicher is übergelaufen.
gepostet vor 19 Jahre, 3 Monate von Sarge
Ich schätze dein Apache hat angefangen zu Swappen. Der Tot für jeden Indianer... ( schaumal mit top ob Swap used > sehr kleiner wert ist) wenn das Phänomenen auftritt.
--> Deine Anzahl von Threads begrenzen so dass er nie swappen muss.
Die findest du höchstwahrscheinlich in deiner httpd.conf unter bei prefork (nehme ich mal an das dein Indianer als prefork läuft).
Solltest du die Thread anzahl auf einen sehr kleinen Wert herunterregeln müssen so hat sich nach meiner Erfahrung sehr rentiert entgegen den Apache's empfehlungen den KeepAlive auf OFF zu schalten. Somit kannst du mit einer kleinen Anzahl an Threads eine Menge Anfragen beantworten, allerdings ein wenig auf Kosten der CPU zeit.. aber besser als keine Antworten.
--> Deine Anzahl von Threads begrenzen so dass er nie swappen muss.
Die findest du höchstwahrscheinlich in deiner httpd.conf unter bei prefork (nehme ich mal an das dein Indianer als prefork läuft).
Solltest du die Thread anzahl auf einen sehr kleinen Wert herunterregeln müssen so hat sich nach meiner Erfahrung sehr rentiert entgegen den Apache's empfehlungen den KeepAlive auf OFF zu schalten. Somit kannst du mit einer kleinen Anzahl an Threads eine Menge Anfragen beantworten, allerdings ein wenig auf Kosten der CPU zeit.. aber besser als keine Antworten.