Jump to content

Woher kommt die hohe Cache Auslastung?


RichardIstSauer

Recommended Posts

Hallo ich habe plötzlich eine unerklärlich hohe Cache Auslastung. Woher kann das kommen?

 

image.png.94a0936d2b2b1afc641181228c3056e4.png 

 

 

Ich habe daraufhin den Cache als Pfad /media bei Krusader gemountet und die Disk Usage ermitteln lassen. Allerdings kommen nur 68GB raus. Wo können die anderen 27GB herkommen?

 

image.png.9f3491500287c66a4463f91dad05f4c5.png

 

 

Dann hab ich alle Docker und VM's heruntergefahren und die Dienste beendet. Daraufhin habe ich den Mover gestartet allerdings auch nichts bei rum gekommen

 

image.png.5c102bf8fbcacfe283874d46232ca556.png

 

Vielen Dank für die Hilfe!

Edited by RichardIstSauer
Link to comment

Subvolumes gibt es aber keine oder?

btrfs subvolume list /mnt/cache

 

Und es liegt auch nichts unsichtbares auf dem Cache?

ls -lah /mnt/cache

 

Weil das "used" in Höhe von 87GiB irritiert mich. Wobei es bekannt ist, dass die Standard Linux Tools mit BTRFS nicht klar kommen. Daher gibt es df und du auch extra für BTRFS:

btrfs filesystem du -sh /mnt/cache/*

 

Allerdings ist es eigentlich andersherum. Also das normale du zeigt mehr an, weil es mit den Snapshots nicht klar kommt und daher Dateien doppelt zählt. Bei dir ist es aber andersherum?!

Link to comment
58 minutes ago, RichardIstSauer said:

Woran sehe ich das denn?

 

Hättest du dann gesehen. Ist aber nichts da.

 

58 minutes ago, RichardIstSauer said:
1 hour ago, mgutt said:
btrfs filesystem du -s /mnt/cache/*

 

 

Dann ist es einfach klassisch die Differenz zwischen "du" und "df". "du" addiert alle Dateigrößen und "df" schaut einfach nur in den Superblock des Dateisystems. Das Dateisystem kann durchaus reservierte Datenblöcke enthalten, die gar nicht real als Datei vorhanden sind.

 

Manchmal hängen zB Dateien im Löschzustand fest, was man zB so ermitteln kann:

lsof +L1

 

Falls da nichts auf /mnt dabei ist, wird es das aber nicht sein.

 

 

Eventuell wurden gelöschte subvolumes nicht ordentlich entfernt (durch Docker), dann mal das versuchen:

btrfs filesystem sync /mnt/cache

 

Oder vielleicht werden mehr Datenblöcke belegt als eigentlich notwendig, so dass eine Defragmentierung hilft:

btrfs filesystem defragment -rvf /mnt/cache

 

Ich bin mir aber gerade nicht sicher, ob das auch die "Chunks" bei BTRFS aufräumt. Mach danach auf jeden Fall noch mal das und schau ob sich "total" verkleinert hat:

btrfs filesystem df /mnt/cache

 

Wenn nicht, dann musst du einen balance machen. Keine Ahnung was Unraid für einen Wert nutzt, aber probiere es mal so:

btrfs balance start -dusage=85 /mnt/cache

 

Damit sollte sich "total" verkleinern, allerdings ist dein Problem ja eigentlich, dass "used" schon viel zu viel belegt. Daher bin ich aktuell echt überfragt.

  • Like 1
Link to comment
1 hour ago, mgutt said:
btrfs filesystem defragment -rvf /mnt/cache

Hat geklappt es war aber lange an der Home Assisant VM beschäftigt "/mnt/domains/haos_ova-6.2.qcow2".

 

1 hour ago, mgutt said:
btrfs balance start -dusage=85 /mnt/cache

Danach ist die Auslastung auch nochmal 2-3GB zurückgegangen.

 

image.png.d2ec65953a26afa5fd0406933be52b02.png

 

image.png.51e76bd13d9eb79ac172f3582560de8b.png

 

Jetzt gibt es leider aber immernoch eine kleine Differenz und woran könnte das überhaupt gelegen haben?

Edited by RichardIstSauer
Link to comment
53 minutes ago, RichardIstSauer said:

Hat geklappt

Ok. Gut zu wissen, dass man bei BTRFS also defragmentieren muss, obwohl man SSDs hat ^^

 

53 minutes ago, RichardIstSauer said:

Danach ist die Auslastung auch nochmal 2-3GB zurückgegangen.

Das hat aber nur "total" verkleinert und nicht "used" oder?

 

54 minutes ago, RichardIstSauer said:

Jetzt gibt es leider aber immernoch eine kleine Differenz

Denk dran, dass die Metadaten alleine 2GB belegen und dies auch im RAID1.

 

55 minutes ago, RichardIstSauer said:

woran könnte das überhaupt gelegen haben?

Bei BTRFS steige ich da nicht ganz durch, aber es liegt wohl an dem Copy on Write. Da werden dann bei Änderungen der Daten nicht in die selben, sondern in neue Datenblöcke geschrieben:

https://en.wikipedia.org/wiki/Copy-on-write#In_computer_storage

Quote

Copy-on-write or COW: when a write request is made, the data are copied into a new storage area, and then the original data are modified.

 

Und ich denke mal, dass die bisher verwendeten Bereiche erst durch die Defragmentierung so richtig frei werden. Aber studiert habe ich BTRFS jetzt auch nicht 😅

  • Like 1
Link to comment
1 hour ago, RichardIstSauer said:

Ich werde daraus noch nicht schlau.

 

Handelt es sich um 6.9.2 oder 6.10-RCx? Abhängig davon würde ich ggfs. im General Support bzw. Prerelease Forum nachfragen.

 

Ich persönlich mache einen großen Bogen um BTRFS, erinnere mich aber an einige alte Posts die von nicht erklärbaren BTRFS Angaben handelten. Ggfs. ist das mittlerweile Geschichte, nachfragen schadet aber nicht.

 

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