mmofacts.com

Server ein - Server aus

gepostet vor 18 Jahre, 9 Monate von MannaZ
Hallo zusammen,
wir haben ein problem mit unserem server, kommen selbst nicht mehr weiter, und hoffen jetzt auf eure hilfe:

Gestern hat der Server nach mehrwöchigem reibungslosen betrieb plötzlich und ohne auslöser (ohne das irgendetwas am server geändert wurde) seine Performance "zurückgeschraubt". DH er reagiert auf http anfragen nur noch sehr langsam bzw garnicht (Link zum ausprobieren: hier)

Die CPU-last ist seit damals sogar von ~20% auf ~4% zurückgegangen (weniger Anfragen/zeit).
Der Webserver-daemon (Apache) wurde bereits mehrmals neugestartet.
PHP-Accelerator wurde deaktiviert.
Per firewall wurden alle Ports ausser 80 gesperrt, um einen eventuellen Hackerangriff auszuschließen (acces log sagt das selbe).
Der Server selbst wurde Hardwaremäßig neu gestartet.
Die Userzahlen haben sich nicht erhöht, keine neuen Tabellen angelegt, nichts.

... und nun sind wir mit unserem Latein am ende.

Hat irgendeiner eine Idee (oder eine Idee einer Idee) was schuld sein könnte an einem solchen verhalten?
Ich danke euch schonmal im vorraus für eure tips.

Infos zum Server: Plus Power von Server4you (aus kostengründen)
gepostet vor 18 Jahre, 9 Monate von Krisch
Die einfachste Möglichkeit wäre, dass was mit der Leitung nicht stimmt, aber das müsste dein Host eigentlich merken.
gepostet vor 18 Jahre, 9 Monate von MannaZ
Original von Krisch
Die einfachste Möglichkeit wäre, dass was mit der Leitung nicht stimmt, aber das müsste dein Host eigentlich merken.


Nein, liegt nicht an der Leitung, weil man mit FTP, SSL, https, etc mit normaler geschwindigkeit drauf zugreifen kann.
gepostet vor 18 Jahre, 9 Monate von felix
Hm..hat der Server zuviel THC erwischt? :wink:

Was ist denn für ein OS drauf?

Kannste was sagen zur CPU-Auslastung, welche Prozesse die verursacht haben?
gepostet vor 18 Jahre, 9 Monate von MannaZ
OS: Suse Linux 9.1
Top:

Tasks: 202 total, 1 running, 201 sleeping, 0 stopped, 0 zombie
Cpu(s): 17.6% us, 2.3% sy, 0.0% ni, 79.7% id, 0.0% wa, 0.0% hi, 0.3% si
Mem: 1024860k total, 1011964k used, 12896k free, 32144k buffers
Swap: 530136k total, 2092k used, 528044k free, 529068k cached

