• Willkommen im Forum „Tintenzirkel - das Fantasyautor:innenforum“.
 

Hilfe! Was legt unser Forum lahm?

Begonnen von Maja, 02. November 2016, 18:25:37

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

Maja

#15
Okay, ich nochmal. Ich habe einen Verdacht. Ich habe mir gerade die Statstiken der letzten Woche rausgesucht. Alle CPU-Verbräuche schnellen  ab Freitag, dem Tag nach Abschluss der Wartungsarbeiten, in die Höhe:

- Verbrauch durch MySWL
- Verbrauch durch Apache
- Verbrauch durch Emails

Jeweils bei gleichbleibendem RAM-Verbrauch. Alle diese Werte sind Prozentangaben. Was ist, wenn sich die absoluten Werte nicht verändert haben, aber die Gesamtmenge der zur Verfügnug stehenden CPU sich plötzlich reduziert hat? Woran sehe ich, wie viel CPU meinem virtuellen Server tatsächlich zur Verfügung steht (Anzahl der Kerne, Taktfrequenz)?
Niemand hantiert gern ungesichert mit kritischen Massen.
Robert Gernhardt

RockSheep

@Maja: Ich geb das gern weiter an @Umizu, die den Space eigentlich von mir übernommen hat für die Vereinswebseite. Aber soviel ich weiss, sind wir inzwischen umgezogen, also könnte das dort eigentlich weg. Ich schreib sie mal an.

Ansonsten kommt mir bezüglich dem Problem auch nicht mehr in den Sinn, als schon gesagt wurde. :/

Tigermöhre

Ich hatte meinen Mann auch nochmal gefragt, und falls es doch weitere Ausfälle gibt, hätte er noch ein paar Ideen.
Deshalb überlasse ich ihm mal das Wort:
Hallo Maja ;D
ich bin zwar kein Datenbank-Admin, habe aber ein bisschen Erfahrung mit MySQL. Eigentlich scheue ich solche Ferndiagnosen wie der Teufel das Weihwasser.
In deinen Postings habe ich bisher nichts gelesen davon, dass du die Datenbank auf langsam bzw. sehr lang laufende Abfragen gecheckt hast (Stichwort: slow queries). Solche Abfragen können die DB eine Weile auslasten und lange Antwortzeiten verursachen.
Sofern du die Datenbank nicht sowieso schon daraufhin untersucht hast, würde ich mir die mal ansehen und erst dann Vermutungen über eventuell fehlende Indices anstellen. Neben den Möglichkeiten, die MySQL m.W. selbst bereitstellt, gibt es sonst noch das Programm innotop, mit dem man sich slow queries auflisten lassen kann, ähnlich wie man sich mit top die Prozesse auflisten lassen kann.
Der Nachteil daran ist allerdings, dass man das Loggen der Slow Queries erst einschalten muss und die Logs demzufolge erst ab dem Zeitpunkt erst zur Verfügung hat (nützt also erst etwas, wenn so etwas erneut auftritt).

Wegen des Verbrauchs durch E-Mails: Sofern der Mail-Server eine Verbindung zu derselben Datenbank braucht (z.B. für Anmeldedaten), kann das ebenfalls da mit reinspielen.

cryphos

@Maja wegen des Seitenausfalls.

Wenn ich es aus den Grafiken richtig herausgelesen habe geht zuerst die SQL-Auslastung hoch und kurz danach Webseite unter Apache in die Knie. Wenn ich damit recht habe ist zu 90% die Ursache auf der SQL Basis zu suchen.

Grund dafür ist, dass es zu viele, zu komplexe oder zu unstrukturierte Anfragen an die Datenbank gibt. Dadurch werden dann Ressourcen an lange abfragen oder große Ergebnismengen gebunden. SQL frisst also immer mehr Speicher und CPU-Leistung - Die Seite wird langsamer. Dann ist die Datenbanbk fertig und übergibt die Daten an den Apache zur Weiterverarbeitung und dann ist der Apache überlastet und das Forum geht in die Knie bis Apache alles verarbeitet hat und dann geht wieder alles.

Ich kenne dieses Szenario all zu gut aus meiner Arbeit mit Datenbanken und schlecht ausgebildeten Informatikern, welche auf meine Datenbanken losgelassen wurden und die Parallelen sind frappierend.

Für mich sieht das deshalb nach unautorisierten Zugriffe über Apache auf die Datenbank aus oder nach sehr schlechtem Code. Da ich dafür aber kein Experte bin denke ich Rocketsheep könnte dir da evtl. besser weiter helfen. Evtl. bereit auch jemand Daten für eine andere Anwendung/Auswertung auf und produziert damit ungewollt zu hohe Last? Auch das ist passiert als schlecht ausgebildete Informatiker meine AS2 für den Shareppoint ausquetschen wollten und mit der DB2 nicht zurecht kamen...


