Skip to main content


!Friendica Support

Mittlerweile habe ich รผber 50.000 Worker in der Warteschlange. Und sie werden mehr.

Das Laden der Bilder ist nach wie vor schnarchlangsam.
Hab das Filesystembackend von einem per sshfs gemounteten Datentrรคger auch ein schnelles Volume bei Hetzner gewechselt. Keine ร„nderung.

Meine Datenbank ist 19GB groรŸ und das Filesystembackend ebenfalls.

Ich hab eingestellt, dass alte Beitrรคge gelรถscht und Avatare gecached werden.

Es macht mich noch wahnsinnig, dass friendica so derartig langsam geworden ist.

Bin auf 2022-12-rc
Du kรถnntest das Cachen von Avataren deaktivieren, ggf. bringt das etwas.
Da bin ich schon durch... hat auch keinerlei verbesserung gebracht.
@Jakob :friendica: ๐Ÿ‡ฆ๐Ÿ‡น โœ… die Worker laufen aber ganz normal? Irgendwelche Hinweise in den Logs, dass was schief lรคuft? Normal ist das nicht.
Mit der aktuellen RC flutscht hier Friendica so schnell wie nie.
Ich hab den Workerdaemon.

Wurde da was geรคndert? Muss ich den irgendwie anders aufrufen?
Und kann ich die worker irgendwie anders als mit ps checken?
@Jakob :friendica: ๐Ÿ‡ฆ๐Ÿ‡น โœ… ist immer noch der Workerdaemon. Auf jeden Fall auch bei mir. Aber der scheint irgendwie seine Arbeit nicht zu machen. Sind eventuell irgendwelche Hinweise in den Logs?
Worauf muss ich achten?
Wie hoch soll ich das Log drehen?
@Jakob :friendica: ๐Ÿ‡ฆ๐Ÿ‡น โœ… achte auf Fehler und Warnungen die dort aufgefรผhrt werden und versuche zu verstehen, ob die mit den Workern in Zusammenhang stehen kรถnnten oder nicht. Wenn ja, dann gehe der Sache nach.
Alles รผber 3 Meter ist sinnlos und dann nur mit Doppelknoten ๐Ÿ˜€

Leider ist die Einteilung der Log Level nicht erklรคrt bzw ich finde keine dazu. Und sie ist auch nicht logisch aufeinander aufbauend, soweit ich mich erinnere.
Da mรผsste ein Developer mal ein paar Sรคtze zu verlieren, wie das zu verstehen ist. ๐Ÿ™

Ich wรผrde mal mit Debug anfangen und mich durch die Log Level durcharbeiten.
@hoergen@Jakob :friendica: ๐Ÿ‡ฆ๐Ÿ‡น โœ… Ich glaube
DEBUG = loggt alles
INFO: alles ab Info oder wichtiger
NOTICE: alles auรŸer INFO und DEBUG
WARNING: alles auรŸer NOTICE, INFO, DEBUG
ERROR: nur ERROR Fehler

Die Logfiles geben รผberhaupt nix her, was auf eine Fehlfunktion schlieรŸen lieรŸe...
Es werden Avatare geholt, Profildaten abgerufen usw.
Selbst die load ist sehr รผberschaubar, wie auch die RAM-Auslastung

Ab und zu ist ein Worker dabei, der "keine Netzwerkverbindung" meldet. Gehe ich dann auf den angemoserten Link, ist die dortige Website down oder das Zertifikat abgelaufen (ich nehme an, diese Worker gehen dann in die verzรถgerten Worker).

Es dauert auch die Suche und das Posten eines neuen Beitrages mittlerweile ewig lange... und Worker hab ich mittlerweile รผber 60.000 in der Warteschlange (nicht die Verzรถgerten!!!)

@Jakob :friendica: ๐Ÿ‡ฆ๐Ÿ‡น โœ… hmm also, wenn sich dein System langweilt, die Worker "laufen", aber die Warteschlange immer grรถรŸer wird, dann laufen deine Worker nicht (ordentlich).

Hast du mal versucht testweise den daemon.php im Terminal manuell zu starten?
Oder manuell die bin/worker.php ?
Kommt da was Verwertbares auf dem Terminal raus? Oder reduziert das die Warteschlange?
@Jakob :friendica: ๐Ÿ‡ฆ๐Ÿ‡น โœ… schon klar, aber irgendwas daran scheint ja eben nicht zu laufen.
Probiere es mal manuell und schaue, ob und was passiert.
Hab jetzt
# sudo -u www-data bin/worker.php
laufen lassen... es beendete nach 6 Minuten mit Returncode 0 und ohne Output.
@๐—๐—ฎ๐—ธ๐—ผ๐—ฏ :๐—ณ๐—ฟ๐—ถ๐—ฒ๐—ป๐—ฑ๐—ถ๐—ฐ๐—ฎ: ๐Ÿ‡ฆ๐Ÿ‡น โœ…@hoergen
Hab keine Friendica-Instanz am Laufen, finde das Thema aber interessant. Kannst Du in der DB nachverfolgen, ob der Worker รผberhaupt irgendwas tut? Kann es sein, dass die Prozesse in einen Timeout laufen?
In den Logs sehe ich fleiรŸig die Worker arbeiten.