25970 wwwrun 16 0 30116 13m 25m S 5.3 1.3 0:08.36 httpd2-prefork
26436 wwwrun 16 0 29816 12m 25m S 5.0 1.3 0:04.69 httpd2-prefork
26591 wwwrun 17 0 29992 13m 25m S 2.7 1.3 0:00.99 httpd2-prefork
26550 wwwrun 16 0 29868 12m 25m S 2.3 1.3 0:04.31 httpd2-prefork
26295 wwwrun 17 0 30120 12m 25m S 2.0 1.3 0:05.68 httpd2-prefork
26334 wwwrun 16 0 29868 13m 25m S 1.7 1.3 0:03.25 httpd2-prefork
26351 wwwrun 15 0 29720 12m 25m S 1.3 1.3 0:03.74 httpd2-prefork
26480 wwwrun 15 0 29940 13m 25m S 1.3 1.3 0:01.75 httpd2-prefork
26529 wwwrun 16 0 29836 12m 25m S 1.3 1.3 0:03.49 httpd2-prefork
26521 wwwrun 17 0 30004 13m 25m S 1.0 1.3 0:04.37 httpd2-prefork
26588 wwwrun 16 0 29944 13m 25m S 1.0 1.3 0:01.02 httpd2-prefork
26221 wwwrun 15 0 30000 13m 25m S 0.7 1.3 0:05.61 httpd2-prefork
26413 wwwrun 16 0 29488 12m 25m S 0.7 1.3 0:03.20 httpd2-prefork
26426 wwwrun 17 0 29768 12m 25m S 0.7 1.3 0:05.44 httpd2-prefork
26449 wwwrun 15 0 29812 12m 25m S 0.7 1.3 0:02.90 httpd2-prefork
26485 wwwrun 16 0 30124 13m 25m S 0.7 1.3 0:03.47 httpd2-prefork
15685 mysql 15 0 332m 41m 6616 S 0.3 4.2 0:22.12 mysqld-max
20509 root 15 0 3088 1356 2612 S 0.3 0.1 0:45.86 pipelog.pl
25962 wwwrun 17 0 29984 13m 25m S 0.3 1.3 0:06.17 httpd2-prefork
gepostet vor 18 Jahre, 9 Monate von Temruk
Wir haben auch 7 Server bei Server4You, tun alle ratzfatz. Wir hatten allerdings mal das gleiche Problem. Bei uns war es folgender Grund: eine DB-Tabelle wurde vom Inhalt her größer als 1 GB und dadurch musste der Server ständig hin und her cachen. Das macht die Kiste wirklich saulahm. Habt ihr die aktuelle Datenbankgröße mal gecheckt? Eurer RAM sieht sehr voll aus...
gepostet vor 18 Jahre, 9 Monate von troopers
schonmal kontrolirt ob maby clamav (virenwächter) die probs verursacht ? oder ein andres program zuviel ram braucht ?
gepostet vor 18 Jahre, 9 Monate von Skyrunner
Sowas hatte ich auf unserem DB Server schon mehrmals... 2 Tage später war die Platte schrott. Man sollte über kurz oder lang eh auf SCSI umsteigen, da IDE Festplatten nur ne begrenzte Laufzeit haben, danach sind sie meist schrott.

Ansonsten mal df ausprobieren und gucken, ob vielleicht ein log übergelaufen ist, etc. Achja: Apache 1.3 und mysql 4.0 verwenden
gepostet vor 18 Jahre, 9 Monate von zodiac2k
Ich tippe mal stark auf Probleme der MySQL DB. Wenn man die Prozesse betrachtet, sind>200 doch relativ viel für ein Spiel mit nichtmal 5k Spielern. Desweiteren ist Eure Memory Usage von 1GB doch enorm viel. Mit irgendwas müllt ihr Euch da gewaltig zu.

Diese Masse an Prozessen wird meistens durch zu lang laufende Apache Prozesse verursacht, die oftmals durch zu unperformante SQL Abfragen in den PHP Scripten zu Stande kommen.

Ob es an den SQL Abfragen liegt, kannst du sehr schnell überprüfen wenn du eine reine HTML Datei anforderst über HTTP und danach ein PHP Script ohne SQL Abfragen. So kannst du recht gut den Grund eingrenzen.

Am Apache selbst kann es ja schonmal nicht liegen, wenn SSL und HTTPS die normale Geschwindigkeit haben.

Hoffe das hilft euch ein bischen :-)

Gruß Zodi
gepostet vor 18 Jahre, 9 Monate von Temruk
Wenn das Problem behoben ist würde ich empfehlen Munin zu installieren. damit siehst du viele Engpässe schnell und früh genug.
gepostet vor 18 Jahre, 9 Monate von MannaZ
Also erstmal danke für die zahlreichen Antworten!

@temruk:
Nein, wir haben keine Tabelle über 1GB - die ganze DB ist nur 50MB groß

@troopers:
Wie kann ich das kontrollieren (bin ein ziemlicher Linux-Noob - grad das ich textdateien bearbeiten und software installieren kann ).
Kennst du ein programm, mit dem ich sehen kann, welcher prozess wieviel vom speicher braucht?

@Skyrunner:
Ja, ich kann mich daran erinnern - damals hab ich selbst aufgehört OPW zu spielen
Ich glaube aber nicht das es an der Platte liegt - der server läuft noch nicht mal 1 Monat.

@zodiac2k:
Ja, es stimmt, die apache-prozesse laufen ziemlich lange, aber das mit den SQL-abfragen kann ich nicht bestätigen, da eine statische html-seite gleich langsam läd wie eine php-seite mit sql befehlen.

