Dateizugriff beim Raspberry Pi 3 beschleunigen

Begonnen von MarkusAutomaticus, 22 September 2016, 13:24:42

Vorheriges Thema - Nächstes Thema

MarkusAutomaticus

Hallo zusammen,

ich vermute, dass das zähe Verhalten meines Pi mit dem Zugriff aufs Dateisystem zusammenhängt.
Die Plots werden ja aus Logs generiert und diese liegen derzeit auf einer sdcard.

Bevor ich nun zu einem 10mal so teueren NUC umsteige, käme folgendes in Betracht:


  • Austausch der günstigen Transcend sdcard gegen eine schnelle Sandisk extreme
  • Auslagern der Dateien aufs NAS
  • Anschluss einer SSD über einen USB-Port

Alles steht und fällt natürlich mit der Anbindung des Mediums an die CPU.
Ich meine z.B. gehört zu haben, dass der Ethernetport über (den lahmen) USB-Port angebunden ist.

Deshalb bin ich auf den Suche nach Erfahrungsberichten.
Was bringt was und was bringt nichts, bzw verschlechtert die Situation?

Gruß
Markus

FHEM 5.8 |intel NUC Core i3: Ubuntu 22.04 | z-Wave: Aeon Labs USB Stick | Jeelink (v3c): LaCrosse-Sensoren | DuoFern Stick: Rademacher Gurtwickler | Philips Hue Bridge | CUNX: HomeMatic, EnOcean-Pigator

Grinsekatze

Also bei mir habe ich den Pi 3 wie folgt optimiert:
- eine schnelle SanDisk Class 10 SD-Karte,
- gutes Netzteil (sowie spez. USB-Ladekabel),
- die Logs werden alle auf ein USB Stick geschrieben (per Symlinks) - wobei ich das eher getan habe um die Karte nicht zu füllen.

Ein Performanzproblem habe ich eigentlich nicht. Weder auf meinem Pi 3, auf dem FHEM und Homebridge laufen. Noch auf dem Pi 3, auf dem Kodi, FHEM und Hyperion laufen.

Otto123

#2
Hallo Markus,

hast Du attr WEB plotfork 1gesetzt?

Der Pi schafft ca. 17 MB/sec auf die SD Karte lesen oder schreiben. Das sollte die Karte können, mehr braucht sie aber nicht.

Ich habe keine Performanceprobleme  bei den Plots. Wichtig ist auch noch was in den Logfiles alles drin steht, da kann man viel optimieren! Viel mehr als mit der SD Card.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Prof. Dr. Peter Henning

Die Performance bricht dramatisch ein, wenn in einem Unterverzeichnis auf der SD-Karte zu viele Dateien liegen. Das liegt an der Organisation des Dateisystems. Alleine das Auslagern in ein separates Archiverzeichnis (um Mitternacht z.B.) beschleunigt den Raspberry deutlich.

Wenn das auf einer NAS liegt, ist es sogar noch besser.

Für das Archivieren hebe ich übrigens die meisten Textfiles gar nicht mehr auf. Was will ich mit 2,6 Millionen Datensätzen meiner Badezimmertemperatur jemals anfangen ?

Stattdessen werden kurz vor Mitternacht Kopien der Plots gezogen, diese in PNG-Dateien umgewandelt und auf die NAS gekippt.

LG

pah

MarkusAutomaticus

Hallo zusammen,

vielen Dank für die vielen Tipps!
Bei der Suche nach einer schnelleren SDCard bin ich auf folgender Seite auf einen Benchmark speziell für Raspis gestoßen:
http://www.pidramble.com/wiki/benchmarks/microsd-cards

Und was ich ganz spannend fand, man kann den sdcard-reader auch übertakten:
http://www.jeffgeerling.com/blog/2016/how-overclock-microsd-card-reader-on-raspberry-pi-3

Ich bin normalerweise kein Freund vom Betreiben von Hardware außerhalb der Spezifikation (Overclocking).
Ich hatte mir zwar mal extra eine core i5 K-Variante gekauft, das Overclocking aber nur kurz ausprobiert.

Zurück zum raspi: Mein Leidensdruck war groß genug, das Übertakten mal zu probieren.
Gut dass ich zuvor ein Image der sdcard gezogen habe, denn beim Reboot wollte der Raspi gar nicht mehr starten.
100 MHz sind für meine Trancend-Karte wohl zuviel.

Das Rückspielen des 64GB-Images dauerte mit der Schreibrate von knapp 20 MByte/s über eine Stunde!
Ich habe schon alle Hoffnung fahren lassen, mein liebevoll eingerichtetes FHEM jemals wieder zu sehen.

Es hat dann zwar irgendwie geklappt und das System hat wieder gebootet, aber irgendwie habe ich den Eindruck, dass es jetzt noch unzuverlässiger läuft.

=> Ein NUC muss her.
Vieleicht setze ich bei Bedarf die Raspis als Satellit per FHEM2FHEM ein?

