[FFA] RAM-Engpass durch collectd-Statistiken

Steini freifunk at total-connection.net
Di Jun 14 08:54:24 CEST 2016


Hallo liebe Freifunkas,

die folgenden Information is wichtig für alle die Freifunk-Router
einsetzen mit 32 MB Arbeitsspeicher; z.B. Nanostations oder TP-Link
WR842ND o.ä.

Einigen aus der Community ist vor einiger Zeit aufgefallen, dass neuere
Freifunk-Knoten oder solche die mit neuerer Firmware aktualisiert
wurden, im Vergleich zu älteren Installationen vergleichsweise geringe
Uptime haben, d.h. die starten pftmal unvermittelt neu. Da es alle
Geräteklassen betraf, schloss ich einen Hardwaredefekt aus und konnte
mir das anfänglich nicht erklären.
Da die Freifunk-Knoten meistens einen Reboot durchführten oder nur
einzelne Dienste neustarteten, fiel der Verdacht schnell auf den
Watchdog, der u.a. sicherstellen soll, dass stets genug Arbeitsspeicher
frei ist, um laufende oder neue Prozesse auszuführen.
Und genau die Spur führte zum Ziel. Mit der neuen Freifunk-Firmware, die
auf dem OpenWRT-Release 'chaos calmer' basiert, kam statt der vorher
genutzen Version 4 von collectd, was für's Generieren der Statistiken
zuständig ist, die Version 5 ins Image und die ist etwas hungriger was
Arbeitsspeicher betrifft.

Klar könnte man jetzt ein Downgrade von collectd auf Version 4
vorschlagen, aber es gibt eine weit weniger grauslige Lösung: Einzelne,
kaum genutzte Statistiken abschalten. Und das geht so.
1.) Mit SSH-Client (z.B. putty) mit dem jeweiligen Freifunk-Router verbinden
2.) Auf der Konsole mit einem Editor die Datei
/etc/config/luci_statistics öffnen (z.B. mittels vi
/etc/config/luci_statistics)
3.) Collectd-Plugins raussuchen, die Du deaktivieren kannst:
collectd_iptables
collectd_tcpconns
collectd_conntrack
collectd_cpu

4.) Im jeweiligen Abschnitt des Plugins, diese deaktivieren
In der Zeile option enable '1' statt der 1 die 0 eintragen (darauf
achten die einfachen Anführungszeichen zu behalten!)

Kurzer Zusatz: Im vi-Editor mit der Escape-Taste und der Einfügen-Taste
zwischen dem Kommando- und Editiermodus hin und herwechseln. In welchem
man sich gerade befindet, sieht man links unten I oder R stehn für
Editiermodus, steht nix da, bist Du im Kommandomodus.

5.) Die Konfigurationsänderungen speichern
Im vi mit ESC in den Kommandomodus wechseln und :wq (für write und quit)
eingeben + die ENTER-Taste.

6.) collectd neustarten
In der Konsole den Befehl
/etc/init.d/luci_statistics restart
ausführen

Wer noch nachschaun mag, ob Du wirklich betroffen bist, kannst Du Dir
mit free, Informationen zum verbauten Arbeitsspeicher anzeigen, steht da
irgendwas weniger als 32000, hast Du ein 32MB Gerät und solltest handeln.
Live beobachten, kannst du mittels top. Das zeigt in der ersten Zeile
Informationen zum Speicherverbrauch an, achte darauf wie sich der Wert
für free verändert. Wenn's unter 800kb fällt und da dauerhaft bleibt,
kannst weitere Plugins ausknipsen. Wenn's um 1200 - 2000 kb oder mehr
pendelt, reicht's für den Normalbetrieb aus, das nix mehr schief geht.


Soweit dazu, wenn Fragen sind, meldet Euch, über die Mailingliste, Chat,
Brieftauben oder sowas

Ciao

Steini




Mehr Informationen über die Mailingliste freifunk-augsburg