@temruk:
Was genau macht Munin - und kann ich es nicht schon einsetzen, BEVOR das problem behoben ist
gepostet vor 18 Jahre, 9 Monate von Temruk
50MB? Dann frage ich mich, was bei Euch da 1 GB Ram zumüllt. Habt ihr mal die Logs gecheckt, wie groß die sind? Wir haben auf unseren Kisten etwa 400 MB Ram (von 512 MB) im Gebrauch und die DB ist 70 - 100 MB groß.

Munin ist sowas wie ein Systemmonitor, zeig dir Slow Mysql Queries an, Ram Usage, I/O Stats, alles was das Administratorenherz begehrt. Zu haben hier: http://munin.sourceforge.net/

Macht mal einen TOP bezüglich Mem usage. Vielleicht hilft das weiter?
gepostet vor 18 Jahre, 9 Monate von MannaZ
Ja, der Access log wird schon ziemlich groß (>120MB), ich habe mich aber diesbezüglich erkundigt, und die Antwort erhalten, das dies vollkommen unproblematisch sei (fehlinformation?). Ich habe auch keine einstellung gefunden, mit der ich den Acces-log deaktivieren könnte.
gepostet vor 18 Jahre, 9 Monate von RedMax
Nur so eingeschmissen : RAM ist kein Problem. Da sind ja ~550MB in Buffers und Cache. Die sind quasi auch "frei", können also benutzt werden. Das ist also alles ganz normal.
gepostet vor 18 Jahre, 9 Monate von Temruk
Den access_log kannst du und solltest du auch auf gar keinen Fall deaktivieren 120 MB sind da auch nicht schlimm. Bleibt die Frage, was euch da den Speicher zumüllt. Poste mal bitte ein top nach mem sortiert.
gepostet vor 18 Jahre, 9 Monate von BLUESCREEN
Original von zodiac2k
Desweiteren ist Eure Memory Usage von 1GB doch enorm viel. Mit irgendwas müllt ihr Euch da gewaltig zu.

Unter Linux ist der RAM meistens voll ausgelastet.
Das soll so sein und alles andere wäre Verschwendung.

Probleme mit zu wenig Speicher könnt ihr daran erkennen, dass viel geswappt werden muss. Und das ist hier nicht der Fall: "Swap: (...) 2092k used"

@MannaZ: Du könntest hier mal die Ausgabe von "uptime" posten.
gepostet vor 18 Jahre, 9 Monate von MannaZ
Uptime: (Wenn du den ersten beitrag gelesen hättest, wüstest du das der server erst gestern neu gestartet wurde)
5:37pm up 1 day 22:57, 1 user, load average: 0.52, 0.45, 0.43


Mir ist die Frage jetzt ein wenig peinlich, aber wie sortiere ich die "top" - ausgabe nach mem? ("top --help" hilft mir auch nicht weiter).
gepostet vor 18 Jahre, 9 Monate von Temruk
F bzw O drücken wenn top läuft.
gepostet vor 18 Jahre, 9 Monate von MannaZ
Danke, hier:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