Starten, beenden, abrufe... nix auffรคlliges. Keine Timeouts oder connectionprobleme. Jene die das haben, wandern eh in die verzรถgerten...
This entry was edited (1 year ago)
@๐—๐—ฎ๐—ธ๐—ผ๐—ฏ :๐—ณ๐—ฟ๐—ถ๐—ฒ๐—ป๐—ฑ๐—ถ๐—ฐ๐—ฎ: ๐Ÿ‡ฆ๐Ÿ‡น โœ… Ok, wenn's tatsรคchlich "nur" langsam ist. ๐Ÿ˜‰ Die Klassiker hast Du ja anscheinend schon gecheckt; und so wie die Ram-Auslastung aussieht, scheint die DB gesรคttigt zu sein.
Ich habe keine Ahnung, welche Tabs/Spalten am hรคufigsten benutzt werden: Falls Du das noch nicht gemacht hast, stelle mal sicher, dass auf denen ein Index liegt.
Besteht das Prob noch (?).
in welcher Datei gehรถrt das eingetragen?
Ich habe hier die config/local.config.php im php-format...
Zuwachs an Usern?
Reicht das RAM?

Ich hab die Registrierung geschlossen. RAM und CPU sind im Langeweile-Modus...

Es wird auch offenbar einiges gearbeitet... weil das Log durchrausch mit geforkten Worker-Jobs, Contact-Updates, limit errreicht-Warnungen, APDeliverys... usw.

und die Load ist unter 1

uff ... das erinnert mich an eine schmerzliche Erfahrung mit qmail. Piece of crap ...
maxloadavg ist bei mir auf 20.
die load steigt aber nichtmal รผber 1...

und worker_queues hab ich mal auf 30 angehoben, jetzt steigt die loag ein wenig รผber 1...
und die wokerwarteschlange wรคchst und wรคchst... bin schon bei 63500
hmmm... das ist auch eine รผberlegung...
auf welchen wert hast du denn die php-fpm/php.ini max_execution_time gesetzt?
@๐—๐—ฎ๐—ธ๐—ผ๐—ฏ :๐—ณ๐—ฟ๐—ถ๐—ฒ๐—ป๐—ฑ๐—ถ๐—ฐ๐—ฎ: ๐Ÿ‡ฆ๐Ÿ‡น โœ…
Da ja hier fast schon alles abgeklopft wurde:
Vor kurzem was an der Datenbank geรคndert, oder ein update von MariaDB gemacht?
Hat das System Waitstates?
hmmm... ich hab schon mal ein apt upgrade gemacht. weiรŸ aber jetzt nicht mehr, ob da mariadb auch betroffen war.

was meinst du mit Waitstates?
@๐—๐—ฎ๐—ธ๐—ผ๐—ฏ :๐—ณ๐—ฟ๐—ถ๐—ฒ๐—ป๐—ฑ๐—ถ๐—ฐ๐—ฎ: ๐Ÿ‡ฆ๐Ÿ‡น โœ…

Das System kann durchaus rumidlen, aber dennoch nicht vorwรคrtskommen, wenn es waitstates gibt. Das ist quasi das "arten auf das Dateisystem" - vereinfacht ausgedrรผckt.
Wenn du "top" ausfรผhrst, das rot eingekreiste sollte 0.0 sein.
In der Mariadb bzw Mysql-Konsole mal dieses Statement ausfรผhren:
]SELECT @@version;
Und bitte die Version mitteilen.
MariaDB [(none)]> SELECT @@version;
+---------------------------+
| @@version                 |
+---------------------------+
| 10.5.18-MariaDB-0+deb11u1 |
+---------------------------+
1 row in set (0.000 sec)


Ich hab bei top kein ws sondern wa, das hรผpft zwischen 0,1 und 2 herum.
@๐—๐—ฎ๐—ธ๐—ผ๐—ฏ :๐—ณ๐—ฟ๐—ถ๐—ฒ๐—ป๐—ฑ๐—ถ๐—ฐ๐—ฎ: ๐Ÿ‡ฆ๐Ÿ‡น โœ…
Trag dies bitte mal in deine MariaDB-Config ein:

