Jump to content
We're Hiring! Full Stack Developer ×

Lancache-Docker -> HDD Transferrate niedrig


h0schi

Recommended Posts

Hallo Zusammen,

 

ich betreibe einige Zeit schon ein Lancache-Server (im Docker (https://github.com/lancachenet/lancache-dns & https://github.com/lancachenet/monolithic).

 

Die Workstation ist mit 2,5 Gbit und der Unraid-Server per 10 Gbit LACP an mein Mikrotik-Switch angebunden.

MTU 9000 / Jumbo-Frames aktiv.

 

Der gecachte Download-Inhalt zur Workstation wrid ca. mit 140-150 MB/s - wenn der Inhalt noch auf dem Cache Pool (BTRFS / 2x NVME im RAID1).

Wenn der Download-Inhalt bereits auf den HDDs (BTRFS / WD Gold 6TB) abliegt wird der Inhalt mit ca. 70-80 MB/s übertragen.

Die HDDs hängen an dem Onboard SATA-Controller mit AHCI.

 

Mit den Übertragungsraten via SMB bin ich soweit zufrieden.

 

Ebenfalls ist es so, dass beim Vorgang die CPU-Last unheimlich in die Höhe steigt.

 

Den NIC-Buffer habe ich schon erhöht auf 4096 erhöht, den Offload deaktiviert, die FlowControl deaktiviert, die CPU Mitigations deaktiviert, CPU-Pinning versucht, mal ohne LACP getestet, Direct-IO getestet, CoW auf dem Share getestet, etc. 

 

Jemand eine Idee wie ich die CPU-Last senken kann und die Transferrate der HDDs steigern ?

 

 

Schon mal frohes neues Jahr und einen guten Rutsch ! :)

Edited by h0schi
Link to comment
1 hour ago, h0schi said:

Den NIC-Buffer habe ich schon erhöht auf 4096 erhöht, den Offload deaktiviert, die FlowControl deaktiviert, die CPU Mitigations deaktiviert, CPU-Pinning versucht, mal ohne LACP getestet, Direct-IO getestet, CoW auf dem Share getestet, etc. 

 

Spielt alles keine Rolle. Auch MTU nicht. Da holst du nur minimal mehr Speed mit raus.

 

1 hour ago, h0schi said:

Ebenfalls ist es so, dass beim Vorgang die CPU-Last unheimlich in die Höhe steigt.

 

Die im Unraid Dashboard zu sehen ist? Die enthält auch I/O Wait = hat nichts mit der eigentlichen CPU Last zu tun. Die reale Last siehst du nur, wenn du im Terminal "htop" ausführst.

 

1 hour ago, h0schi said:

Jemand eine Idee wie ich die CPU-Last senken kann und die Transferrate der HDDs steigern ?

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

 

Dazu zählt vor allem Punkt 3, also das Umgehen der Share-Pfade und damit das Umgehen vom SSHFS Overhead.

 

Du musst also wo es nur geht auf /mnt/user verzichten zB in dem du manuell einen SMB Share erstellst oder alle Docker Pfade auf /mnt/cache bzw /mnt/diskX umstellst. Die CPU Last sinkt dann um mindestens 50%.

  • Like 1
Link to comment

Ich nutze Lancache-Bundle  schon einige Zeit.

Dafür habe ich einen extra Cache-Pool angelegt, damit das Array nicht für den Game-Cache arbeiten muss. Z. B. bei kleinen Patches von Games würde das Array anspringen bzw. der Mover dieses wecken.

Und wenn diese Platte(n) mal flöten gehen, dann ist halt nur der Downloadcontet von den Games weg, aber das stört mich nicht wirklich.

Die CPU-Last steigt dabei schon etwas. Das liegt auch daran, dass die Games in viele kleine Pakete zuerlegt werden. Schau dir mal die Ordnerstrucktur von Lancache an.

So ist die Auslastung meiner CPU im Dashboard und vom Docker selbst.

 

image.thumb.png.10661db07b27e25aca255a1a0ad33a18.png

 

  • Like 1
Link to comment
  • 6 months later...

Zum Thema Lancache-Bundle / Unraid hätte ich auch noch ne - dumme ? - Frage . Ich verwende ebenfalls das Lancache-Bundle im Dockerbetrieb und bin mit der Performance bereits gecacheder 🙂 Files nicht zufrieden. Mehr wie 20MB/s bekomme ich nicht zustande. Da der "cache" Order auf einer WD-RED Hdd liegen denke ich, dass die Zugriffszeiten das Problem sind ( Steam und kleine Dateien... ). Kann ich das - ohne eine SSD kaufen zu müssen - ein wenig beschleunigen ?
 

Specs meines Systems:
CPU: I9100 ( CPU is langweilig )
RAM: 16Gb RAM
HDD: WD-Red 4TB
Cache SSD: Nicht vorhanden
Netzwerk: 1 Gbit ( Durchsatz bei SMB ist etwa 105MB/s )

VG, Mathias



 

Link to comment

Mal ne kleine Offtopic Frage nebenbei zu den Lancache Nutzern. Es läuft zwar alles, was ich zb über Steam runterladen über den Unraid Server, aber irgendwie habe ich das Gefühl, dass nicht wirklich auf den Cache zurückgegriffen wird.

Wenn ich zb ein Spiel am PC lade und danach am Steam Deck, wird dennoch immer aus dem Web runtergeladen.

Link to comment
57 minutes ago, sonic6 said:

Mal ne kleine Offtopic Frage nebenbei zu den Lancache Nutzern. Es läuft zwar alles, was ich zb über Steam runterladen über den Unraid Server, aber irgendwie habe ich das Gefühl, dass nicht wirklich auf den Cache zurückgegriffen wird.

Wenn ich zb ein Spiel am PC lade und danach am Steam Deck, wird dennoch immer aus dem Web runtergeladen.

Bei beiden der richtige DNS eingetragen und auch aktiv ? WINDOWS --> CMD -->  ipconfig /flushdns 
Beim Steamdeck hab ich keine Ahnung...

Link to comment
3 hours ago, elgatobavaria said:

Zum Thema Lancache-Bundle / Unraid hätte ich auch noch ne - dumme ? - Frage . Ich verwende ebenfalls das Lancache-Bundle im Dockerbetrieb und bin mit der Performance bereits gecacheder 🙂 Files nicht zufrieden. Mehr wie 20MB/s bekomme ich nicht zustande. Da der "cache" Order auf einer WD-RED Hdd liegen denke ich, dass die Zugriffszeiten das Problem sind ( Steam und kleine Dateien... ). Kann ich das - ohne eine SSD kaufen zu müssen - ein wenig beschleunigen ?
 

Specs meines Systems:
CPU: I9100 ( CPU is langweilig )
RAM: 16Gb RAM
HDD: WD-Red 4TB
Cache SSD: Nicht vorhanden
Netzwerk: 1 Gbit ( Durchsatz bei SMB ist etwa 105MB/s )

VG, Mathias



 

 

Du kannst mal den Slice-Size des "Lancache" Docker-Container (die Variable muss wahrscheinlich erst angelegt werden) erhöhen und versuchen ob es dadurch besser wird.

 

Vorsicht -> Dabei werden alle bereits gecachten Dateien unbrauchbar !

 

Ansonsten würd ich mal den Lösungsvorschlag von @mgutt oberhalb in dem Thread testen:

 

image.thumb.png.778e94a09b23e31c84760d2dae7c4eba.png

Edited by h0schi
Link to comment
2 hours ago, elgatobavaria said:

Bei beiden der richtige DNS eingetragen und auch aktiv ? WINDOWS --> CMD -->  ipconfig /flushdns

Wird keinen Einfluss haben, PC und Deck laden ja beide über den LANCache, welches ich am Up/Down-Stream vom Unraid Server sehe. Jeglicher Steam Traffic geht durch den Container... aber es wird immer komplett aus dem Netz geladen. Ich "dachte", wenn ich zb CS:GO lade, dann wird beim ersten mal aus dem Netz geladen und danach laden alle weiteren Clients aus dem Cache.

Link to comment
43 minutes ago, sonic6 said:

Wird keinen Einfluss haben, PC und Deck laden ja beide über den LANCache, welches ich am Up/Down-Stream vom Unraid Server sehe. Jeglicher Steam Traffic geht durch den Container... aber es wird immer komplett aus dem Netz geladen. Ich "dachte", wenn ich zb CS:GO lade, dann wird beim ersten mal aus dem Netz geladen und danach laden alle weiteren Clients aus dem Cache.

Ich habe zwar kein Steam Deck, aber so sollte es eigentlich sein.

Funktioniert hier bei uns mit 4 PCs ohne Probleme.

Wie sind denn deine Netzwerksettings beim Deck?

Wenn du da etwas lädst was du noch nicht am PC geladen hast, arbeiten dann deine Platte(n) und es wir was geschrieben?

Link to comment
2 hours ago, sonic6 said:

Wird keinen Einfluss haben, PC und Deck laden ja beide über den LANCache, welches ich am Up/Down-Stream vom Unraid Server sehe. Jeglicher Steam Traffic geht durch den Container... aber es wird immer komplett aus dem Netz geladen. Ich "dachte", wenn ich zb CS:GO lade, dann wird beim ersten mal aus dem Netz geladen und danach laden alle weiteren Clients aus dem Cache.

Prüf doch mal mit "du -sh" wie groß der cache ordner ist. Evtl. ist deine Konfiguration am Lancache falsch. Falls du z.B. lancache-bundle (https://github.com/Josh5/lancache-bundle) verwendest, darfst du bei den Einstellungen (siehe Bild) nicht "true" setzen. Sonst werden diese Streams ignoriert. (set true to disable)
--> Im unten angezeigten Fall speichert er Steam-Dateien im cache ab.

Der Stream-Traffic sollte nach meinem Verständnis so oder so durch den Container gehen. ( sonst könnte man ja mit dem Container nicht filtern... )

image.thumb.png.9dba8841e4e0258a87247dc421acd8f5.png

Link to comment
5 hours ago, h0schi said:

 

Du kannst mal den Slice-Size des "Lancache" Docker-Container (die Variable muss wahrscheinlich erst angelegt werden) erhöhen und versuchen ob es dadurch besser wird.

 

Vorsicht -> Dabei werden alle bereits gecachten Dateien unbrauchbar !

 

Ansonsten würd ich mal den Lösungsvorschlag von @mgutt oberhalb in dem Thread testen:

 

image.thumb.png.778e94a09b23e31c84760d2dae7c4eba.png

Ich probiere das gerade mal aus mit dem Cache-Slice 🙂 . 
Wie verhält sich lancache eigentlich im Bezug zu einer Unraid Cache SSD ? ( Ich hab leider noch keine, daher keine Ahnung )
Würde sich das z.B. bei einer LANparty positiv auswirken ?

Szenario:
LANcache ---> Schreibt auf /mnt/HDD1
HDD1 "nutzt" den Unraid Cache 
Mover schiebt nur alle 2 Tage die Daten
--> Daten müssten dann doch 2 Tage auf der Unraid Cache SSD liegen oder ? --> Somit wäre die respone beim lesen die 2 Tage schneller ?

Zuviele Fragen in meinem Kopf 🙂

Gruß Mathias




 

Link to comment
10 hours ago, mgutt said:

Wenn eine SSD vorhanden ist, wäre /mnt/cache noch mal schneller.

Naja so wie ich es verstanden habe soll der Share aber ja nicht cache only/prefer sein. Wenn dann also der Mover "sein Ding macht", findet lancache keine Daten mehr. Das wäre ja dann auch nicht zielführend.

Aber klar, wenn man etwas ausschließlich im Cache hat, wäre das natürlich das bevorzugte mapping

Link to comment
  • 1 year later...
On 7/28/2022 at 1:56 PM, sonic6 said:

Mal ne kleine Offtopic Frage nebenbei zu den Lancache Nutzern. Es läuft zwar alles, was ich zb über Steam runterladen über den Unraid Server, aber irgendwie habe ich das Gefühl, dass nicht wirklich auf den Cache zurückgegriffen wird.

Wenn ich zb ein Spiel am PC lade und danach am Steam Deck, wird dennoch immer aus dem Web runtergeladen.

Genau da liegt der Hund begraben. Steamdeck ist ein Linux System, ich nehme mal an dein Rechner läuft mit Windows. Deswegen brauchen sie zwei sehr verschiedene Versionen und somit bringt der Lancache leider nichts.

Link to comment
4 hours ago, Calco said:

Genau da liegt der Hund begraben. Steamdeck ist ein Linux System, ich nehme mal an dein Rechner läuft mit Windows. Deswegen brauchen sie zwei sehr verschiedene Versionen und somit bringt der Lancache leider nichts.

Die Aussage ist leider nicht ganz korrekt.

Einige Spiele sind als Windows und als Linux Version auf den Steam Content Servern hinterlegt.

Einige andere, wie zb die Spiele von Valve sind sogar so hinterlegt, dass sich nur verschiedene Pakete in Windows und Linux unterscheiden. Hier sind zb Grafiken, audio Daten etc die selben für Windows und Linux. Sprich wenn zb HL am Windows PC vorab geladen wird, ist der Großteil der Daten für Linux auch schon vorhanden.

Desweiteren wird beim Großteil der Spiele unter steamOS sowieso die Windows Version genutzt.

 

Mein (mittlerweile behobenes Problem) aus 2022 lag hier an meiner DNS.

 

Wer zb den LANcache-prefill nutzt, hat hier auch die Option auszuwählen für welche OS der LANcache die Daten vorabladen soll.

  • Like 1
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...