Maja

#19
@cryphos
Wenn es nur unautorisierte Zugriffe auf die Datenbank wären, hätte sich nicht auch der CPU-Verbrauch durch den Mailserver vervielfacht. Außerdem müsste sich das auch in einem insgesamt gestiegenen RAM-Verbrauch niederschlagen, weil diese Zugriffe RAM kosten.

Das von dir geschilderte Szenario passt mE auch nicht zum Verhalten des Forums, das nicht peu à peu langsamer wird, sondern eine Viertelstunde völlig normal läuft, um  dann schlagartig wegzuknacken - und dann auf einen Schlag wieder da zu sein, als wäre nichts gewesen.

Ich habe diverse Datenbanken auf meinem Server, die einzige von nennenswerter Größe ist der Tintenzirkel. Woran sehe ich, ob ein Script von außen versucht, auf meine Datenbanken zuzugreifen?
Niemand hantiert gern ungesichert mit kritischen Massen.
Robert Gernhardt

cryphos

Zitat von: Maja am 02. November 2016, 20:43:34
Ich habe diverse Datenbanken auf meinem Server, die einzige von nennenswerter Größe ist der Tintenzirkel. Woran sehe ich, ob ein Script von außen versucht, auf meine Datenbanken zuzugreifen?
Rocketsheep ist da besser geeignet als ich, bei Intrusion dedection bin ich echt nur ein Laie. Ich kann dir nur sagen was ich machen würde. das wäre die Datenbank beobachten und alle Anfragen protokollieren lassen. Dann würde ich die raus suchen die besonders lange dauern oder besonders große Speicherlast erzeugen. Habe ich da ein paar Kandidaten ausgemacht würde ich zum einen prüfen wer stellt diese Anfragen und zum anderen welche Tabellen werden abgefragt.
Dann würde ich die abgefragten Tabellen unter Audit stellen um genau zu ermitteln wer da wann was wie abfragt und ich würde prüfen unter welchen Umständen der anfragende User diese Mörderanfragen stellt. Ist der User dir unbekannt, dann ist es wohl sicher ein Externer. ist dir der User bekannt und z.B. dein Standarduser für Datenbankanfragen, dann wird es kniffliger. Dann musst du prüfen unter welchen Umständen die Anfragen erstellt wurden. dazu musst du dann die Apache Protokolle via Zeitstempel mit den SQL Protokollen abgleichen. Ich musste das zwei mal im leben manuell durchführen und bin nicht Firm darin. Sicher gibt es da bessere Lösungen als alles manuell durchzugehen. Aber wie gesagt, Rocketsheep müsste sich da wesentlich besser als ich auskennen.

Maja

Zum Vergleich: Dies ist die CPU-Auslastung durch meinen Mailserver von letztem Dienstag bis heute. Das absolute Mailaufkommen hat sich nicht verändert in der Zeit, und ich denke nicht, dass Anfragen an meine MySQL-Datenbanken einen Einfluss auf den CPU-Verbrauch durch den Mailserver haben dürften, und umgekehrt. Deswegen vermute ich wirklich einen Rückgang der absoluten CPU-Leistung.

Diesen Verdacht habe ich jetzt auch (mit den Graphiken zur Illustration) an den HE-Kundendienst weitergeleitet.

[Dateianhang durch Administrator gelöscht]
Niemand hantiert gern ungesichert mit kritischen Massen.
Robert Gernhardt

Eluin

@Maja in den Logfiles steht nichts auffälliges. Aber im Moment scheint es wieder ganz gut zu laufen?  :hmmm: Ich habe in der letzten Zeit keine Ausfälle mehr bemerkt.
Träume verändern die Zukunft. Doch erst wenn wir die Augen öffnen, können wir sie verwirklichen!
Mein Spruch, mein Motto.

Maja

#23
Es läuft im Moment rund, aber die CPU-Auslastung des Servers ist immer noch insgesamt deutlich höher als sonst. Üblicherweise lag unsere CPU-Usage immer im 10%-Bereich, jetzt dümpelt sie bei 40-50% rum. Ich hoffe, der Kundendienst kann meinen Ausführungen folgen - nach den Graphiken, die ich eingereicht habe, sollte das Problem jetzt zumindest nachvollziehbar sein.

Gerade ist z.B. MySQL niedrig, aber der Apache krallt sich 40% - das ist also nicht so, dass erst MySQL hochgeht und dann der Apache nachzieht, der macht das gerade von sich aus.
Niemand hantiert gern ungesichert mit kritischen Massen.
Robert Gernhardt

cryphos