15685 mysql 15 0 333m 42m 6616 S 0.0 4.2 0:51.14 mysqld-max
27358 wwwrun 15 0 32648 15m 25m S 5.0 1.6 0:10.62 httpd2-prefork
27293 wwwrun 17 0 31348 14m 25m S 0.0 1.4 0:10.80 httpd2-prefork
27273 wwwrun 17 0 31028 14m 25m S 0.0 1.4 0:10.17 httpd2-prefork
27325 wwwrun 17 0 30912 13m 25m S 0.0 1.4 0:17.77 httpd2-prefork
27369 wwwrun 16 0 30852 13m 25m S 0.0 1.4 0:11.48 httpd2-prefork
27374 wwwrun 17 0 30580 13m 25m S 0.0 1.4 0:12.43 httpd2-prefork
27349 wwwrun 17 0 30580 13m 25m S 0.0 1.4 0:09.36 httpd2-prefork
27395 wwwrun 16 0 30600 13m 25m S 0.0 1.4 0:10.44 httpd2-prefork
27272 wwwrun 15 0 30552 13m 25m S 0.0 1.4 0:09.01 httpd2-prefork
27352 wwwrun 15 0 30620 13m 25m S 0.0 1.4 0:14.05 httpd2-prefork
27365 wwwrun 16 0 30468 13m 25m S 0.0 1.4 0:09.65 httpd2-prefork
27249 wwwrun 16 0 30400 13m 25m S 0.0 1.4 0:08.59 httpd2-prefork
27288 wwwrun 17 0 30428 13m 25m S 0.0 1.3 0:07.45 httpd2-prefork
27255 wwwrun 17 0 30440 13m 25m S 0.0 1.3 0:13.25 httpd2-prefork
27306 wwwrun 16 0 30476 13m 25m S 0.0 1.3 0:07.33 httpd2-prefork
27376 wwwrun 16 0 30356 13m 25m S 0.0 1.3 0:17.53 httpd2-prefork
27280 wwwrun 15 0 30352 13m 25m S 0.0 1.3 0:08.34 httpd2-prefork
27384 wwwrun 15 0 30352 13m 25m S 0.0 1.3 0:11.98 httpd2-prefork
27381 wwwrun 15 0 30344 13m 25m S 0.3 1.3 0:07.59 httpd2-prefork
27326 wwwrun 17 0 30312 13m 25m S 0.0 1.3 0:07.62 httpd2-prefork
27385 wwwrun 17 0 30292 13m 25m S 0.0 1.3 0:07.86 httpd2-prefork
27305 wwwrun 17 0 30308 13m 25m S 0.0 1.3 0:11.69 httpd2-prefork
27298 wwwrun 16 0 30316 13m 25m S 0.0 1.3 0:08.91 httpd2-prefork
27314 wwwrun 16 0 30296 13m 25m S 0.0 1.3 0:09.94 httpd2-prefork
27278 wwwrun 16 0 30232 13m 25m S 0.0 1.3 0:08.44 httpd2-prefork
27392 wwwrun 16 0 30264 13m 25m S 0.0 1.3 0:08.40 httpd2-prefork
27360 wwwrun 16 0 30224 13m 25m S 0.0 1.3 0:10.26 httpd2-prefork
27275 wwwrun 16 0 30200 13m 25m S 0.0 1.3 0:10.73 httpd2-prefork
27313 wwwrun 17 0 30184 13m 25m S 0.0 1.3 0:08.69 httpd2-prefork
27383 wwwrun 17 0 30192 13m 25m S 0.0 1.3 0:13.88 httpd2-prefork
27344 wwwrun 16 0 30132 13m 25m S 0.3 1.3 0:10.31 httpd2-prefork
27251 wwwrun 17 0 30148 13m 25m S 0.0 1.3 0:15.50 httpd2-prefork
27340 wwwrun 15 0 30160 13m 25m S 0.0 1.3 0:10.28 httpd2-prefork
27309 wwwrun 17 0 30124 13m 25m S 0.0 1.3 0:14.46 httpd2-prefork
27252 wwwrun 16 0 30100 13m 25m S 1.3 1.3 0:19.28 httpd2-prefork
27321 wwwrun 17 0 30088 13m 25m S 0.0 1.3 0:07.88 httpd2-prefork
27345 wwwrun 17 0 30016 13m 25m S 0.0 1.3 0:09.57 httpd2-prefork

was mir auffällt ist, dass die http dienste 10s und mehr laufen
gepostet vor 18 Jahre, 9 Monate von felix
Kannste was darüber aussagen, wie ungefähr die Auslastung ist über längere Zeit? Gestern war auch das THC-Banner echt lahm, vlt. hats also garnix mit der DB zu tun.

Du kannst auch beim Mysql die Slow-Queries loggen.

Wenn was mit Email nicht funktioniert solltest du dein Mailserver da mal genau anschauen.
gepostet vor 18 Jahre, 9 Monate von MannaZ
Jetzt, nachdem wir PHPaccelerator deaktiviert haben ist sie im schnitt zwischen 15 und 20 %.

Und nein - ich glaube auch nicht das es an der DB liegt.

Und, nein am mailserver liegts nicht - wir haben gar keinen laufen - nur senmail, aber das ist zz auch deaktiviert.
gepostet vor 18 Jahre, 9 Monate von BLUESCREEN
Original von MannaZ
Uptime: (Wenn du den ersten beitrag gelesen hättest, wüstest du das der server erst gestern neu gestartet wurde)
5:37pm up 1 day 22:57, 1 user, load average: 0.52, 0.45, 0.43