@pah: Ich habe mir zum Geburtstag dein Buch SmartHome Hacks: Hausautomatisierung selber machen schenken lassen.
Ganz großen Respekt dafür! Herrlich praxisnah geschrieben, niemals trocken und mit einer guten Schreibe, die richtig Lust zum Schmökern macht.

Kann ich jedem FHEMler wärmstens empfehlen!

Gruß
Markus
FHEM 5.8 |intel NUC Core i3: Ubuntu 22.04 | z-Wave: Aeon Labs USB Stick | Jeelink (v3c): LaCrosse-Sensoren | DuoFern Stick: Rademacher Gurtwickler | Philips Hue Bridge | CUNX: HomeMatic, EnOcean-Pigator

Prof. Dr. Peter Henning

Danke für das Lob - vielleicht gibt es einen zweiten Band. Den ersten längeren "Hack" dafür habe ich im FHEMWiki unter DoorPi und FHEM stehen. :) :)

Ich betreibe (so wie im Buch am Ende eher vage beschrieben) ein verteiltes System aus 5 Raspberry Pi für meine Hausautomation.

Sehr performant und stabil.

LG

pah


Frank_Huber

Was auch helfen könnte bei der Performance:
Umstellen von file-log auf db-log

topfi

BananaPi mit SATA-SSD. Das läuft hier seit fast 2 Jahren recht performant. Derzeit ersetze ich das aber durch einen NUC mit Pentium N3700. Die ersten Tests sind äußerst vielversprechend. Mit (meinem recht umfangreichen) FHEM allein  idlet der aber eigentlich nur bei einem Kerntakt von 500MHz in der Gegend herum.

Tedious

Zufällig ein Linux-basiertes NAS oder einen Windows-Rechner im Netzwerk der immer an ist? Bei hostet ein Mini-PC (Atom X5-z8300, 2GB Ram) im Netzwerk u.a. einen SQL-Server auf den FHEM die dblogs schreibt. Das Ganze läuft sehr performant bei 6W Stromverbrauch und stellt gleichzeitig u.a. den LMS zur Verfügung.
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

Otto123

Das Punkt ist doch eher: Markus hat doch bestimmt nur einen Grund gesucht um sich einen NUC zu kaufen   ;)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

topfi


MarkusAutomaticus

Zitat von: Otto123 am 28 September 2016, 15:47:09
Das Punkt ist doch eher: Markus hat doch bestimmt nur einen Grund gesucht um sich einen NUC zu kaufen   ;)

Gruß Otto

Hallo Otto, du hast mich ertappt.
Der NUC liegt bereits fertig mit Ubuntu Server drauf auf dem Schreibtisch.
Jetzt muss ich "nur" noch alles vom Raspi umziehen.

Gruß
Markus
FHEM 5.8 |intel NUC Core i3: Ubuntu 22.04 | z-Wave: Aeon Labs USB Stick | Jeelink (v3c): LaCrosse-Sensoren | DuoFern Stick: Rademacher Gurtwickler | Philips Hue Bridge | CUNX: HomeMatic, EnOcean-Pigator

maci

Zitat von: Prof. Dr. Peter Henning am 22 September 2016, 15:37:01

Stattdessen werden kurz vor Mitternacht Kopien der Plots gezogen, diese in PNG-Dateien umgewandelt und auf die NAS gekippt.


Wie mach ich das unbeaufsichtigt?
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Prof. Dr. Peter Henning

Für einen Plot:

#!/bin/bash
device=$1
logdev=$2
plotfile=$3

# get the file
wget "http://192.168.0.xx:8083/fhem/SVG_showLog?dev=$device&logdev=$logdev&gplotfile=$plotfile&logfile=-" -O /tmp/backup.svg > /dev/null 2> /tmp/picture.log

#rewrite into png
inkscape -z -d 150 -e /tmp/backup.png -b ffffff00 /tmp/backup.svg > /dev/null 2> /tmp/picture.log 

#rename properly
date=`date +"%Y-%m-%d"`
if  [ -d "/home/fhemnas/fhempictures" ]; then
  mv /tmp/backup.png "/home/fhemnas/fhempictures/$device-$date.png"
else
  mv /tmp/backup.png "/home/fhem/fhemlogs/$device-$date.png"
fi


Und das kurz vor Mitternacht aufrufen. z.B. monatlich als
#!/bin/bash
cmd=/opt/fhem/archiveplot.sh

$cmd SolarMonthPV SolarPVM SolarMonthPV
$cmd SolarMonthTH SolarTHM SolarMonthTH
$cmd EMonth EnergieM emxm
$cmd GMonth GasM gasm
$cmd WMonth WasserM wasserm


LG

pah

maci

Muss ich in nächsten Tagen gleich mal testen.

Danke für die schnelle Antwort.
Der Chef scheint ein Nacht- oder Frühmorgensarbeiter zu sein, mit der Antwort um 4:43 Uhr  ;)
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan