Jump to content

Langsames Cache Drive?


MarkusR

Recommended Posts

Hi Zusammen,

 

mein Unraid-Server ist folgendermaßen aufgebaut:

 

- WD-RED-Festplatte als Parity 2TB

- WD-Green-Festplatte als disk1 2TB

- WD-Red-Festplatte als disk2 2TB

- M.2 SSD als Cache-Festplatte 450GB

 

1GB/s Ethernet-Netzwerk.

 

Wenn ich nun eine größere Übertragung von meinem Primär-Rechner und meiner USB-Sicherungs-Festplatte auf den Unraid-Server durchführen möchte (53,3GB bei 112.752 Dateien und 10.307 Ordner), befindet sich die Übertragungsrate erstmals zwischen 20-80 MB/s, teilweise auch mal kurz über 100 MB/s. Sobald er aber kleinere Dateien kopiert, bricht die Übertragungsrate auf 800 KB/s bis ca. 1-2 MB/s ein und steigert sich auch nicht mehr.

 

Das Cache-Drive ist mit XFS formatiert und frisch getrimmt. Die Option "md_write_methord" ist auf "reconstruct write" konfiguriert.

Habt ihr noch einen Ansatz, an was das liegen könnte?

Link to comment
20 minutes ago, MarkusR said:

Die Option "md_write_methord" ist auf "reconstruct write" konfiguriert.

Die gilt nur für das Array und nicht für den Cache.

 

21 minutes ago, MarkusR said:

Sobald er aber kleinere Dateien kopiert, bricht die Übertragungsrate auf 800 KB/s bis ca. 1-2 MB/s ein und steigert sich auch nicht mehr.

Willkommen bei SMB. ^^

 

Um dem Herr zu werden gibt es ein paar Möglichkeiten, aber erwarte keine Wunder. SMB ist bei vielen kleinen Dateien keine Rakete:

https://forums.unraid.net/topic/97165-smb-performance-tuning/

 

 

Insbesondere RSS kann durch das daraus resultierende Multi-Threading helfen. Auch Direct-Disc Access. In deinem Fall also eine direkte Freigabe des Cache-Pools. Damit umgeht man schon mal den Overhead von Unraid.

 

Auch hilfreich ist das Kopieren auf zwei Ziele. Also auf //tower und //<IP-Adresse>.

 

Steht aber alles in dem Guide.

 

 

 

 

Link to comment

Hi @mgutt

 

vielen Dank für deine Anleitung. Ja in der Tat ist das alles keine Rakete. Ich habe mal folgendes, neben den von mir im Eingangspost beschriebenen Punkten, durchgeführt:

 

- dirty_ratio auf 50 gestellt

- MTU auf 9000

- Netbios disabled

 

Dann auch mal die Daten vom USB erst auf meinen primären Rechner und von dort auf den Unraid-Server kopiert. Er bricht zwar immer noch in den KB-Bereich manchmal ein, scheint aber insgesamt flotter zu laufen und im Durschnitt nun im oberen MB-Bereich zu befinden.

 

Direkt die Disks freizugeben, wäre vielleicht noch eine Performance-Steigerung, aber wie würde ich dann die Daten von der SSD auf die HDD in mein Share bekommen? Er hat ja so keinen Bezug zum Share, oder?

Würde ja dann ein manuelles rsync per Shell bedeuten?

Link to comment
24 minutes ago, MarkusR said:

- MTU auf 9000

 

Das bringt nichts bei kleinen Dateien, weil die Datenpakete im Netzwerk ja einfach nur vergrößert werden. Im Gegenteil. Kleinere Dateien belegen dann ja mehr Platz als sie selbst groß sind. Kommt aber auch darauf an wie klein die Dateien sind.

 

24 minutes ago, MarkusR said:

Dann auch mal die Daten vom USB erst auf meinen primären Rechner und von dort auf den Unraid-Server kopiert.

Das reduziert den Overhead schon mal. Noch besser wäre es die USB Platte direkt an den Server anzuschließen.

 

24 minutes ago, MarkusR said:

Direkt die Disks freizugeben, wäre vielleicht noch eine Performance-Steigerung, aber wie würde ich dann die Daten von der SSD auf die HDD in mein Share bekommen?

Das läuft wie gehabt. Wenn du einen Share "Backups" hast, dann kannst du den Pfad "/mnt/cache/Backups" direkt freigeben. Wenn Backups nun beim Cache auf "Yes" steht, wird der Mover die Dateien des Ordners wie gehabt auf die HDDs verschieben.

 

Du könntest die Datei /boot/config/smb-extra.conf mit folgendem Inhalt erstellen:

