Lallus/Laconica/Jabber-Server

lallus.netUm es auf den Punkt zu bringen, das ganze ist eine Nummer zu groß für uns. En Detail: auf dem Server läuft Apache, MySQL und Ejabberd. Die beiden ersteren halten sich in Grenzen und sind für sich genommen bei diesem Einsatz eher im Hintergrund anzzutreffen. Die Rampensau ist ganz klar Ejabberd, welcher für sich alleine schon eine Menge Speicher verbraucht und sobald dieser gefordert wird auch heftig zulangt.

Nun werden sich einige gewiß denken bei dieser kleinen Klitsche? Genau, denn der Sinn und Zweck von OpenMicroblogging ist u.a. die Interoperabilität, d.h. die Server sind dezentralisiert organisiert, tauschen sich jedoch untereinander aus. Sprich Mitteilungen müssen fortwährend ausgetauscht werden und die Frequenz ist nicht unbedingt verachtenswert über den Tag betrachtet. Jene die zudem Jabber nutzen, um die Updates zu genießen oder die eigenen Mitteilungen feilzubieten belasten den Server zusätzlich. Alleine die Interaktion von Lallus mit Ejabberd läßt diesen gewaltig schwitzen.

Unser Hoster stellte uns just 500Mb zu Verfügung — mein Dank dafür -, max. über 700Mb. Doch auch hier ließ eine Spitze schnell den Verbrauch gar über 500Mb hochschnellen und der Server selbst lahmte beinahe bis zum Stillstand — jedenfalls für ein paar Minuten.

Jabber als News-Aggregator mißbraucht hat beinahe eine ähnliche Dimension wie Filesharing mittels Tor — es ist ein Ressourcenmißbrauch. Von daher kann es auch keine Auslagerung wie gestern testweise auf jabber.org oder ähnliche Angebote geben, man würde deren Ressourcen schmarotzen und das ist einfach nicht drin. Mit get-privacy zuvor, ein profaner Jabber-Server für den gesicherten Chat, hatten wir teils 50 registrierte User und des Abends 10–20 davon zeitgleich auf dem Server, diese chatteten und gaben sich keinem News-Feuerwerk hin — die Ressourcen blieben ergo im Keller, selbst mit 50–100 Leuten gleichzeitig wäre alles noch im Rahmen geblieben. Hier jedoch ist es anders, Jabber bräuchte im Prinzip einen eigenen Server und dieser dürfte auch nicht unbedingt flügellahm sein.

Kurzum Jabber ist in dieser Form eigentlich unmöglich und ein gut ausgestatter Root-Server mit Dualcore und 2GB Speicher ist im Moment außerhalb unseres finanziellen Spektrums. Von daher sehe ich wenn überhaupt im Moment nur ein Angebot wie bisher, nur Jabber und kein Laconica-Server.

Das ist schade, es hat Spaß bereitet daran zu feilen und auch der Community etwas für lau anzubieten — aber in der Form ist es einfach nicht praktikabel umsetzbar.

Update:

Xmpp-Daemon für Laconica auf Lallus deaktiviert, Jabber selbst funktioniert jedoch weiterhin nur das dieser nicht mehr mit Laconica kommuniziert. D.h. man kann lallus.net für Jabber nutzen oder lallus.net als Microblogging-Dienst zusammen mit einer Vielzahl anderer Klienten.

, ,

