VServer 1&1 geht in die Knie

rady

New Member
Hallo :)

Ich habe heute Nacht einen VServer L mit 512MB garantiertem RAM von 1&1 bestellt

"für anspruchsvolle Homepage- und Datenbankanwendungen."

Ich habe ein kleines Browsergame auf einem normalen Webspace laufen gehabt (ohne Probleme!) und wollte nun auf den VServer wechseln.

Daten hochgeladen, Datenbank erstellt und alte Daten importiert - kein Problem.

Dann habe ich die alte Domain auf den neuen Server umgeleitet und schon war der Server nicht mehr erreichbar, bzw mit Glück mal für wenige Sekunden.

CPU-Auslastung 60-95%
Systemauslastung ~60%
+ Nachricht: "Ressourcen nahe am Maximum."

Um die User nicht zu verärgern hab ich die Umleitung dann rückgängig gemacht. Daraufhin konnte ich den Server wieder erreichen.

Dennoch:
CPU-Auslastung 0-60%
Systemauslastung ~50%
+ Nachricht: "Ressourcen nahe am Maximum."
Ohne dass noch Zugriffe auf den Server stattgefunden haben wohlgemerkt!

Das kann doch wohl nicht normal sein? Dass die Kiste bei ~50 Usern gleichzeitig online den Geist aufgibt und selbst ohne eine einzige Anfrage "nahe am Maximum" arbeitet.

Wo kann das Problem liegen? (1&1 Support hat leider noch nicht geantwortet)


überings gabs noch schöne QoS Alarme:

Mi 21 Apr 2010 16:11:43 CEST Grüner BereichGrüner Bereich othersockbuf
Mi 21 Apr 2010 16:06:33 CEST Schwarzer BereichSchwarzer Bereich othersockbuf
Mi 21 Apr 2010 15:57:02 CEST Grüner BereichGrüner Bereich othersockbuf
Mi 21 Apr 2010 15:57:01 CEST Gelber BereichGelber Bereich othersockbuf
Mi 21 Apr 2010 13:30:59 CEST Grüner BereichGrüner Bereich othersockbuf
Mi 21 Apr 2010 13:30:58 CEST Gelber BereichGelber Bereich othersockbuf
Mi 21 Apr 2010 13:27:18 CEST Grüner BereichGrüner Bereich othersockbuf
Mi 21 Apr 2010 13:27:13 CEST Gelber BereichGelber Bereich othersockbuf
 
Wenn du mir noch verraetst was "othersockbuf" sein soll?
Nach eigenen Erfahrungen haben oft Webspace-Anbieter gegenueber vServer die Nase vorn was Leistung angeht (sofern die Server nicht ueberfuellt sind) da ein zentraler Webserver die gesamte Ressourcen ohne zwischengeschalteten Hypervisor verteilen kann, statt x kleine Apaches.

Allerdings denke ich eher dass es ein Konfigurationsproblem sein kann, bitte top, pstree, netstat posten.
 
othersockbuf
The total size of UNIX-domain socket buffers, UDP, and other datagram protocol send buffers.

hiervon kamen auch warnings

numproc
The maximal number of processes the VPS may create.

numfile
The number of files opened by all VPS processes.

------------------------------
Hab keine wirkliche Ahnung von den Begriffen die du gepostet hast :D Wenn du was anderes meintest, bitte bescheid sagen