Es geht nicht um die Uptime sondern um "load average".
Die Werte sehen gut aus, der Server ist nicht überlastet.
gepostet vor 18 Jahre, 9 Monate von None
die ping zeiten des servers sind gut!
das problem liegt rein an den prozess hinter port 80
auch wenn man per telnet auf port 80 connected, ist die verbindung sofort da - jedoch wenn man ein dokument abruft dauert es ewig, bis man die antwort erhält - ka vl hilfts ja
gepostet vor 18 Jahre, 9 Monate von None
thx für die antworten
hat sich erledigt - grund war ein defektes script
gepostet vor 18 Jahre, 9 Monate von MannaZ
Ich habe jetzt mal einfach so aus reiner verzweiflung ein JS-script rausgenommen, welches alle 60 Sekunden (!!!)* eine PHP seite geladen hat, um ein paar informationen aufzufrischen.
Und siehe da :arrow: ES GEHT WIEDER.

Ich glaube dies ist mit normalen Programmiererverstand nicht zu erklähren... wenn doch - überzeugt mich vom gegenteil.

*) man muss sich vorstellen, das manche user manchmal 4 seiten pro sekunde nur durch klicken aufrufen - da fällt sotwas doch nicht in gewicht ?!?
gepostet vor 18 Jahre, 9 Monate von felix
Zitat:
Die neueste Spielversion von THC setzt sogar nur noch auf Iframes, welche dynamisch von javascripts zum Resourcen-nachladen angelegt, und wieder gelöscht werden (script gebe ich auf nachfrage gerne weiter).



Achso, desshalb ist dein Server so lahm...


Ich dachte das eigentlich eher als Spass...
gepostet vor 18 Jahre, 9 Monate von troopers
normal habt jedes "fortschritliche" admin interface neh prozesübersicht
zumindest bei pels confix visas als auch webmin ist eins vorhanden und das sind die meistgenuzten

hir ist ein guter infolink http://www.linux-club.de/viewtopic.php?t=36523&view=next

darin stehen auch die befehle zum stoppen



http://www.clamav.net ist der rest an infos

über yast soltest du es auch deaktiviren also das es nicht gestartet wird

mag zwar net sein aber das risiko das clamav den server lam legt ist mir zumindest zu groß
gepostet vor 18 Jahre, 9 Monate von Haase
Hallo,

Ich habe auch ein ähnliches Problem, nur dass es nur ab und zu auftaucht. Ich habe die vermutung, dass es durch ein php-Script ausgelöst wird, doch alle Scripte einzeln durchzuschauen wäre eine riesen Arbeit.
Gibt es eine Möglichkeit anzuzeigen, welche PHP-Scripts wieviel CPU/Speicher brauchen?
gepostet vor 18 Jahre, 9 Monate von BLUESCREEN
Original von Haase
Gibt es eine Möglichkeit anzuzeigen, welche PHP-Scripts wieviel CPU/Speicher brauchen?

Du könntest dir mal den Befehl getrusage() angucken.
gepostet vor 18 Jahre, 9 Monate von Fornax
hmm, ich hab bei php.net nachgeguckt, das Beispielscript kopiert und es ging nicht. Ich habe PHP 5.0.4 (vom May 12 2005 12:41:39) und WinXP-SP2. Als fehlermeldung erhalte ich
Fatal error: Call to undefined function: getrusage() in C:\Programme\xampp\htdocs\www.fornax-galaxies.de\entwicklung\cpu.php on line 2


Code:
$dat = getrusage();

echo $dat["ru_nswap"]; # number of swaps
echo $dat["ru_majflt"]; # number of page faults
echo $dat["ru_utime.tv_sec"]; # user time used (seconds)
echo $dat["ru_utime.tv_usec"]; # user time used (microseconds)
?>

Läuft das nur auf Linux?
Ich lade es grad mal hoch, dann werd ich's sehn

/Edit:
Auf dem Server läuft's:
downloads.fornax-galaxies.de/cpu.php
Ich hab das Script leicht geändert auf

 

$dat = getrusage();
print_r($dat);
?>

Auf diese Diskussion antworten