[vz-users] Richtige Strategie für S0 Impulszählung

Florian Knodt f.knodt at yotaweb.de
Fri Dec 20 18:21:24 CET 2013


Nabend,

Am 20.12.2013 17:00, schrieb andreas bergelt:
> Jeder Impuls wird erstmal in das Filesystem im Device File geschrieben und gelöscht.

Wenn du damit /dev/ttyUSBx meinst: Das ist direkt das Gerät mit einem
RAM-Puffer, geht also (sofern nichts SWAPt) nicht auf die SD-Karte

> Ich möchte weder eine Platte dran hängen noch einen anderen Rechner laufen lassen.
<trollmodus>eine SSD? ;)</>

> Ich habe schon eine RAMlog angelegt und var/log drin laufen.
> Kann man eigentlich auch andere Folder so einhängen 
ich vermute du meinst damit ein tmpfs, ja, dass kann man prinzipiell
überall einhängen

> wie zum Beispiel "/sys/devices/virtual/gpio/"?

Da eher nicht, denn /sys ist - wie du selbst weiter unten ja schon
vermutet hast - wiederum ein Zugriff auf die Hardware, welcher direkt
über den Speicher läuft ;)

> Wenn ja wie geht das?

Einmalig:

mount -t tmpfs -o size=123 tmpfs /wo/es/hin/soll

123 -> maximal 123MB

Zu beachten ist allerdings, dass die alten Dateien in dem Ordner bis man
es unmountet nicht mehr zugreifbar sind, man muss sie also ggf.
entsprechend per Hand kopieren. Ebenfalls sind die Daten im RAM
natürlich weg wenn man neu startet.

Dauerhaft ginge es mit einer Zeile in /etc/fstab, z.B.

tmpfs     /tmp       tmpfs defaults,size=123 0 1

> Aktuell versuche ich den Weg zu gehen die Anzahl der Impulse zu sammeln in der RAM Disk um dann einmal die Stunde die Daten in die DB zu schreiben mittels vzclient

Ich nutze keinen vzclient, daher bitte nochmal selbst genauer nachlesen,
aber wenn ich auf der Liste richtig gesehen hab bringt der bereits eine
entspechende Aggregierung mit die sich recht ähnlich anhört.

> So richtig chic finde ich es noch nicht und gehe davon aus, dass ich den Wald vor lauter Bäumen nicht sehe wie ich die WriteIOs auf der Karte reduzieren kann damit ich lange Spaß an der SD Karte habe.

Auch wieder Schätzung, da ich dasRaspi-Image nicht kenne und es
eventuell ja schon drin ist:

- Temporäre Sachen wie /tmp, /run, /var/lock und eventuell /var/log in
  ein tmpfs
- dirty_ratios anpassen (/proc/sys/vm/dirty_) - bestimmt wie viele Daten
  im "unsicheren" RAM gehalten werden bevor die Platte/SD anfängt zu
  schreiben
- Mit commit=600 o.Ä. mounten - schreibt das Journal des Dateisystems
  statt alle 5 Sekunden nur noch alle 10 Minuten. Heißt aber auch, dass
  man bei Abstürzen/Stecker ziehen mehr Daten verlieren/beschädigen
  kann.

Eine weitere (aber auch wesentlich kompliziertere) Idee wäre es das
komplette System oder zumindest die am mesten beschriebenen Ordner ins
RAM zu verfrachten. Beim boot müsste man die Daten von der SD in ein
tmpfs laden, im Betrieb z.B. per rsync regelmäßig Änderungen im RAM auf
die SD zurück schreiben. Ich habe sowas auf einigen Servern laufen, auf
denen Datenverlust nicht so kritisch ist, auf dem Raspi könnte das aber
mit dem Speicher eng werden.

Ebenfalls eventuell ein weg: Andreas hat im Raspi-Performance-Thread
einen Aggregator vorgestellt, der eigene Tabellen nutzt. Sofern der
inkrementell Arbeiten würde und einen Datenverlust in der Quelltabelle
verkraften würde müsste man auch die data-Tabelle auf MEMORY (also
komplett im RAM) umstellen können - ist aber auch wohl eher eine große
Baustelle.

-- 
Mit freundlichen Grüßen  ||  Sincerely yours
Florian Knodt ·· Im Teich 11 ·· 56648 Saffig
www.adlerweb.info · www.56648.de · @adlerweb

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 901 bytes
Desc: OpenPGP digital signature
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20131220/e2147246/attachment.pgp>


More information about the volkszaehler-users mailing list