[cacheBackups]
    path = /mnt/cache/Backups
    comment =
    browseable = yes
    # Private
    writeable = no
    read list = 
    write list = Tom
    valid users =  Tom
    case sensitive = auto
    preserve case = yes
    short preserve case = yes

 

Den User "Tom" und den Sharenamen "Backups" dann entsprechend ändern. Falls dein Cache Pool nicht "cache" heißt, dann den natürlich auch. Dann in der Kommandozeile das ausführen:

samba restart

 

Schon hast du einen neuen SMB Share mit dem Namen "cacheBackups", der das selbe Ziel hat wie der Share "Backups", nur eben mit direktem Zugriff auf die Cache Disk.

 

Bedenke:

/mnt/user/Backups = /mnt/disk1/Backups + /mnt/disk2/Backups + usw + /mnt/cache/Backups

 

Deswegen ist der Zugriff auf /mnt/user/Backups auch etwas langsamer, weil Unraid immer erst auf allen Disks schauen muss was vorhanden ist.

 

Du kannst natürlich auch direkt eine Disk freigeben:

[disk4Backups]
    path = /mnt/disk4/Backups
    comment =
    browseable = yes
    # Private
    writeable = no
    read list = 
    write list = Tom
    valid users =  Tom
    case sensitive = auto
    preserve case = yes
    short preserve case = yes

 

Link to comment

@mgutt

 

ok, danke dir 🙂 Hab jetzt die Platte direkt am Unraid-Server und kopiere von dort die Dateien. Gerade hatte ich die Situation, dass mein rsync Prozess zum Dateien kopieren abgebrochen hatte, da meine Cache-Disk fast voll war. Hab dann erstmal den Mover angestoßen. Da ich ich die SMB-Option "use cache pool" auf yes hatte, dachte ich, er macht dann den Mover automatisch?

War ich da zu ungeduldig, oder macht er das nicht, wenn man direkt auf der Shell etwas kopiert?

Link to comment
1 hour ago, MarkusR said:

War ich da zu ungeduldig, oder macht er das nicht, wenn man direkt auf der Shell etwas kopiert?

Der Mover startet nicht automatisch, sondern nur nach Zeitplan. Hattest du als Ziel /mnt/cache genommen? Dann läuft der Cache voll. In so einem Fall als Ziel /mnt/user nehmen. Ist der Cache dann voll, leitet Unraid die weiteren Schreibvorgänge automatisch aufs Array um.

 

Auch wichtig ist es den Minimum Free Space des Caches groß genug zu wählen. Der muss größer sein als die größte Datei, die du auf den Server übertragen möchtest.

Link to comment

@mgutt nein, Diskhares habe ich nicht eingerichtet. Ich belasse es bei den SMB-Shares. Wenn ich einmal meine Daten von der Backup-Platte wieder zurück gesichert habe, dann ist mein tägliches Volumen minimal.

 

Ich hatte noch ca. 33GB von den 450GB frei. OK, dann hätte Unraid es umleiten müssen. Vielleicht war ich nur zu ungeduldig. Oder würde der Mover auch über /mnt/user nur nach Zeitplan starten?

Link to comment
3 minutes ago, MarkusR said:

Diskhares habe ich nicht eingerichtet

Brauchst du auch nicht. Die Pfade gibt es so oder so. Deswegen fragte ich was du als Ziel bei rsync eingestellt hattest. Wenn es /mnt/user war, dann hätte Unraid umleiten müssen, außer die Datei war größer als Minimum Free Space des Caches.

Link to comment
6 minutes ago, MarkusR said:

Ah bei Minimum free Space hab ich noch eine 0 stehen.

Das ist vermutlich der Wert vom Share und bezieht sich damit meine ich nur auf die Array Disks. Früher war der Wert für den Cache bei den Global Share Settings. Wo der jetzt ist weiß ich gar nicht. Muss ich mal suchen 

Link to comment

Ok. Jetzt kann man bei jedem Pool eine eigenen Wert einstellen.

 

Aber komisch, dass der auf 0 steht. Früher war meine ich 20GB der Standardwert. Bei mir habe ich sogar 100GB eingestellt, weil ich manchmal so große Dateien auf das NAS kopiere (nutze noch Unraid 6.8.3).

 

IMG_20210516_210108.jpg.e1c90f276c5ac3c11b9e9ac7db78b129.jpg

Link to comment

Ah ok. Meinst du dass könnte das Problem bei mir gewesen sein? 

 

Kann man eigentlich ein SSD Cache auch für VMs zur Beschleunigung nutzen? 

Also ähnlich wie bei den Shares mit "Use SSD...", oder würde das nur gehen, wenn man die VM-Disks direkt auf die SSDs kopiert?

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...