15 Antworten zu “Lallus/Laconica/Jabber-Server”

  1. Markus Merz sagt:

    Mir ist immer noch nicht ganz klar geworden welche Abhängigkeiten Jabber und Laconica haben.

    Jabber kann alleine laufen und Chat ermöglichen. OK.
    Eine Laconica Server Vernetzung ist ohne Jabber nicht möglich?
    Ist Laconica alleine (evtl. dann nur stand-alone) lauffähig?

    Und wie handelt @evan mit identi.ca und den >26.000 Usern das?

    (Kommentare abonniert, weil interessant)

  2. Oliver sagt:

    Wir boten schon lange Zeit unseren eigenen Jabber-Server an, den wir auch nicht unbedingt missen möchten. Laconica benötigt Jabber als weitere Möglichkeit daran zu partizipieren — optional natürlich, aber das wir an unserem Jabber-Server ebenso hängen dürfte klar sein, oder? 😉

    Es geht letztendlich darum was mehr Sinn macht für uns.

  3. erlehmann sagt:

    Sagt mal, kann es sein, dass laconi.ca gar kein PubSub verwendet ? Zumendest fand ich in der Doku nur diesen Bot.

  4. Markus Merz sagt:

    Wenn ich das mittlerweile richtig verstanden habe, dann funktioniert das Laconica Netzwerk per API im Core.

    Das Protokoll XMPP (quasi Open Chat) ist nur eine weitere interaktive Schnittstelle, um mit Chatclients, die das XMPP/Jabber Protokoll unterstützen, an der Laconica Kommunikation teilzunehmen.

    Das Programm Twhirl z.B. benutzt nur die dokumentierten API Aufrufe.

    1. Regel der Computerei: Man merkt erst wie etwas funktioniert, wenn es nicht funktioniert :)

    PS: Um einen Kommentar zu landen muss ich immer das CoComment add-on in Firefox deaktivieren #FYI

  5. Oliver sagt:

    Ja das ist klar, wir brauchen XMPP nicht damit die Kommunikation mit Laconica per se funktioniert. Aber wir boten jetzt schon eine längere Zeit auf get-privacy einen Jabber-Server an und wollten diesen ungern in den Ruhestand schicken. Zudem sind diese Leute, die Jabber gerne nutzen, auch jene die nur allzugerne alles darüber managenen anstatt xx Clients mit sich herumzuschleppen. Da stellt sich dann natürlich die Frage was für uns wichtiger ist in diesem Fall hier.

    Aber mal davon abgesehen, auch wenn es nun bei uns nicht derart ins Gewicht fällt, Laconica alleine ist ebenso wenig ein Leichtgewicht. Die Daemonen selbst sind nicht gerade das Gelbe vom Ei, was auch Evan selbst desöfteren bestätigte und der publicqueuehandler trägt auch seinen Anteil an der CPU-Last. Als Insellösung bleibt alles mehr oder weniger im kleinen Rahmen, in puncto Interoperabilität zwischen diversen Laconica-Servern fängt aber der Spaß erst richtig an 😉

  6. Chris sagt:

    @Markus: Um nochmal das Problem ein wenig bildlich zu beschreiben: Auf dem Jabber/Xmpp-Server von uns tummelten sich zu Hochzeiten gut 200 User, davon 20–30 gleichzeitig. Die konnten reden, wie sie lustig waren. Da passierte gar nichts. Sprich — höchstens 25 «Paare» unterhielten sich.

    Mit lallus.net kommt nun ein Poweruser dazu. Ein User unterhält sich mit 5 Usern über 200 andere User. Sprich: Ich habe Dich, Evan und andere abonniert, Oliver ebenso — wenn Ihr irgendwas geschrieben hat, bekamen wir per Jabber/Xmpp jeweils darüber eine Mitteilung. Unzählige Leute reden, für jedes einzelne «Dings» bekamen mehrere User eine Mitteilung per Jabber/Xmpp. Dass diese irgendwann den Rahmen sprengen, wurde von uns klar unterschätzt.

    Wenn man zum Beispiel über wenige Tage Jabber/Xmpp nicht gestartet hat, dann seinen Client angeworfen hat, was es so, dass teilweise über 1000 Mitteilungen eintrudelten. Und das nur bei einem User.

    Dafür ist ein kleiner vServer nicht ausgelegt. Wir stehen an dem Punkt zu fragen, ob so ein kostenloses Angebot, ein kleiner Microbloggingservice für uns überhaupt Sinn macht. Unter diesen Voraussetzungen ist es schwer, verdammt schwer. Zumal das hier unsere kleine Privatveranstaltung ist.

  7. Chris sagt:

    Um es mal wirklich per Bild zu zeigen:

    Chris

    Ich mag den Client gar nicht starten… 😉

    Und nein, kein Fake. Bei den Auf und Abs hatte ich mir die letzen Tage einen temporären Account beim CCC zugelegt…

  8. erlehmann sagt:

    Aber könnte man nicht genau das per PubSub (oder der Light-Variante PeP) beheben ?

  9. Oliver sagt:

    Es ist in der Form behoben, da deaktiviert. Unter den zahllosen Klienten war es nur eine Möglichkeit unter vielen am Microblogging zu partizipieren. Insofern kein wirklicher Verlust und letztendlich — falls der Server überhaupt Bestand hat — ist das Ziel erreicht, Laconica läuft und Ejabberd.

  10. Markus Merz sagt:

    Danke an Chris und Oliver für die Erklärungen.

    Mir will immer noch nicht so ganz in den Kopf dass

    a) ein XMPP/Jabber Server so viel Ressourcen braucht. Das Protokoll sollte doch gerade für die Verarbeitung eines solchen Datenstreams optimiert sein.

    b) bei einem so ‘alten’ Serverdienst noch solche Speicherlecks enthalten sind.

    Ich kann da nur verblüfft mit dem Kopf wackeln, ähnlich wie bei den plötzlich auftauchenden WP Problemen vor ein paar Tagen.

    Nebenbei: tmpfs ist eine Superlösung, wenn man einen eigenen RAMstarken Server aufsetzt. Das bringt /tmp echt zum Fliegen.

  11. Oliver sagt:

    a) schlecht programmiert, zudem hat Evan selbst herbe Probleme mit Ejabberd und auch dem XMPP Daemon.

    b) siehe a) ich habe jetzt keinen Einblick in Erlang, weiß zumindest das diese Sprache gut für Parallelität geeignet ist. Aber inwieweit dieser Exot in der Praxis wirkt oder Hürden ob der Komplexität auferlegt … keine Ahnung.

  12. Chris sagt:

    @Markus: Wenn die einzelnen User online sind, dürfte das meiste abgefangen werden. Die Nachrichten werden in Echtzeit verschickt. Lass es 50 Dings auf einmal sein. Das sollte weniger das Problem sein.

    Das Problem tritt akut auf, wenn ein User nicht online ist.

    Die Nachrichten werden gesammelt und gesammelt und gesammelt. Und wenn sie dann ausgeliefert werden, legt das bei nur einem User den ganzen Server lahm. Zumindest bei unseren Ressourcen. Wenn ich jetzt (siehe Bild oben) meinen Jabber/Xmpp-Client starte, wird das ejabberd in die Knie zwingen. Heißt: Nachrichten vorher löschen oder Account per Client löschen, neu registrieren.

  13. Oliver sagt:

    Es ist auch kein lokales Problem, sondern eines der Interoperabilität — welches die Sache erst interessant macht.

    Also, once you have a sizable number of users, sending a lot of SMS, OMB, and XMPP messages whenever someone posts a message can really slow down your site; it may cause posting to timeout.

    Aus der offiziellen Readme, die die Software begleitet. Kurzum, alle Daemonen aktiv und ein paar Leute nutzen kräftig Jabber, dazu SMS, hören auf anderen Laconica-Servern mit und geben sich auch lokal die Ehre — bingo :-) Hier habe ich jetzt alle XMPP Daemonen deaktiviert, sowie SMS. Über bleiben zwei Daemonen, einer für den Zeitstrahl, ein anderer für die OpenMicroblogging-Funktionalität — letzterer kann auch reißen, aber es geht. Dazu sind die Daemonen nicht optimal gestaltet und fressen bei Durchlauf über mehrere Tage gewaltig Speicher, Evans Rat: ca. täglich oder so neustarten mittels Cron. Mache ich hier ebenso, selbst mit diesen zwei.

    Es mag ja sein das Jabber, sprich das Protokoll, für diverse Zwecke gestaltet wurde, die jeweiligen Server sind nach meinem Ermessen jedoch eher für menschliche Kommunikation gestaltet. Sprich ein Email-Server beispielsweise für viele User wäre auch kein großartiger Akt, ein Update-Feuerwerk um irgendwelche Zustände zu aktualisieren würde jedoch auch diesen gewaltig herunterziehen. Evan empfiehlt übrigens auch einen eigens aufgesetzen Server für Jabber, warum durften wir inzwischen erfahren 😉 Mit tatsächlich vielen Usern, müßte man sich dann schon mit load balancing & co auseinandersetzen.

  14. Markus Merz sagt:

    @Chris Dann ist aber bei der XMPP Architektur etwas grundsätzlich falsch. Wenn du deine n.000 messsages abruft, dann darf das nicht zu n.000 DB Abfragen und n.000 Server/Client Kommunikationen führen.

    Da müssen Mechanismen geschaffen werden um mit der Situation umzugehen.

    Ein (zugegeben besserwisserischer) Ansatz: Die Nachrichten müssen bei Abfrage oder nach einer gewissen Zeit oder Menge in eine flatfile DB/Log geschrieben/gedumpt werden. Diese Datei wird gezippt zum Client übertragen und der muss das Paket handeln.

    Das ist natürlich eine Stammtischdiskussion hier. Ich muss mich wohl doch mal bei Gelegenheit tiefer mit XMPP beschäftigen.

  15. Oliver sagt:

    >Dann ist aber bei der XMPP Architektur etwas grundsätzlich falsch.

    Nein, es gibt gute Mailserver, es gibt schlechte Mailserver. Es gibt weiterhin Dienste die mit diesen Ressourcen katastrophal umgehen und andere die rücksichtsvoll aggieren. Laconica ist eine Alpha-Software auf dem Weg zur Beta, die Daemonen sind auf gut Deutsch noch teils unter aller Sau, Ejabberd ist imho schlecht umgesetzt — und nicht das Protokoll. Kurzum all diese Bestandteile machen diese Sache zu einer heiklen Angelegenheit, mehr oder weniger ähnlich erleben das viele Admins tagtäglich in diversen Bereichen ihrer Arbeit.

    >Da müssen Mechanismen geschaffen werden um mit der Situation umzugehen.

    Ja bessere Software, da hilft auch kein tricksen beim Protokoll um die Fehlungen anderer temporär auszubessern.

RSS-Feed abonnieren