vServer Overload

  • Hallo!


    Urplötzlich verhält sich seit heute mein vServer ungewöhnlich. Es kommt zu einem extremen Overload. netcup schiebt es auf mich.


    Offen gesagt, weiß ich nicht so recht wie ich dieses Problem angehen soll. Der Server läßt sich in normalem Zustand nicht mehr bedienen. Ich kann ihn nur im Rettungsmodus ansprechen.


    Was kann ich tun?


    Habe mir die Systemlogs angeschaut, habe dort jedoch nichts ungewöhnliches gefunden.


    Ich bin so verwundert, denn der Server lief wochenlang einwandfrei.


    Könntet Ihr mir bitte ein paar Tipps geben?


    Vielen Dank im Voraus!

  • Wie sieht die Auslastung denn genau aus, wenn das Problem auftritt? Load? ps, free Ausgabe? Ohne diese Angaben wird es schwierig.



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Hallo Christian,


    ps zeigt nur folgendes an:


    Code
    PID TTY      	TIME CMD
    12385 pts/2	00:00:00 bash
    12418 pts/2	00:00:00 ps


    free gibt folgende Auskunft:

    Code
    total   	used   	free 	shared	buffers 	cached
    Mem:    	524288 	478612  	45676      	0      	0   	4020
    -/+ buffers/cache: 	474592  	49696
    Swap:   	524288      	0 	524288


    Die Load-Werte nach wenigen Sekunden können dem Anhang entnommen werden...


    Was kann ich tun?

  • Hast du mal per Rettungssystem alles aus dem Autostart genommen, alle Ports geschlossen (bis auf SSH) und dann hochgefahren? Ist es dann besser? Wenn ja: dann mal die Dienste nacheinander starten und gucken ab wann es Probleme gibt. Wenn nein: sicher alles aus dem Autostart raus?

  • Nach dem ich ALLES rausgenommen habe, wollte der Server gar nicht mehr starten...


    Ich habe folgende Dienste drin:


    README hdparm mtab.sh saned
    apache2 hostname.sh mysql saslauthd
    bootlogd hwclock.sh mysql-ndb sendsigs
    bootlogs hwclockfirst.sh mysql-ndb-mgm single
    bootmisc.sh ifupdown networking skeleton
    checkfs.sh ifupdown-clean nscd spampd
    checkroot.sh kdm ntp sqwebmail
    courier-authdaemon killprocs openbsd-inetd ssh
    courier-imap klogd pdns stop-bootlogd
    courier-imap-ssl libdevmapper1.02 portmap stop-bootlogd-single
    courier-pop lisa postfix sudo
    courier-pop-ssl lm-sensors pppd-dns sysklogd
    cron memcached procps umountfs
    cups module-init-tools proftpd umountnfs.sh
    dbus mountall-bootclean.sh rc umountroot
    dirmngr mountall.sh rc.local urandom
    dkim-filter mountdevsubfs.sh rcS x11-common
    dovecot mountkernfs.sh reboot xinetd
    fam mountnfs-bootclean.sh rmnologin
    fancontrol mountnfs.sh rsync
    halt mountoverflowtmp rsyslog


    Was muss drin bleiben?

  • Hallo noch einmal,


    ich habe offensichtlich ein Problem mit mysql. Apache ist auch nicht ohne.


    Ich habe nun den Server im Normalmodus gestartet und schnell mysql beendet. Das Problem scheint beseitigt zu sein. Apache beendet. Noch besser.


    Was kann ich nun tun?


    Bitte helft mir! Danke!

  • Danke schön fnkr, ich werde es sofort umsetzen und berichten!


    Kann ich die Datenbanken einfach sichern in dem ich das Verzeichnis /var/lib/mysql sichere? Oder soll ich auf Tools wie MySQLDumper zurückgreifen?


    Nochmals vielen Dank für die schnelle Hilfe!

  • Die Aufgabenstellung war klar:

    - MySQL-Datenbanken Backupen
    - aptitude purge mysql
    - aptitude install mysql
    - MySQL neu konfigurieren / Datenbanken wiederherstellen

    Die Daten habe ich gesichert.


    Die Deinstallation von mysql klappt jedoch nicht:

    Das Entfernen von mysql-server und mysql-common hat auch nichts gebracht. Sprich die Datenbanken und Einstellung wurden nicht entfernt.


    Bei einer Neuinstallation wird man nach nichts gefragt.


    Der Overload muss jedoch wirklich mit mysql zusammenhängen. Denn so bald ich apache2 dazu schalte, kommt es sofort zum Mega-Overload. Wenn ich apache2 ohne mysql laufen lasse, ist alles in Ordnung. Allerdings ist es auch kein Problem mysql ohne apache2 laufen zu lassen.


    Ich habe mysqlcheck -A -r laufen lassen und bei einigen Tabellen hiess es dann

    Zitat

    note : The storage engine for the table doesn't support repair

    Diese Tabellen habe ich gelöscht (aus dem Verzeichnis /var/lib/mysql/ entfernt). Dies hat jedoch das Problem nicht gelöst.


    Weiß jemand von Euch wie man mysql komplett deinstalliert bekommt?


    Oder soll ich das Problem etwa anders angehen?


    Vielen Dank für Eure Hinweise!

  • Denn so bald ich apache2 dazu schalte, kommt es sofort zum Mega-Overload. Wenn ich apache2 ohne mysql laufen lasse, ist alles in Ordnung. Allerdings ist es auch kein Problem mysql ohne apache2 laufen zu lassen.


    Wenn die Websites keine Datenbank erreichen können, wird die Ausführung der Scripts auch sofort beendet -> keine Auslastung. Ich würde einmal im Access-Log schauen, welche Anfragen zu dieser Zeit herein kommen. Falls du FCGI verwendest, kannst du es noch gezielter eingrenzen. Danach sperre einmal den HTTP/HTTPS Port (außer für deine IP) mit der Firewall, löse die entsprechenden Anfragen zum Test selbst aus und beobachte alles.


    Zum Thema MySQL: /var/lib/mysql wird leider nicht automatisch neu angelegt, das müsstest du dir selbst aus dem Paket extrahieren. (apt-get download und danach mit ar/tar weiter arbeiten)



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Oder einfach einen dpkg-reconfigure für den mysql server machen.


    Letztes Jahr wurden da keine Datenbank-Dateien neu angelegt. Hat sich das geändert?



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • @sim
    Vielen Dank für Deine perfekte Anleitung! Es hat wunderbar funktioniert.


    Nach Neuinstallation von mysql lief mein Server wieder einwandfrei.


    Als bald ich es jedoch apache2 ermöglichte auf eine bestimmte wiederhergestellte Datenbank zuzugreifen kam es sofort zu heftigem Overload. Der Fehler lag an dieser Datenbank, einige Tabellen hatten Überhänge und waren mehr als 1 GB groß. Ich konnte auf sie verzichten, habe die Daten gelöscht, so waren die Überhänge weg und nun funktioniert alles wieder.


    Kann man Überhänge los werden, ohne eine Tabelle leeren zu müssen?


    Vielen Dank für Eure Hilfe!!!!