Jump to content

Kopirevorgänge durch Cache beschleunigen.


XxX4V3R
Go to solution Solved by alturismo,

Recommended Posts

Achtung kleiner Dau hier.
Ich bin wirklich unzufrieden mit der Geschwindigkeit der Schreibvorgänge über das Home-LAN.
Über Krusader ist es im Bereich 20-40mb/s. Über Windows-Share ist es zwischen 60-70mb/s.

Ich hatte mir extra noch eine SSD besorgt, die sehr langlebig ist und viele Schreibcycklen überleben sollte.
Mein Cache sollte gerne die Funktion haben, dass er eine große "linuxiso" von 30-120gb empfängt und nach Abschluss des Transfers automatisch anfängt diese Datei auf das HDD Array zu werfen. Wie bekomme ich das hin?

Es sind recht flotte TOSHIBA 20tb Platten, die zumindest beim Array-aufsetzen (diese Paritätsgeschichte am Anfang) W/R Geschwindigkeiten von 140mb-260mb/s hatten.

 

Oder mecker ich gerade unnötig und die Geschwindigkeiten beim Filetransfer sind halt so...

Edited by XxX4V3R
Link to comment
  • Solution
15 minutes ago, XxX4V3R said:

Oder mecker ich gerade unnötig und die Geschwindigkeiten beim Filetransfer sind halt so...

ich hab das mal in den normalen Teil verschoben da es sich hier weniger um ne Kaufberatung dreht ...

 

wenn du jetzt auf das Array direkt schreibst mit laufender Parity, dann sind 60 - 70 MB/s stellenweise normal, ja ... 

 

wie du das beschleunigen kannst wurde mehrfach erläutert, Beispiel "reconstruct ...." in Disk Settings.

 

1/ schneller ja

2/ alle Platten immer aktiv ... nicht nur die zu beschreibende Platte und die Parity

 

wenn du jetzt auf den cache schreibst, dann ist das zu langsam ... selbst bei 1G sollte da mehr rauskommen, jetzt solltest du mal nen screen deiner Main Seite posten und ne diagnostics bereitstellen.

  • Like 1
Link to comment
Also ja, aktuell schreibt ehr direkt auf die HDDs. Die Frage mit dem Mover müsste ich wohl spezifizieren. Es geht tatsächlich nur mit den Variablen "Füllstand" und "Zeit", dass der anfängt tätig zu werden, richtig?
Mover startet nach Zeit

Es gibt ein Plugin was dann gewisse Bedingungen einbezieht ...

Auch Füllstand, aber der Trigger ist immer nur Zeit ...

Beispiel, mover läuft stündlich, wenn Füllstand 60 % erreicht wird move los, wenn geringer dann nicht, das ganze startet dann nach dem nächsten Zeitplan.

Gesendet von meinem SM-S911B mit Tapatalk

  • Like 2
Link to comment

also könnte ich theoretisch den Mover alle 20 Minuten laufen mit einem Füllstand von 1 Prozent als Trigger, dann sollte er ja alle 20 Minuten das verschieben starten oder?
Wie sieht es aus, wenn die Kriterien erfüllt sind, aber die Iso noch nicht fertig auf die SSD kopiert worden ist?

Link to comment
1 hour ago, XxX4V3R said:

also könnte ich theoretisch den Mover alle 20 Minuten laufen

 

ich weiß jetzt nicht ob 20 Minuten einstellbar sind, aber kurze Intervalle sind möglich.

 

1 hour ago, XxX4V3R said:

dann sollte er ja alle 20 Minuten das verschieben starten oder?

 

ja.

 

1 hour ago, XxX4V3R said:

Wie sieht es aus, wenn die Kriterien erfüllt sind, aber die Iso noch nicht fertig auf die SSD kopiert worden ist?

 

Der Mover fasst im Normalfall nur die Dateien an, die gerade nicht im Zugriff sind.

Das ist ja auch der Grund, warum man beispielsweise den Docker abschalten soll, wenn man das Systemverzeichnis mit dem Dockerimage verschieben will.

 

Sollte es dazu noch Unklarheiten geben, empfehle ich es einfach auszuprobieren.

Stelle einen Share dementsprechend ein,

starte den Kopiervorgang einer riiiieeeesigen Datei (oder kopiere sie mit reduzierter Langecshwindigkeit [10MBit/s]

und drücke den Mover Button im Main-Tab von unraid, während der Kopiervorgang noch lange läuft.

 

Edited by DataCollector
Vorgang ergänzt
  • Like 2
Link to comment
3 hours ago, XxX4V3R said:

also könnte ich theoretisch den Mover alle 20 Minuten laufen mit einem Füllstand von 1 Prozent als Trigger, dann sollte er ja alle 20 Minuten das verschieben starten oder?

und warum willst du dann den "Umweg" über den cache überhaupt gehen und schreibst nicht direkt auf das Array ... ?

 

so ganz ergibt sich hier der Sinn nicht dahinter ...

 

3 hours ago, XxX4V3R said:

Wie sieht es aus, wenn die Kriterien erfüllt sind, aber die Iso noch nicht fertig auf die SSD kopiert worden ist?

 

3 hours ago, DataCollector said:

Der Mover fasst im Normalfall nur die Dateien an, die gerade nicht im Zugriff sind.

 

genau so wie  @DataCollector es geschildert hat

  • Like 1
Link to comment
1 minute ago, XxX4V3R said:

na ich bin unzufrieden mit der schreibgeeschwindigkeit, ich moechte die daten da mit 200 bis 300mb pro sek draufbuegeln und mich dann anderen sachen widmen

wie schnell ist denn dein Netzwerk ?

 

alles Kabelgebunden ? wenn ja, 1G 2,5G 10G 40G ... ? die ganze Kette natürlich ...

 

bei 1G wäre bei ~ 100 MB/s Schluss, Rest kannst du grob hochrechnen ...

 

wenn du auf eine SSD schreibst erreichst du höhere Geschwindigkeiten wie auf eine HDD, die wird normal als cache genommen, nur macht es keinen Sinn die alle 20 Minuten dann verschieben zu lassen ... aber egal, deine Entscheidung ;) Standard ist max alle Stunde, ansonsten per user script auch sicherlich öfters ... macht man normal auch nur wenn der cache klein ist, aber dann renne ich ja auch in die Falle das ich bei vielen Daten direkt auf das Array schreibe da kein Platz mehr da ist.

 

Kurz, schalte den cache davor in entsprechender Größe das du durch den Tag kommst, lass nachts den mover laufen, oder wie auch immer ;)

  • Upvote 1
Link to comment
15 minutes ago, XxX4V3R said:

na ich bin unzufrieden mit der schreibgeeschwindigkeit, ich moechte die daten da mit 200 bis 300mb pro sek draufbuegeln und mich dann anderen sachen widmen

 

Meine Lösung ist einfach einen möglichst großen Cache zu verwenden (bei mir 4TB AData Ledend 960). Der sich schreibschnell, ziemlich ausdauernd und bei 4TB kann man da schon sehr viel drauf lagern, so daß der Mover eher selten anzuspringen braucht.

Der Mover beschäftigt sich dann zu "Off Zeiten" damit das ins Array zu schubsen.

Und wenn 4TB nicht reichen: in einem Pool habe ich 3x 8TB SSD per zfs gekoppelt, in einem anderen Pool sogar 2x 18TB Festplatten.

 

Link to comment
42 minutes ago, XxX4V3R said:

hab effektiv ein 2,5gbit netz, wenn auch der server selber und der dazugehörige switch 10gbit hat

dann solltest du auch ~ 250 MB/s + Durchsatz auf ne SSD erreichen, also, Cache rein und vorwärts gehts ;)

 

wenn du auf das Array schreibst mit Parity, dann wie oben erwähnt, reconstruct (alle Platten laufen parallel für Parity) aktivieren,
dann wird das auch erheblich flotter ... oder den Vorteil nutzen das nur die effektiven disks laufen müssen mit den Einbußen.

Link to comment

Platten sind getestet und konnte es ausprobieren einmal eine große Iso rüberzuschieben.
Hat das NIC gut ausgereizt (danke für die Unterstützung), beim händisch getriggerten Move schreiben die Platten aber leider auch nur mit 75-85mb/s.
Wo könnte da der Flaschenhals sein?

Link to comment
1 hour ago, XxX4V3R said:

Platten sind getestet und konnte es ausprobieren einmal eine große Iso rüberzuschieben.
Hat das NIC gut ausgereizt (danke für die Unterstützung),

 

Also wenn ich es recht in Erinnerung habe rund 2,5GBLan

 

1 hour ago, XxX4V3R said:

beim händisch getriggerten Move schreiben die Platten aber leider auch nur mit 75-85mb/s.
Wo könnte da der Flaschenhals sein?

 

Welcher Flaschenhals?

Das Array mit Parity erreicht per default schreibend immer nur zwischen 33 und 50% dessen, was die einzelne Festplatte an der Stelle schaffen kann.

(Reconstruct Write mal außen vor gelassen.)

 

Wenn Du einen ausreichend großen SSD Cache verwendest (mir einer entsprechend performanten SSD) und über Netzwerk/SMB darauf schreibst oder liest, sind bei Deinem 2,5GBLan ca. 280Mbyte/s schreibend auf den SSD-Cache möglich und sollten auch erreicht werden.

Daß der Mover dann beim Verschieben auf das Array nur mit der Array üblichen Geschwindigkeit vom Cache zum Array schreibt sollte logisch sein.

Wenn die Cache/SSD diese Doppelbelastung schlecht abfängt kann der Moverprozeß die Verfügbarkeit/Geschwindigkeit gleichzeitig aus dem Netz eintreffender Daten sogar negativ beeinflußen. (Das auch ein umfangreicher RAM Cache da unterstützen kann, lasse ich mal im Detail weg)

In dem Fall kann man nur wieder dazu raten: groß genugen Cache nehmen und den Mover seltener laufen zu lassen.

Ich rate in der Regel immer zu einem recht großen SSD-Cache um auch solchen Punkten vrzubeugen (und wegen höherer TBW und Leistungswerte der größeren SSDs).

 

