Was ist shfs?


guybrush2012
Go to solution Solved by ich777,

Recommended Posts

23 minutes ago, guybrush2012 said:

Die CPU Auslastung geht dadurch auch im Leerlauf ständig auf 50% hoch.

Bei den normalen Shares (nicht Diskshares) verbindet unraid ja alle Datenträger um das Share übergreifend (auf den Datenträgern als oberstes Unterverzeichnis) anzulegen/auszulesen.

Sobald im Netzwerk oder auch unraid intern also irgendein Prozess nach den Shares schaut  muß unraid entweder von den Disks lesend oder aus seinem Ram/Cache/SSD Puffer... die Datei-/weiteren Unterverzeichnisnamen zusammenkratzen um es dann simuliert als Inhalt eines einzigen Share anzeigen zu können.

Und leider schluckt das eben mal kurz einiges an Rechenleistung, wenn unraid sporadisch alle gemerkten/gefundenen Dateinamen und Unterverzeichnisnamen im Speicher sortieren, geeignet zusammenführen und dann weiter melden muß.

 

Leicht hinkender Vergleich:

Wie einfach wäre es bei Dir als Mensch auch nur 50 unsortierte Namen aus (5 vergilbten) Telefonbüchern und 5 Telefonzellen nach Strassennamen und dann alphabetisch sortiert aufzulisten? Das kostet schon einige Mühe.

Und das bei jeder Anfrage aus dem Netzwerk/unraid selber  neu, da sich ja jederzeit durch ein Programm oder Schreibzugriff auf dem Array/Pool etwas verändert haben könnte (oder um bei den Telefonbüchern zu bleiben: jederzeit ein böser Bube/Mädl eine Seite rausgerissen und zerknuellt haben könnte :) ).

 

Weil dieses Sortieren und Auflisten und im Ram sortieren+merken... eben einiges an CPU Power beansprucht werden ja die Diskshares als Alternative ermöglicht.

Nachteil: damit fasst unraid eben nicht mehr datenträgerübergreifend Verzeichnisse zusammen.

 

...zumindest so glaube ich nun nach >1,5 Jahren das unraid Sharesystem verstanden zu haben.

Edited by DataCollector
Typos
Link to comment
  • Solution
1 hour ago, guybrush2012 said:

Die CPU Auslastung geht dadurch auch im Leerlauf ständig auf 50% hoch.

Du kannst das meistens vermeiden wenn du in den Einstellungen für Docker und VMs den richtigen Pfad zu den Verzeichnissen bzw. Images angibst, statt /mnt/user/... (FUSE Pfad) gibst du einfach beispielsweise /mnt/cache/... (je nachdem wo die Dateien/Verzeichnisse wirklich liegen) an.

 

Mit diesem Umweg vermeidest du das shfs gebraucht wird.

  • Like 2
Link to comment
8 hours ago, guybrush2012 said:

Die CPU Auslastung geht dadurch auch im Leerlauf ständig auf 50% hoch.

 

was aber nicht unbedingt groß was zu heißen hat, gerade nicht bei dem Prozess.

Prüf deine Temps und/oder Stromverbrauch ob da auch peaks sind.

 

7 hours ago, ich777 said:

Mit diesem Umweg vermeidest du das shfs gebraucht wird.

so kannst du das aushebeln, noch zu beachten wäre hier

 

auch die generellen Share Einstellungen dann beachten, sowie der mover verschieben sollte auf disk1, 2, 3, ... und der docker dann nichts mehr findet (da direkt auf cache gezeigt wird) dann ist das Thema cache bevorzugt besser abzuschalten für die betroffenen shares, Bsp. appdata, sonst legt der docker "doppelt" an oder schmiert ab ;)

  • Like 1
Link to comment

Danke für die Hinweise.

 

Nachdem ich die Docker/Pfade sowie in den Container die ssd direkt anspreche und nicht mehr über den Pfad /mnt/user sind die peaks bei shfs nur noch 5-6 CPU.

Ich musste natürlich bei jedem Container selbst hand anlegen von /mnt/user zu /mnt/ssd_cache/ aber es hat sich gelohnt.


Vorher hatte ich manchmal sogar CPU Peaks von 80-90%, wenn docker viel geschrieben hat oder alle docker Container gestartet/beendet wurden.
Die Peaks waren beim Verbrauch bemerkbar.

Beende ich jetzt den Docker Dienst, verhält sich shfs genauso wie wenn die ganzen Docker container laufen.  😁

 

Gibt es noch möglichkeiten diesen Wert weiter zu senken? 🙈

Edit: Braucht nicht weiter senken. Ist mittlerweile sooo niedrig 😁

Edited by guybrush2012
  • Like 1
Link to comment
25 minutes ago, guybrush2012 said:

Gibt es noch möglichkeiten diesen Wert weiter zu senken? 🙈

Was willst du jetzt noch weiter senken?

 

Die einzige Lösung die mir jetzt einfällt wäre das du keine Container laufen lässt... :D:P

 

Jetzt mal ernst...

Wenn du den Docker Dienst startest braucht das Leistung und verbraucht somit Strom, genau so wie wenn du einen Container startest bzw. auch beim stoppen da dieser die Applikation innerhalb vom Container starten bzw. beenden muss. Vergiss auch nicht das die Applikation (bzw. manchmal auch mehrere) im Container auch läuft und vermutlich manchmal mehr macht als nur im Idle zu sein und mehr Leistung, dadurch resultierend auch mehr Strom braucht.

 

Was du evtl. noch machen kannst ist die Option:

--no-healthcheck

in die Extra Parameters der jeweiligen Container eintragen (mit Advanced View an das du die Zeile Extra Parameters siehst) damit verhinderst du zB evtl. weiteres schreiben auf die Platten wenn der Container denn einen Healthcheck eingebaut hat (keiner von meinen Containern beispielsweise hat einen eingebaut und somit bringt die Option bei meinen Containern nicht viel), ob das jedoch wirklich Strom spart ist fraglich...

 

25 minutes ago, guybrush2012 said:

Beende ich jetzt den Docker Dienst, verhält sich shfs genauso wie wenn die ganzen Docker container laufen.  😁

Dann schreibt oder liest vermutlich irgendwo was von /mnt/user/... und shfs erzeugt wie jede andere Applikation auch ein wenig Last, vergiss auch nicht die muss alles im Dateisystem zusammenfassen und das ist ganz normal.

 

Ich weiß auch nicht was du für ein System hast also ist 5-6% relativ, das kann aber auch durchaus I/O wait sein und das ist dann nicht wirklich last sondern wird nur als Last angezeigt erzeugt aber in Wirklichkeit keine oder besser gesagt verbraucht wegen dem nicht mehr Strom.

Link to comment
On 1/12/2023 at 10:15 AM, guybrush2012 said:

Gibt es noch möglichkeiten diesen Wert weiter zu senken? 🙈

Ja, es gibt noch in den Dockereinstellungen /mnt/user und in den VM Einstellungen

 

Bedenke aber, dass du durch Umstellung auf /mnt/cache oder /mnt/diskX keine Cache Regeln mehr hast. Läuft der Cache voll und du nutzt Prefer, greift diese Regel nicht und der Cache wird zu 100% beschrieben und der Container schmiert evtl ab. Aus dem Grund empfehle ich bei allen Shares und Datenträgern den min space zu definieren (auch der greift nur bei /mnt/user was aber unser Ziel ist, wenn User über das Netzwerk Dateien hochladen).

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