Code:
pstree
init-+-console-kit-dae
     |-4*[courierlogger]
     |-4*[couriertcpd]
     |-cron
     |-dbus-daemon
     |-httpd2-prefork---6*[httpd2-prefork]
     |-master-+-pickup
     |        |-qmgr
     |        `-tlsmgr
     |-mysqld_safe---mysqld---8*[{mysqld}]
     |-saslauthd---saslauthd
     |-sshd-+-sshd---bash
     |      `-sshd---bash---pstree
     |-sw-cp-serverd
     |-syslogd
     `-xinetd

Code:
top - 00:29:42 up  5:25,  2 users,  load average: 0.00, 0.58, 0.94
Tasks:  36 total,   1 running,  35 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:   2097152k total,   192848k used,  1904304k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root      16   0   732  300  244 S    0  0.0   0:00.01 init
28029 messageb  16   0 14552  832  636 S    0  0.0   0:00.00 dbus-daemon
28036 root      16   0 23920 1592 1332 S    0  0.1   0:00.00 console-kit-dae
28404 root      18   0 29024  756  408 S    0  0.0   0:00.00 saslauthd
28405 root      18   0 29024  488  140 S    0  0.0   0:00.00 saslauthd
28412 root      16   0  5776  680  548 S    0  0.0   0:00.03 syslogd
28424 root      18   0 17976  748  456 S    0  0.0   0:00.00 couriertcpd
28426 root      18   0 13648  940  680 S    0  0.0   0:00.00 courierlogger
28435 root      18   0 17976  748  456 S    0  0.0   0:00.00 couriertcpd
28437 root      18   0 13648  940  680 S    0  0.0   0:00.00 courierlogger
28444 root      18   0 17976  748  456 S    0  0.0   0:00.00 couriertcpd
28446 root      18   0 13648  940  680 S    0  0.0   0:00.00 courierlogger
28454 root      21   0 17976  748  456 S    0  0.0   0:00.00 couriertcpd
28456 root      18   0 13648  940  680 S    0  0.0   0:00.00 courierlogger
28484 root      17   0 13072 1480 1180 S    0  0.1   0:00.00 mysqld_safe
28531 mysql     16   0  208m  23m 5032 S    0  1.1 105:43.31 mysqld
28547 root      16   0 61740 1320  700 S    0  0.1   0:00.09 sshd
Netstat im Anhang
 

Attachments

Bitte den Server kuenstlich belasten um das Problem zu finden.
Zu dem Zeitpunkt wo du top kopiert hast lag er naemlich im Tiefschlaf.

Diese Warnungen lasen mich aber drauf schliessen dass dein Webserver (apache2) entweder sehr viele Verbindungen verkraften muss oder sich selbst erhaengt was wahrscheinlicher ist.

Wenn du willst, adde mich in ICQ 248978444 oder MSN d4f [at] rechnerwelt [punkt] com und wir gehen der Sache gemeinsam auf den Grund. Ich bin es leid tagelang raetselraten zu muessen bis per Zufall oder durch Eingrenzung der Fehler gefunden wurde :)
 
Hab dich mal geaddet.

Also zumindest numproc und numfile kamen aber während garkeine User unterwegs waren... nur ich hatte glaubich ein etwas größeren Cronjob gestartet sonst nichts.
othersockbuf kam während so geschätzte 50 User drauf waren bzw es versucht haben -.-


hier top während ein cronjob lief
Code:
top - 01:01:10 up  5:57,  2 users,  load average: 1.98, 1.93, 1.60
Tasks:  44 total,   4 running,  40 sleeping,   0 stopped,   0 zombie
Cpu(s): 12.6% us,  2.3% sy,  0.0% ni, 85.0% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:   2097152k total,   232644k used,  1864508k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
28531 mysql     16   0  209m  23m 5032 S   96  1.2 124:42.58 mysqld
21601 wwwrun    16   0  265m  19m 3736 R    4  1.0   0:06.88 httpd2-prefork
26582 root      16   0  139m  10m 5232 R    4  0.5   0:01.80 php
    1 root      16   0   732  300  244 S    0  0.0   0:00.01 init
28029 messageb  16   0 14552  832  636 S    0  0.0   0:00.00 dbus-daemon
28036 root      16   0 23920 1592 1332 S    0  0.1   0:00.00 console-kit-dae
28404 root      18   0 29024  756  408 S    0  0.0   0:00.00 saslauthd
28405 root      18   0 29024  488  140 S    0  0.0   0:00.00 saslauthd
28412 root      16   0  5776  680  548 S    0  0.0   0:00.03 syslogd
28424 root      18   0 17976  748  456 S    0  0.0   0:00.00 couriertcpd
28426 root      18   0 13648  940  680 S    0  0.0   0:00.00 courierlogger
28435 root      18   0 17976  748  456 S    0  0.0   0:00.00 couriertcpd
28437 root      18   0 13648  940  680 S    0  0.0   0:00.00 courierlogger
28444 root      18   0 17976  748  456 S    0  0.0   0:00.00 couriertcpd
28446 root      18   0 13648  940  680 S    0  0.0   0:00.00 courierlogger
28454 root      21   0 17976  748  456 S    0  0.0   0:00.00 couriertcpd
28456 root      18   0 13648  940  680 S    0  0.0   0:00.00 courierlogger
28484 root      17   0 13072 1480 1180 S    0  0.1   0:00.00 mysqld_safe
28547 root      16   0 61740 1320  700 S    0  0.1   0:00.09 sshd
28563 sw-cp-se  16   0 45800 1816  832 S    0  0.1   0:00.01 sw-cp-serverd
28569 root      15   0 18952  944  740 S    0  0.0   0:00.00 xinetd
28625 root      16   0 43020 2276 1748 S    0  0.1   0:00.04 master
28639 postfix   15   0 45128 2344 1780 S    0  0.1   0:00.01 qmgr
28669 postfix   16   0 47192 2380 1828 S    0  0.1   0:00.00 tlsmgr
29699 root      16   0  257m  15m 7656 S    0  0.8   0:00.20 httpd2-prefork
29700 wwwrun    15   0  256m 7552  492 S    0  0.4   0:00.00 httpd2-prefork
29727 root      15   0 20440  804  624 S    0  0.0   0:00.00 cron
26295 wwwrun    16   0  259m  14m 4768 S    0  0.7   0:25.62 httpd2-prefork
29912 wwwrun    16   0  261m  16m 4744 S    0  0.8   0:37.36 httpd2-prefork
29926 wwwrun    16   0  266m  21m 4428 S    0  1.0   0:03.73 httpd2-prefork
 1516 wwwrun    16   0  267m  21m 3772 S    0  1.1   0:46.36 httpd2-prefork
edit:
so also der Cronjob läuft jetzt seit 30 Minuten ... ich glaub der wird nicht mehr fertig. Hat aufm alten Space vl max ein paar Minuten gebraucht.
 
Last edited by a moderator:
Okay ich hab mal ein bisschen getestet... den Speicher krieg ich voller aber die CPU hängt immernoch bei 96% :confused:
edit: Aber der cronjob is doch wesentlicher schneller durchgelaufen ^^
 
Last edited by a moderator:
Die Frage ist... was ist das fuer ein Cronjob-Monster und was macht es?
vServer sind technisch bedingt nicht sonderlich geeignet fuer grosse Datenbank-Operationen da er fuer jede einzelne Lese/Schreibe-Anfrage in die IO-Scheduler Queue sitzen gehen muss und somit die Wait-Average sich irgendwo zwischen Mars und Jupiter einpendelt...

Ich bin uebrigens online (online-online, nicht away-online was bedeutet dass mein Rechner oder Gehirn ausgeschaltet ist)
Einfach anschreiben, ich adde idR nicht zurueck da meine Kontaktliste schon so ueber 200 Eintraege hat ^^
 
Joa das is schon ein recht mächtiger Cronjob werden schon einige Zehntausend Einträge getätigt ^^Wäre doof wenn der VServer da von Natur aus nicht für geeignet ist
 
Ich habe ein kleines Browsergame auf einem normalen Webspace laufen gehabt
ronjob werden schon einige Zehntausend Einträge getätigt
Ich will _nicht_ wissen was du als mittleres/grosses Browsergame verstehst?
Eine Replikatorfarm allein fuer die Cronjobs? ^^

Ich behaupte mal spontan dass dein Browserspiel schlecht entworden wurde da sicherlich nicht die Daten alle auf einmal reinkommen und nicht alle auf einmal gebraucht werden, somit ein Daemon sich regelrecht aufdraengen wuerde ;)

Kleine Rootserver sind besser geeignet als vServer fuer festplatten-belastende Systeme da du keinerlei Kontrolle ueber deine Mitbewohner hast - sollten sich 9 von 10 Mitbewohner entscheiden Punkt Mitternach ein Backup zu starten kannst du froh sein wenn du ueberhaupt noch benutzbare Werte erhaelst.
(Ich hatte schon vServer wo Punkt MItternacht die SSH-Verbindung abriss und Software durch Write-Timeout abschmirte)
Allerdings kosten sie auch dementsprechend...

Eine Alternative waere es wenn du mit einem Webspacebetreiber ein Abkommen triffst dass du dein Spiel auf den Webservern betreiben darfst...
 
Hm also für das Spiel wie es entworfen ist, sind die großen Mengne schon erforderlich. Ich könnte natürlich bei jedem Aufruf einen kleinen Teil machen lassen aber ich dachte es wäre klüger alles auf einen Schlag zu machen, da es die Aufrufe für die User schneller macht und es beim Cronjob fast egal ist wie lange er braucht :D
 
Ich meinte eher den Cronjob durch eine Echtzeit-Analyse bei Bedarf (anacronistisch) mittels Socket-Server ersetzen :)
Dieser koennte auch die aktuell benutzten Teile in der RAM vorhalten und weniger aber dennoch rege abgefragte Teile an memcached auslagern, was die SQL-Abfragen bedeutend druecken sollte.
Ich kenne dein Browserspiel nicht, weiss also nicht was berechnet wird aber meistens sind es doch Events wie "Flotte C kommt um xx:yy auf Planet Z an" oder "Der Mais ist um xx:yy ausgewachsen"?

Allerdings waere dazu eine komplette Umprogrammierung des Backend notwendig :D
Aber nur als kleine Frage - warum wird staendig immer alles mittels Cronjob geloest statt mit Daemons, Signals und Unix-Sockets?
Dass es im Webspace-Bereich so geloest wird versteh ich ja weil Background-Prozesse schlecht moeglich sind aber in solchen Bereichen?
*Confused*
 
Last edited by a moderator:
"Aber nur als kleine Frage - warum wird staendig immer alles mittels Cronjob geloest statt mit Daemons, Signals und Unix-Sockets?"

das ist leicht erklärt: ich hab keine Ahnung davon, bzw weiss nichtmals was das ist :D

könnt ihr mir denn einen günstigen Rootserver empfehlen? Mit möglichst geringer Mindestvertragslaufzeit - ideal 1 Monat - .... hab 1&1 jetzt 50€ in den Rachen geworfen dafür dass ich den **** nicht einmal nutzen werde in den 3 Monaten.
Da das Spiel so gut wie keine Einnahmen abwirft kann bzw will ich mir keinen Server für 100€ im Monat mieten.
 
Ok ich bin sehr ungeduldig und da mich der aktuelle Hoster rauswerfen will weil ich die andern Seiten auf dem Server runterziehe, hab ich nun einen Rootserver bestellt :D Falls der auch zusammenbrechen sollte melde ich mich wieder :rolleyes:
 
MySQL mit nur einer Session und so einer Auslastung deutet für mich eher auf fehlende Indizes, schlechte Abfragen oder ein ungeeignetes Datenmodell...
 
Back
Top