Slice Media Player: I/O Performance Verbesserung

Bei meinen Analysen rund um tvheadend bin ich darauf gestoßen, dass jeder I/O Zugriff auf die interne HDD im Slice durchgehend um die 15-20% CPU Last zieht (Prozess: mount.exfat).

Dies liegt daran, dass von fiveninjas empfohlen wird, die interne HDD mit exFAT zu formatieren um eine große Kompatibilität zu erlangen (somit wird, wenn man den Slice an einem Windows PC oder einem Mac per USB anschließt, direkt die interne HDD als Wechselmedium gemounted).

Leider läuft das exFAT Dateisystem im Usermode via fuse, was leider nicht ganz so performant ist.

Heute bin ich mal hingegangen, habe alle Aufzeichnungen auf der HDD gesichert und die HDD im ext4 Dateisystem neu formatiert. Da ext4 nativ auf Kernelebene läuft war das I/O Problem damit schon gelöst.

Die allgemeine I/O Performance ist nun auch um einiges höher. Schreib und Lesezugriffe gehen um einiges schneller.

Kopieren von Dateien über USB von Windows PC’s oder Macs funktioniert jetzt zwar nicht mehr, aber da der Slice bei mir sowieso feste im Wohnzimmer verbaut ist übertrage ich Daten ehe nur über das Netzwerk.

Bei Kopien über das Netzwerk bemerkt man nicht viel, wenn nur minimal, einen Unterschied. Ich kopiere hier mit rund 6MB/s über SMB/CIFS, wobei ich hier nicht genau weiß, was ehr schlapp macht: die 100MBit/s NIC vom Slice (welche durch den langsamen CPU recht limitiert ist) oder unsere Powerline Verbindung ins Wohnzimmer.

Auch die CPU Last durch Kodi und tvheadend ist dadurch um einiges gesunken.

Was ich allerdings machen musste, ist das mounten manuell übernehmen, da Slice den Partitionsnamen nicht erkannt hat und somit in ein selbst generiertes Verzeichnis gemounted hat.

Meine aktuelle autostart.sh in /storage/.config (welche zum aktivieren ausführbar gemacht werden muss: chmod +x autostart.sh) sieht aktuell so aus:

#!/bin/bash

echo pcf8523 0x68 > /sys/class/i2c-dev/i2c-0/device/new_device
mkdir /media/Slice
mount UUID=a7d9b9d6-cd2e-47fc-83ad-b2aca13de9fd /media/Slice
swapon /media/Slice/swap.img
umount /var/media/*usb-TOSHIBA_*
rm -Rf /var/media/*usb-TOSHIBA_*
mount –bind /media/Slice/backup/ /storage/backup/
#hwclock -s

Ich habe das Backup Verzeichnis auch mal auf die HDD gerebindet um den Flash Speicher etwas zu schonen.

Außerdem habe ich ein SWAP Image auf der HDD angelegt (geht auch nicht mit exFAT) und das eingebunden um den RAM etwas zu erweitern und Out of Memory Crashes zu vermeiden.
Eine eigenständige SWAP Partition war nicht möglich, da der Slice bei Neustart nicht mehr bootet. (Scheint wohl die Partition nicht mounten zu können).

Auch tvheadend lief jetzt einige Tage ohne Crash durch. Aber hier möchte ich noch nicht vollständig unterschreiben, dass das Problem gelöst ist. Da warte ich lieber noch etwas.

28 Jul

by 

Leave a reply

Created with Snap