optimizer_use_condition_selectivity = 1
optimizer_switch='rowid_filter=off'

MariaDB hat ab Version 10.4 eine ganz wirre Indexbehandlung, welche die Datenbank unendlich langsam macht.
Mit diesen Eintrรคgen verhรคlt sich MAriaDB wieder wie vor Version 10.4.
Danach muss Du MariaDB einmal bitte neu starten.
Die 0.2 wa sind zwar nicht schรถn, aber in Ordnung und nichts was das System so beeinflussen sollte.
hab ich mal gemacht.

Ich habs in die section [mariadb] in /etc/mysqld/mariadb.conf.d/50-server.conf eingetragen.
Das Ergebnis wรผrd mich interessieren - das war neben den waitstates mein Joker ๐Ÿ˜
Das sollte UNBEDINGT in die Doku!!!
Oh!

Das scheint jetzt das Laden der Bilder in der Tat massiv beschleunigt zu haben.

Aber die Worker werden nach wie vor mehr. bin schon fast bei 71000... Tendenz steigend.
Immerhin schon einmal etwas weiter ๐Ÿ˜€
Ich habe keine Ahnung ob das auch Auswirkungen auf die Worker hat, aber die allgemeine Performance von Friendica erhรถht sich ab MariaDB 10.4 dadurch enorm. ๐Ÿ˜€
Das sind die Kopfzeilen von top

top - 12:47:42 up 1 day, 6 min,  3 users,  load average: 0.46, 0.60, 0.77
Tasks: 229 total,   1 running, 228 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.8 us,  0.4 sy,  0.5 ni, 96.9 id,  0.2 wa,  0.0 hi,  0.2 si,  0.0 st
MiB Mem :   7767.0 total,    209.2 free,   3497.0 used,   4060.8 buff/cache
MiB Swap:   8192.0 total,   7880.7 free,    311.2 used.   3860.3 avail Mem 
# innotop --askpass -u root
Can't locate Term/ReadKey.pm in @INC (you may need to install the Term::ReadKey module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.1 /usr/local/share/perl/5.32.1 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl) at /usr/bin/innotop line 1413.
BEGIN failed--compilation aborted at /usr/bin/innotop line 1413.


hmmm... das mag nicht.
iotop zeigt mir schreib- und lesezugriffe in der GrรถรŸenordnung von 20. 30 KB bis 1MB pro Sekunde fรผr mariadb an...

Das ist jetzt auch nicht sooo die Menge...
# uptime 
 12:47:04 up 1 day, 6 min,  3 users,  load average: 0.74, 0.67, 0.80
Free zeigt das:

# free -h
               total        used        free      shared  buff/cache   available
Mem:           7.6Gi       3.5Gi       320Mi       129Mi       3.8Gi       3.7Gi
Swap:          8.0Gi       311Mi       7.7Gi
Ah jetzt gehts.

[RO] Dashboard (? for help)                                                                                                       localhost, 1d0h, 324.58 QPS, 101/1/95 con/run/cac thds, 10.5.18-MariaDB-0+deb11u1

Uptime  MaxSQL  ReplLag  QPS     Cxns  Run  Miss     Lock  Tbls  Repl  SQL
  1d0h                   324.58     6       1223.60     0   808           
Aber die Worker-Warteschlange wird noch immer grรถรŸer statt kleiner.
Jetzt schon >72000
Und ich hab auf die aktuelke stable gewechselt.
@7homas ๐Ÿณ๏ธโ€๐ŸŒˆ๐Ÿ––๐Ÿป Der RAM wird ja des Servers wird ja nicht wirklich beansprucht. @๐—๐—ฎ๐—ธ๐—ผ๐—ฏ :๐—ณ๐—ฟ๐—ถ๐—ฒ๐—ป๐—ฑ๐—ถ๐—ฐ๐—ฎ: ๐Ÿ‡ฆ๐Ÿ‡น โœ… hatte oben eine top-Kopfzeile gepostet, da geht es eher zart zur Sache. Entweder die DB hat nicht wirklich eine relevante GrรถรŸe, oder sie ist so konfiguriert, dass sie den RAM nicht ausnutzt.
Vllt. gibt's hier ja irgendwo einen #Admin der sich mit #MariaDB auskennt?
Das logfile rast nur so durch mit Workerprozessen.

Suche Profil, Profil gefunden, Start job, stop job, APDelivery nach AP...

Also da wird schon fest gearbeitet... wie es ausschaut.

Ich hab hier meinen Account mit knapp 1000 Followern und zwei Foren mit je ~1200 Followern. Also 3 User mit รผber 3000 Followern.