@Maja Nutzt du Joomla für irgendeine deiner Seiten?
Wenn ja, angeblich werden gerade massive Attacken auf unsichere Joomlaversionen gefahren und es wird deshalb geraten das neuste Update aufzuspielen, dass die dafür verantwortlichen Lücken schließt.

Maja

Zitat von: cryphos am 02. November 2016, 21:28:38
@Maja Nutzt du Joomla für irgendeine deiner Seiten?
Wenn ja, angeblich werden gerade massive Attacken auf unsichere Joomlaversionen gefahren und es wird deshalb geraten das neuste Update aufzuspielen, dass die dafür verantwortlichen Lücken schließt.
Nein, meine Webseiten sind alle handgeschrieben, als Forensoftware nutze ich Serendipity, und das Forum läuft auf SMF. Die Tintenzirkler, die ihren Webspace über mich laufen lassen, benutzen Wordpress und Drupal.
Niemand hantiert gern ungesichert mit kritischen Massen.
Robert Gernhardt

zDatze

Hallo Maja!
Wenn du wissen willst, ob von außerhalb mehr Zugriffe kommen als sonst, dann müsstest du eigentlich eine passende Statistik über phpMyAdmin (oder welches Administrationstool du auch immer verwendest) abrufen können. So etwas wie "Top Zugriffe auf URLs" und auch von welcher Location diese gemacht wurden. Nur für den Fall, dass du einen Angriff von außen noch für eine Möglichkeit hältst.

Ansonsten ist mir aufgefallen, dass zeitweise die NaNo-Counter in den Signaturen sehr lange zum Laden brauchen. Teils pro Counter 700ms bis 1sek. Hab das mit Firefox im Entwicklertool unter Netzwerk beobachtet, konnte es aber in den letzten 10 Minuten nicht mehr rekonstruieren. Wie genau funktioniert denn das mit dem Countern? Werden da Daten in einem bestimmten Intervall abgefragt und die restliche Zeit über gechached?

Sprotte

Nur noch mal eine Wasserstandsmeldung: Seitdem Du das Forum aus dem Wartungsmodus zurückgeholt hast, hatte ich keine ungewöhnlichen Ladezeiten mehr.

Maja

Da ich vermutlich wieder bis in die Frühe auf sein werde und dann entsprechend morgen den halben Tag verschlafen: Wenn ihr seht, dass das Forum wieder rumschneckt, und ich bin nicht online, seid ihr so lieb und meldet es hier? Danke!
Niemand hantiert gern ungesichert mit kritischen Massen.
Robert Gernhardt

Volker

Ganz simple Frage: passen CPU-Verbrauche mit Anzahl der Seitenabrufe pro Zeiteinheit zusammen?  Was wurde gerade aufgerufen, wenn es hakt? Suchen kosten mehr als einfache Anfragen.  Unseren kleinen Filkshop hat mal Google geDDoSt - da hatten wir eine Spiertrap gebaut, auf die Google immer mehr Bot losließ, weil die von diesen gesehene Seitentiefe so riesig war. Oder die andere Truppe, die sämtliche Podcasts auf HTML-Inhalte spiderte. Die MP3 und MP4 Dateien wohlgemerkt...

Was sind die /usr/sbin/.... Prozesse, die durch den Nutzer www-data laufen? Da hängt da eine ganze Menge dieser Prozesse in Deinem ersten Post.  Und wenn die i/o-Ressourcen binden (beispielsweise das Dateisystem blockieren), dann hängen auch alle anderen Prozesse.

Hinsichtlich MySQL kannst Du ja mal schauen, wie die Parametrisierung ist. Da gibt es immer wieder mal Optimierungspotential.
https://bugs.launchpad.net/mysql-tuning-primer

Schick' mir mal Apache-Zugriffs-Logs, die /etc/mysqld/my.cnf und /var/log/mysql* zu  (Mailadresse ist ja bekannt).

Die "Output Compression" ist zwar sinnvoll weil sie Netzkapazität schont, kostet aber ein wenig mehr an CPU. Dürfte aber nichts am aktuellen Problem änden.

Du bist auf einem virtuellen Server (HostEurope macht ja nur noch solche)? Da bin ich auch immer wieder gebissen worden. Für alles, von dem ich irgendwie abhänge, will ich inzwischen eigene Physik haben. Denn wenn "der Nachbar" ein i/o- oder CPU-Problem hat, dann knirscht's auch bei mir, ohne dass ich genauer sehen kann, was kaputt ist, und ohne dass ich da etwas 'dran ändern kann. Auf der Physik habe ich dann eigene VMs - aber da kann ich dann je sehen, welche gerade was macht (und das dann auch abstellen).


Wie stellst Du anderen Webspace zur Verfügung? Da kann dann auch mal 'was querschießen (meist unbeabsichtigt). Wenn sich da beispielsweise Backup-MySQLdumps zu überholen versuchen...