Nicht von ungefär ist eigentlich die vorgesehene Verfahrensweise, daß man über Tag auf dem Cache arbeitet und der Mover eben nur nachts anspringt, wenn man das NAS eben gerade nicht braucht (weil man im Bettchen liegt und von billigen NVMe oder U.2 SSD mit 32TB zu 100 Euro/Stück träumt) 😁

 

Edited by DataCollector
Ram cache ergänzt
  • Like 1
Link to comment
On 2/23/2024 at 4:28 PM, DataCollector said:

 

Meine Lösung ist einfach einen möglichst großen Cache zu verwenden (bei mir 4TB AData Ledend 960). Der sich schreibschnell, ziemlich ausdauernd und bei 4TB kann man da schon sehr viel drauf lagern, so daß der Mover eher selten anzuspringen braucht.

Der Mover beschäftigt sich dann zu "Off Zeiten" damit das ins Array zu schubsen.

Und wenn 4TB nicht reichen: in einem Pool habe ich 3x 8TB SSD per zfs gekoppelt, in einem anderen Pool sogar 2x 18TB Festplatten.

 

Es wird ja gesagt, dass größere SSDs am Ende auch performanter sind, ist das denn richtig? ADATA mochte ich eigentlich zu schnellen USB Stick Zeiten sehr, auf einem läuft auch Unraid als OS. Gehen damit auch die tieferen C-States? Oder doch eher der Griff zu den Samsung?

Ich habe mich leider dazu verleiten lassen, eine billige M.2 SSD zu kaufen und mag mein System nicht unter C3 zu bringen. Das würde ich gerne ändern.

Link to comment
37 minutes ago, buscopina said:

Es wird ja gesagt, dass größere SSDs am Ende auch performanter sind, ist das denn richtig?

 

In gewissen Grenzen: ja.

Es gibt zwar auch Ausnahmen, aber signifikant größere SSD haben meist auch mehr Speicherchips und eben mehr freie Blöcke.

Wenn der SSD interne Kontroller das richtig handhabt (das ist Sache der Firmware) dann verteilt er die Schreibzugriffe so geschickt auf alle Chips, daß eben möglichst lange freie Blöcke beschrieben werden (und nicht Teilbelegte erst gelesen, gelöscht und neu geschrieben werden müssen) und natürlich sich Erwärmung und Belastung gut verteilt.

Auch sind bei größeren SSD meist die SLC nutzbaren Bereiche größer angelegt (solange die SSD eben nicht zu voll ist, was bei großen SSD ja auch erst viel später geschieht).

Aber das findet auch seine Grenzen an der Schnittstelle zum PC. Im Extrem: eine SSD, welche 500MBY groß ict und auch eien die 2Tb groß sind mögen zwar technisch 2-4 GByte/s schnell sein, aber wenn sei nur per PCIe 3.0 x1 angebunden sind (weil der PC nicht mehr her gibt) bleibt es bei beiden bei maximal ca. 1GByte/s.

 

Falls Du damit aber nur auf die Größe abzielst und nicht auch auf die verbaute Technologie:

Crucial P3 4TB und Kingston NV2 4TB sind bei mir in Schreibtests auf Werte abgefallen, die ich mit heutigen CMR Festplatten noch um einiges übertreffe (selbst im langsamen Innenbereich).

Deshalb erwähne ich ja auch die Adata 960 Legend (egal ob Max oder normal): die sind mir auch für unraid als sehr leistungsfähig (weitgehend Dauerschreibfest) aufgefallen (aber bitet auch die immer mit Kühlkörper verwenden!).

Die Lexar NM790 4TB sind auch sehr gut (werden aber sehr warm und haben unter einigen Linuxkerneln probleme), die Viper VP4300L 4TB sind bauähnlich der Lexar, aber bleiben (laut SMARt Angabe) weitaus kühler. Hbe sie unter unraid aber noch nicht getestet.
Meine Intialtests mache ich aus Bequemlichkeit erst mal immer mit Windows.

 

 

37 minutes ago, buscopina said:

ADATA mochte ich eigentlich zu schnellen USB Stick Zeiten sehr, auf einem läuft auch Unraid als OS.

 

AData ist ja nur die Firma. Die haben SSD im Angebot, die ich als ziemlich gut ansehe (siehe Legend 960),

aber ich habe auch schon frisch gekaufte ADATA SX8200PNP nach rund 1 Tag retourniert, weil eine von 2 direkt ausgefallen ist und auch die Leistung der Anderen eher durchwachsen.

 

37 minutes ago, buscopina said:

Gehen damit auch die tieferen C-States?

 

Das habe ich noch nicht probiert. Müsste ich in dem B760M von mir dieses Wochenende mal probieren.

 

37 minutes ago, buscopina said:

Oder doch eher der Griff zu den Samsung?

 

Wenn es um Sparsam geht kann ich nur sagen, ich kenne von den Samsung NVMe eigentlich nur die 970Evo Plus und finde die dahingehend gut.

Leider gibt es die eben nur maximal 2TB und die sind bei mir nicht so schnell/Dauerschreibfest wie die Adata Legend 960.

 

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...