Die Maschine ist eine VM bei Hetzner mit 4 Kernen und 8GB RAM.
Drauf lรคuft auch noch eine Nextcloud, wo 2 User aktiv sind. Sprich ab und zu mal ein Foto hochladen und die Adressbรผcher und Kalender synchronisieren mit mehreren Clients. Sonst tut sich in der Nextcloud meist nicht sehr viel.

Hab schon probeweise die Nextcloud aus der nginx-Konfig rausgenommen... was die Anzahl der Worker in der Warteschlange auch nicht beeinflusst hat.
Ist es mรถglich das sich dein User discovery einfach durch das fediverse frรคst? Welche Konfiguration hast du bei User discovery? (Admin - Site - Autodiscovered Contact Directory)
Die Geschwindigkeit habe ich mittlerweile hingekriegt. Das war tatsรคchlich einem Upgrade der Mariadb geschuldet...

Die Einstellungen von https://friendica.opensocial.space/display/8ffdf77c-1663-a1a4-9de6-e64098311889 haben dann geholfen.

Aber die Worker in der Warteschlange werden mehr und mehr...
@๐—๐—ฎ๐—ธ๐—ผ๐—ฏ :๐—ณ๐—ฟ๐—ถ๐—ฒ๐—ป๐—ฑ๐—ถ๐—ฐ๐—ฎ: ๐Ÿ‡ฆ๐Ÿ‡น โœ…
Also ich hab hier die gleiche Version der Maria laufen - aber OK kaum Nutzer drauf und bisher auch nicht diese Probleme. Was geรคndert werden muss habe ich mir mal notiert, falls die Maschine auch Probleme verursacht.

Bin allerdings immer noch auf der letzten Final, da ich mit RC immer so meine "schlechten" Erfahrungen habe fรผr ein Produktivsystem
@Weltraumeindringling
@๐—๐—ฎ๐—ธ๐—ผ๐—ฏ :๐—ณ๐—ฟ๐—ถ๐—ฒ๐—ป๐—ฑ๐—ถ๐—ฐ๐—ฎ: ๐Ÿ‡ฆ๐Ÿ‡น โœ… Hab noch nie eine MariaDB in einer Hochlast-Umgebung verwendet. Aber vor recht langer Zeit mal MySQL. Dort konntest Du einstellen, weiviel RAM die DB verwendet. Wenn man das nicht anpasste, war die DB stรคndig mit angezogener Handbremse gelaufen.
Hmmm ich bin mir nicht socher ob 3 User mit rund 3000 Followern schon unter "Hochlast" fรคllt...
Fรผr MySQL / mariadb Tuning kann man auch Mal mysqltuner einsetzen. Der gibt auch direkt Empfehlungen welche variablen man anpassen sollte. Da hier aber keine Systemlast-indikatoren gezeigt wurden, glaube ich nicht das es das Problem ist
@Weltraumeindringling ich hab vorgestern mit dem mysqltuner-script zwei kleine ร„nderungen fรผr mrine Datenbank vorgeschlagen bekommen.

Sah fรผr mich wirklich nicht groรŸartig aus.

Aber seitdem werden die Worker in der Warteschlange langsam weniger statt mehr...

Bin in 36h jetzt von kanpp 80.000 schon auf 55.000 herunter gekommen.

Das seh ich als Erfolg.
apt-get install libterm-readkey-perl

Jetzt habe ich die User-discovery auf lokale Kontakte beschrรคnkt.

Und es dauerte 3 Tage, bis die Worker nunvon fast 80.000 auf 0 abgebaut wurden.

Auch die verzรถgerten Worker reduzierten sich von gestern 26.000 auf heute diesen Wert vom Screenshot.

@๐—๐—ฎ๐—ธ๐—ผ๐—ฏ :๐—ณ๐—ฟ๐—ถ๐—ฒ๐—ป๐—ฑ๐—ถ๐—ฐ๐—ฎ: ๐Ÿ‡ฆ๐Ÿ‡น โœ…
Deine Instanz ist alt (im positiven Sinne) und dementsprechend gut vernetzt.
Ich hatte einen guten VPS Server und manchmal auch 20000 Eintrรคge im Worker.
Ich habe es mit Hardware erschlagen - seit dem gib es quasi keine ausstehenden Aufgaben bzw. Worker. Alles ist immer 0 - auch beim User Discovery.
Wenn du eine gut vernetzte Instanz hast, kann es vielleicht wirklich an dem massiven Ansturm auf Mastodon bzw. Allgemein im Fediverse liegen - ist aber nur eine Vermutung ๐Ÿ˜€
โ‡ง