Anzeigenaktualisierung bricht ab

  • Betroffene Version
    WoltLab Suite 5.4
    Betroffene App
    WoltLab Suite Core

    Mir ist bewusst, dass hier ein gewisser Teil der Server-Konfiguration eine Rolle spielt, aber langsam macht sich auch die Verzweiflung breit. Ich versuche seit drei Tagen, rund 4.5 Millionen Reaktionen verarbeiten zu lassen (Anzeigen aktualisieren), allerdings komme ich irgendwann an den Punkt, wo das Ganze so lange dauert, dass der komplette Prozess abbricht:

    Das ist das aktuellste Problem. Dazu sei gesagt, dass in den vergangenen Tagen diverse Konfigurationsmöglichkeiten getestet habe, um Probleme während der Ausführung des Workers zu vermeiden, was offensichtlich nichts gebracht hat:

    Code
    innodb_lock_wait_timeout       = 30
    innodb_deadlock_detect         = off
    innodb_flush_log_at_trx_commit = 2

    Ich hatte nun auch einen Blick in das mysql-slow-Log geworfen und das gefunden:

    Code
    # Time: 2022-02-08T00:00:54.334577Z
    # User@Host: user @ localhost []  Id: 87699
    # Query_time: 30.015425  Lock_time: 30.013804 Rows_sent: 0  Rows_examined: 0
    SET timestamp=1644278424;
    INSERT INTO             wcf1_user_activity_point
                                            (userID, objectTypeID, activityPoints, items)
                    VALUES                  ('52103', '50', '2', '2'),('72115', '50', '1', '1'),('74379', '50', '12', '12'),('37148', '50', '9', '9'),('76290', '50', '25', '25'),('76786', '50', '2', '2'),('15163', '50', '7', '7'),('87394', '50', '3', '3'),('82404', '50', '5', '5'),('88489', '50', '10', '10'),('79115', '50', '2', '2'),('32611', '50', '2', '2'),('88899', '50', '4', '4'),('84154', '50', '1', '1'),('84128', '50', '12', '12'),('89531', '50', '5', '5'),('11343', '50', '1', '1'),('34882', '50', '1', '1'),('89048', '50', '8', '8'),('72352', '50', '4', '4'),('49806', '50', '1', '1'),('28633', '50', '6', '6'),('33091', '50', '1', '1'),('67502', '50', '1', '1'),('19653', '50', '1', '1'),('89526', '50', '10', '10'),('20165', '50', '13', '13'),('57165', '50', '1', '1'),('87082', '50', '4', '4'),('61450', '50', '3', '3'),('61034', '50', '1', '1'),('75916', '50', '1', '1'),('84917', '50', '1', '1'),('13980', '50', '15', '15'),('52350', '50', '1', '1'),('67746', '50', '1', '1'),('78559', '50', '1', '1'),('85237', '50', '3', '3'),('50369', '50', '3', '3'),('84612', '50', '16', '16'),('89990', '50', '1', '1'),('68932', '50', '12', '12'),('79746', '50', '8', '8'),('43895', '50', '3', '3'),('84847', '50', '33', '33'),('72846', '50', '2', '2'),('88931', '50', '5', '5'),('82910', '50', '2', '2'),('47427', '50', '2', '2'),('90076', '50', '46', '46'),('19459', '50', '2', '2'),('49887', '50', '1', '1'),('41565', '50', '8', '8'),('74934', '50', '15', '15'),('29672', '50', '40', '40'),('32362', '50', '5', '5'),('78474', '50', '1', '1'),('87103', '50', '3', '3'),('17156', '50', '2', '2'),('79292', '50', '1', '1'),('53300', '50', '4', '4'),('8990', '50', '22', '22'),('76085', '50', '8', '8'),('37265', '50', '3', '3'),('85731', '50', '4', '4'),('85683', '50', '2', '2'),('79813', '50', '3', '3'),('62382', '50', '5', '5'),('52824', '50', '2', '2'),('82671', '50', '2', '2'),('54937', '50', '1', '1'),('17376', '50', '8', '8'),('47044', '50', '5', '5'),('33814', '50', '1', '1'),('63825', '50', '2', '2'),('11645', '50', '3', '3'),('19125', '50', '1', '1'),('79730', '50', '6', '6'),('79136', '50', '2', '2'),('70926', '50', '4', '4'),('85311', '50', '24', '24'),('17481', '50', '5', '5'),('44025', '50', '1', '1'),('62333', '50', '7', '7'),('74132', '50', '43', '43'),('74253', '50', '14', '14'),('62546', '50', '1', '1'),('54176', '50', '3', '3'),('86913', '50', '8', '8'),('87881', '50', '3', '3'),('58391', '50', '1', '1'),('7266', '50', '6', '6'),('36316', '50', '2', '2'),('79005', '50', '1', '1'),('41354', '50', '2', '2'),('10595', '50', '2', '2'),('79105', '50', '4', '4'),('87612', '50', '1', '1'),('69452', '50', '1', '1'),('46781', '50', '1', '1'),('42728', '50', '5', '5'),('69112', '50', '12', '12'),('54816', '50', '1', '1'),('89617', '50', '2', '2'),('5072', '50', '11', '11'),('86464', '50', '3', '3'),('64654', '50', '1', '1'),('84071', '50', '2', '2'),('37441', '50', '13', '13'),('87519', '50', '2', '2'),('29465', '50', '3', '3'),('88547', '50', '4', '4'),('44583', '50', '4', '4'),('89052', '50', '1', '1'),('37167', '50', '1', '1'),('59411', '50', '1', '1'),('46229', '50', '1', '1'),('57724', '50', '2', '2'),('57760', '50', '2', '2'),('87565', '50', '1', '1'),('79924', '50', '24', '24'),('60628', '50', '7', '7'),('66171', '50', '1', '1'),('61660', '50', '1', '1'),('57837', '50', '3', '3'),('89967', '50', '1', '1'),('85410', '50', '1', '1'),('34260', '50', '1', '1'),('3465', '50', '5', '5'),('5461', '50', '3', '3'),('59166', '50', '1', '1'),('42869', '50', '5', '5'),('28975', '50', '1', '1'),('80622', '50', '1', '1'),('70976', '50', '11', '11'),('64734', '50', '3', '3'),('45414', '50', '1', '1'),('29316', '50', '6', '6'),('13747', '50', '1', '1'),('63318', '50', '1', '1'),('84274', '50', '1', '1'),('76063', '50', '12', '12'),('77537', '50', '1', '1')
                    ON DUPLICATE KEY UPDATE activityPoints = activityPoints + VALUES(activityPoints),
                                            items = items + VALUES(items);

    Ein paar ms vorher wurde das protokolliert:

    Code
    # Time: 2022-02-08T00:00:54.334420Z
    # User@Host: user @ localhost []  Id: 104253
    # Query_time: 30.122668  Lock_time: 30.012719 Rows_sent: 0  Rows_examined: 30133
    use db;
    SET timestamp=1644278424;
    UPDATE    wcf1_user
                    SET        uzbotDisabled = '0'
                    WHERE    activationCode = '0' AND uzbotDisabled > '0' -- '/index.php?ajax-proxy/&t=5b5873f6502e444a377c2d83b3ba8fd437b425398d1e15f6c67644000c04dcc7- (wcf\\data\\cronjob\\CronjobAction:executeCronjobs)';

    ---

    Ist davon auszugehen, dass mir hier ständig Cronjobs dazwischen funken? Denn dann würde ich einfach mal sämtliche Cronjobs bis zum Abschluss des Prozesses deaktivieren. Was ich jedenfalls nicht machen kann/darf ist, den Wartungsmodus für 8+ Stunden zu aktivieren. Alle Sessions zu beenden und den Login zu deaktivieren ist das Höchste der Gefühle.

    • Offizieller Beitrag

    Hallo,

    Ist davon auszugehen, dass mir hier ständig Cronjobs dazwischen funken?

    Nein.

    Was ich jedenfalls nicht machen kann/darf ist, den Wartungsmodus für 8+ Stunden zu aktivieren.

    Das ist aber notwendig, weil deine Aktivitätspunkte-Tabelle durch das Aktualisieren der Anzeigen ohnehin schon „hot“ ist und die normale Benutzeraktivität vermutlich dazu führt, dass die Locks darin highly contended sind – mit entsprechendem Resultat. Nimm die Seite halt während der Nacht offline, da schlafen die Nutzer dann eh.

  • Tim Düsterhus 8. Februar 2022 um 15:09

    Hat das Label Ist kein Fehler hinzugefügt.
  • Das Reaktions-System scheint mir im Ganzen sehr träge zu sein.

    less
    16. Dezember 2020 um 23:30

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!