Friendica 2020.09 Red Hot Poker ist fertig
Und wieder gibt es ein neues Friendica Release, nämlich 2020.09 Red Hot Poker “Fackellilie". Viele der Features dieses Releases liegen unter der Haube. Friendica wird von Release zu Release immer schneller. Das kommt daher, dass der Code- und Datenbankumbau und Optimierung weiter fortschreiten. Wenn das so weiter geht müssen die Friendica Admins ihre Server downsizen. Aber mal Spaß beiseite, es ist wirklich toll, was die Entwickler wieder einmal geleistet haben. Der Server wird bei absoluter Stabilität immer schneller und verbraucht dabei immer weniger Platz.
Aber nicht nur unter der Haube hat sich etwas getan, sondern auch der Benutzer kann wieder von neuen Featuren profitieren.
So gibt es jetzt ein neues Relay Server Konzept für das Abonnieren von Hashtags. Bisher nutzte Friendica Relay Server von Diaspora. Diese sind aber abgeschaltet worden. Friendica nutzt jetzt ActivityPup (AP) konforme Relay Server und der Aufbau von sprachraumorientierten Relay Servern, also z.B. für den deutschen oder den englischen Sprachraum sind im vollen Gange.
Diese Einstellungen werden vom Friendica Knoten Betreiber/Admin getätigt auf der Kommandozeile mit dem Befehl bin/console relay add RELAYSERVER
eingestellt. Eine Übersicht von Relay Servern im Fediverse gibt es hier https://the-federation.info/activityrelay . Dazu ist es wichtig zu wissen, dass der Console Befehl eine komplette URL erwartet, wie z.B. https://relayserver.tld/actor
. Das heisst man muss händisch, die Information von the-federation vorne um das https://
und hinten um den /actor
erweitern.
Eine GUI Variante für das Adminpanel ist für das nächste Release geplant. Als Benutzer merkt man nur, dass wieder mehr Hashtag-orientierte Beiträge auf dem Knoten erscheinen.
Das Theme Frio hat jetzt weitere Styles bekommen, so dass man zwischen einem hellem, einem dunklen und einem schwarzen Style wählen kann. Innerhalb des Styles kann man auch noch die Akzentfarbe, also die Farbe, mit der Links und Überschriften angezeigt werden wählen.
Die öffentlichen Kalendereinträge sind jetzt auch als iCAL abonnierbar.
Wer noch mehr technische Details zu diesem Release nachlesen will, kann sich das CHANGELOG zum Gemüte führen https://github.com/friendica/friendica/pull/9146/files
Die offizielle Nachricht über die neue Friendica Ausgabe könnt ihr auf englisch hier nachlesen https://friendi.ca/2020/09/20/friendica-2020-09-released/
Ich will noch ein wenig zur Geschichte und ganz zum Schluss zum aktuellen Resourcenverbrauch von Friendica etwas erzählen.
Ein bisschen Geschichte
Als ich vor 4 Jahren mit meinem 2-20 User Server anfing, war einer der Gründe, warum ich mich für Friendica entschied, dass Friendica über automatisierte Löschfunktionen verfügt. So kann man relativ detailiert einstellen, wie und nach welcher Zeit welche Art von Beiträgen gelöscht werden sollen und welche nicht. Micro- oder Macroblogging ist für mich eine temporäre Sache. Wie oft liest man alte Beiträge auf diesen Netzwerken “nach"? Für mich wichtige Beiträge schreibe ich hier ins Blog, in mein Wiki, oder lokal in mein Gedankensammlungszettelkasten “Obsidian".
Anfangs war die Datenbank teilweise bis zu 8 GB groß, mittlerweile versucht sie die 2GB Grenze zu unterbieten. Im Laufe der Zeit sind viele Kontakte hinzugekommen und auch seit das Abonnieren von Hashtags hinzugekommen sind, ist die Datenbankgröße dennoch gesunken. Wobei man ehrlicherweise sagen muss, dass Friendica früher ALLES in der Datenbank gespeichert hatte. Mittlerweile wird das aufgeteilt in Datenbank und Dateisystem.
Als Friendica dann um ein Dateispeicher-Backend erweitert wurde, konnte man endlich sämtliche Bilder aus der Datenbank im Dateisystem speichern. Die Datenbank schrumpfte bei mir um die Hälfte auf 4GB und die anderen 4 GB wurden auf die Festplatte ausgelagert. Das hatte den Effekt, dass die Datenbank und dadurch auch Friendica um einiges schneller wurde und die Last (Load) auf dem System sehr viel geringer wurde. Ich behaupte jetzt einfach mal, dass auf einem 6 CPU 8GB RAM VPS Server die Load von 8-10 mittlerweile auf unter 1 gerutscht ist. aufrichtigerweise muss man sagen, dass das sicherlich nicht nur der Verdienst von Friendica selbst ist, sondern auch die Evolution von PHP 5.x auf PHP 7.x
Ein Blick in die Zukunft
Mittlerweile wird der Quellcode immer weiter optimiert und, ich nenne es mal abstrahiert. Das hat den Hintergrund, dass man in Zukunft eventuell auch andere Datenbanken we z.B. PostgressSQL benutzen kann. Dazu wurden sogenannte Datenbank Views eingeführt.
“Kurz” erklärt sind Datenbank Views in der Datenbank fest definierte Abfragen und Speichervorgänge, die sonst direkt im Quellcode definiert waren. Man kann sich das wie eine virtuelle Tabelle vorstellen. Diese zieht ihre Informationen aus den diversen Tabellen zusammen, die für die entsprechende Seite, oder Funktion im Browser gebraucht werden.
Dadurch, dass man jetzt nur noch an die Datenbank eine extrem einfache Abfrage dieser virtuellen Tabelle (View) machen muss, kann man zum einen innerhalb der Datenbank sämtliche Strukturen umbauen bzw optimieren und die View bleibt nach außen immer gleich. Das gilt auch für den schreibenden Zugriff auf die Datembank. Zum anderen muss man in anderen Datenbanksystemen wie MariaDB oder PostgreSQL die Datenbank bzw die Views nur noch anlegen. In Friendicas Konfiguration wird dann nur noch angegeben, welche Datenbank benutzt werden soll. Das ist noch Zukunft, aber die Arbeiten laufen in diese Richtung.
Ein bisschen Resourcen
Ich habe im Forum der Friendica Admins mal gebeten eine ungefähre Angabe zu machen, was sie für Hardware mit Ausstattung haben, wie viele Benutzer auf den Systemen sind und was sie für eine Auslasung haben, damit man ein wenig ein Gefühl dafür bekommt, wenn man einen eigenen Server aufsetzen möchte.
Die Datenbankgröße und Cache/Storage sind natürlich abhängig von der generellen Einstellung der Speicherdauer. Dazu kommt, dass Friendica noch eine Proxy Option besitzt, mit der externe Inhalte wie z.B. Vorschaubilder von Youtube oder anderen Quellen, die einfach nur dazu geladen werden, über den Server dazu geladen und an den Client ausgeliefert werden. Statt, dass jeder Client sich diese Daten selbst lädt. Diese Option erhöht natürlich die Privatssphäre belastet aber den Server mit Traffic und Speicherplatz.
Hier sind nun die Ergebnisse
Server 1
- VPS Server mit einigen anderen Applikationen
- 6 CPUs, 8 GB RAM
- Datenbank 2.5 GB, Cache/Storage 7 GB, kein Proxy
- 15 Accounts, Load 0.5 - 1.5
Server 2
- VPS Server, dedizierter Friendica Server
- 8 CPUs, 20 GB RAM
- Datenbank 15.5 GB, Cache/Storage 16.3 GB , kein Proxy
- 8 Accounts, Load 0.4 - 1
Server 3
- Root Server
- 6 CPUs, 16 GB RAM
- Datenbank 60 GB
- 80 Accounts, Load 0.5 - 3
Server 4
- VPS Server
- 6 CPUs, 32 GB RAM
- Datenbank 100 GB
- 1.400 Accounts, Load 1-4
Server 5
- VM / VPS
- 2 CPUs, 4 GB RAM
- Datenbank 11 GB
- 1 Account, Load 3
Server 6
- RaspberryPi 2
- 4 CPUs, 500 MB RAM
- 12 Accounts, Load 1-5
Viel Spass mit dem neuen Release 2020.09 Red Hot Poker (Fackellilien) https://de.wikipedia.org/wiki/Fackellilien
