Verständnisfrage zum Cache (ARC)

bluefox

Dabbler
Joined
Feb 2, 2019
Messages
19
Hallo,

ich verstehe nicht, warum der Cache im RAM nicht automatisch geleert wird. Nach längerer Benutzung (durchschnittlich 1,5 Monate) von meinem Truenas System, bin ich dazu genötigt, einen Restart durchzuführen, um wieder mit voller Bandbreite zu übertragen?

Kann es sein, dass die verminderte Übertragungsgeschwindigkeit am vollen Cache liegt oder liege ich mit meiner Vermutung falsch? Die Geschwindigkeit für die Datenübertragung geht dann von 285 MB/s auf 155 MB/s runter. Also 285 MB/s, ist die maximale Datenübertragungsrate meiner Festplatten.

Also der ARC sollte, so weit ich es bisher verstanden habe, der ZFS Cache sein, dieser liegt im RAM. Aber normalerweise wird doch der Cache nur reserviert, im Dashboard wird halt dann angezeigt, dass 30 GB von 32 GB belegt sind, das müsste doch eigentlich dann keine Auswirkung auf die Übertragungsgeschwindigkeit haben?

Welche alternativen kommen sonst noch in Frage, was zum Drop der Geschwindigkeit führt, wie finde ich es heraus oder wo schaue ich am besten nach?

Ich würde mich sehr freuen, wenn mir das jemand erklären könnte. Danke im Voraus!
 

bluefox

Dabbler
Joined
Feb 2, 2019
Messages
19
Werden die Daten eigentlich während der Übertragung direkt auf die Platten geschrieben oder erst gechached und dann geschrieben bei TrueNAS, gibt es dazu eine Einstellung?
 

John Doe

Guru
Joined
Aug 16, 2011
Messages
635
hallo,

ich versuche mal mein wissen weiter zu geben mit dem freundlichen hinweis, dass ich nur leihe bin.

ich verstehe nicht, warum der Cache im RAM nicht automatisch geleert wird. Nach längerer Benutzung (durchschnittlich 1,5 Monate) von meinem Truenas System, bin ich dazu genötigt, einen Restart durchzuführen, um wieder mit voller Bandbreite zu übertragen?

Das betriebssystem sollte den cache "intelligent" füllen. Also informationen, die am häufigsten abgerufen werden/ größte wahrscheinlichkeit.
Wenn der jetzt immer geleert wird, gibt es keine informationen, die schnell verfügbar sind, darum sollte der cache immer gut gefüllt sein.

Kann es sein, dass die verminderte Übertragungsgeschwindigkeit am vollen Cache liegt oder liege ich mit meiner Vermutung falsch? Die Geschwindigkeit für die Datenübertragung geht dann von 285 MB/s auf 155 MB/s runter. Also 285 MB/s, ist die maximale Datenübertragungsrate meiner Festplatten.
Ich denke, deine vermutung ist teilweise richtig/falsch
Datenübertragung fängt beim sender an, geht in den TCP/IP stack, von dort aus in dem Ram ODER direkt auf die HDD (je nach einstellung) Üblicherweise haben die HDDs auch nochmal einen cache.

Truenas gibt die die möglichkeit für synchrone und asynchrone writes (direkt auf HDD/ in RAM,dann auf HDD)

Default wert bei Truenas sollte RAM->HDD sein.

Also der ARC sollte, so weit ich es bisher verstanden habe, der ZFS Cache sein, dieser liegt im RAM. Aber normalerweise wird doch der Cache nur reserviert, im Dashboard wird halt dann angezeigt, dass 30 GB von 32 GB belegt sind, das müsste doch eigentlich dann keine Auswirkung auf die Übertragungsgeschwindigkeit haben?

Sehe ich auch so



Kurzum; man hat hier einige potentielle möglichkeiten, sollte es dir zu langsam sein.
1) mehr ram
2) all SSD
3) SLOG/ZIL

der drop der datenrate kann mehrere gründe haben. Blöder NIC, senderseite zu lahm, empfängerseite zu lahm, angefangen beim cache der HDD bis zu zu wenig RAM. man müsste es wohl detailierter anschauen, bevor man neuen RAM oder sonst etwas kauft.
 

bluefox

Dabbler
Joined
Feb 2, 2019
Messages
19
Vielen lieben Dank für deine Antwort und Erklärungen!

Truenas gibt die die möglichkeit für synchrone und asynchrone writes (direkt auf HDD/ in RAM,dann auf HDD)
Wo finde ich die Einstellung?

Kurz noch zu meinem System: Intel Xeon mit 4 Kernen, 3.2 GHz, 32 GB RAM DDR3 und WD Gold Platten, welche mit 262 MB/s laut Datenblatt lesen können sollen.

Ob deine Vermutung mit dem Flaschenhals korrekt ist, zum Beispiel bei meinem Desktop, kann ich nicht gänzlich ausschließen, aber ich glaube nach einigen Speedtests, dass es hier zumindest keine Schwierigkeiten gibt.

Kurzum; man hat hier einige potentielle möglichkeiten, sollte es dir zu langsam sein.
1) mehr ram
2) all SSD
3) SLOG/ZIL
Ich denke, dass du mit mehr RAM recht haben könntest, ich hatte gehofft, mit 32 GB, bin ich noch auf der sicheren Seite, um ein dauerhaft performantes System zu fahren.

Was ist SLOG/ZIL, bzw. was sollte ich hier anders machen oder besser gefragt, was ist dabei der beste Weg?


Inzwischen habe ich auch mal versucht, meine HDDS zu testen, die beiden WD Gold Platten scheinen wirklich nicht 100 %ig synchron zu sein, aber immerhin scheint es dort kein sichtbares oder schwerwiegendes Problem zu geben.

Code:
root@truenas[~]# diskinfo -t /dev/ada1
/dev/ada1
        512             # sectorsize
        10000831348736  # mediasize in bytes (9.1T)
        19532873728     # mediasize in sectors
        4096            # stripesize
        0               # stripeoffset
        19377850        # Cylinders according to firmware.
        16              # Heads according to firmware.
        63              # Sectors according to firmware.
        WDC WD102KRYZ-01A5AB0   # Disk descr.
        VCJ46WTP        # Disk ident.
        id1,enc@n3061686369656d30/type@0/slot@2/elmdesc@Slot_01 # Physical path
        No              # TRIM/UNMAP support
        7200            # Rotation rate in RPM
        Not_Zoned       # Zone Mode

Seek times:
        Full stroke:      250 iter in   4.746339 sec =   18.985 msec
        Half stroke:      250 iter in   3.462222 sec =   13.849 msec
        Quarter stroke:   500 iter in   5.609678 sec =   11.219 msec
        Short forward:    400 iter in   1.638980 sec =    4.097 msec
        Short backward:   400 iter in   2.621410 sec =    6.554 msec
        Seq outer:       2048 iter in   0.077521 sec =    0.038 msec
        Seq inner:       2048 iter in   0.140612 sec =    0.069 msec

Transfer rates:
        outside:       102400 kbytes in   0.378588 sec =   270479 kbytes/sec
        middle:        102400 kbytes in   0.448702 sec =   228214 kbytes/sec
        inside:        102400 kbytes in   0.767902 sec =   133350 kbytes/sec

root@truenas[~]# diskinfo -t /dev/ada0
/dev/ada0
        512             # sectorsize
        10000831348736  # mediasize in bytes (9.1T)
        19532873728     # mediasize in sectors
        4096            # stripesize
        0               # stripeoffset
        19377850        # Cylinders according to firmware.
        16              # Heads according to firmware.
        63              # Sectors according to firmware.
        WDC WD102KRYZ-01A5AB0   # Disk descr.
        VCJ4HB4P        # Disk ident.
        id1,enc@n3061686369656d30/type@0/slot@1/elmdesc@Slot_00 # Physical path
        No              # TRIM/UNMAP support
        7200            # Rotation rate in RPM
        Not_Zoned       # Zone Mode

Seek times:
        Full stroke:      250 iter in   4.736249 sec =   18.945 msec
        Half stroke:      250 iter in   3.441130 sec =   13.765 msec
        Quarter stroke:   500 iter in   5.532694 sec =   11.065 msec
        Short forward:    400 iter in   0.976248 sec =    2.441 msec
        Short backward:   400 iter in   1.974928 sec =    4.937 msec
        Seq outer:       2048 iter in   0.072904 sec =    0.036 msec
        Seq inner:       2048 iter in   0.150423 sec =    0.073 msec

Transfer rates:
        outside:       102400 kbytes in   0.395896 sec =   258654 kbytes/sec
        middle:        102400 kbytes in   0.472433 sec =   216750 kbytes/sec
        inside:        102400 kbytes in   0.813610 sec =   125859 kbytes/sec

root@truenas[~]# diskinfo -t /dev/ada0
/dev/ada0
        512             # sectorsize
        10000831348736  # mediasize in bytes (9.1T)
        19532873728     # mediasize in sectors
        4096            # stripesize
        0               # stripeoffset
        19377850        # Cylinders according to firmware.
        16              # Heads according to firmware.
        63              # Sectors according to firmware.
        WDC WD102KRYZ-01A5AB0   # Disk descr.
        VCJ4HB4P        # Disk ident.
        id1,enc@n3061686369656d30/type@0/slot@1/elmdesc@Slot_00 # Physical path
        No              # TRIM/UNMAP support
        7200            # Rotation rate in RPM
        Not_Zoned       # Zone Mode

Seek times:
        Full stroke:      250 iter in   4.706663 sec =   18.827 msec
        Half stroke:      250 iter in   3.449569 sec =   13.798 msec
        Quarter stroke:   500 iter in   3.777810 sec =    7.556 msec
        Short forward:    400 iter in   0.805720 sec =    2.014 msec
        Short backward:   400 iter in   0.859965 sec =    2.150 msec
        Seq outer:       2048 iter in   0.132934 sec =    0.065 msec
        Seq inner:       2048 iter in   0.131939 sec =    0.064 msec

Transfer rates:
        outside:       102400 kbytes in   0.420916 sec =   243279 kbytes/sec
        middle:        102400 kbytes in   0.475851 sec =   215193 kbytes/sec
        inside:        102400 kbytes in   0.808277 sec =   126689 kbytes/sec

root@truenas[~]# diskinfo -t /dev/ada1
/dev/ada1
        512             # sectorsize
        10000831348736  # mediasize in bytes (9.1T)
        19532873728     # mediasize in sectors
        4096            # stripesize
        0               # stripeoffset
        19377850        # Cylinders according to firmware.
        16              # Heads according to firmware.
        63              # Sectors according to firmware.
        WDC WD102KRYZ-01A5AB0   # Disk descr.
        VCJ46WTP        # Disk ident.
        id1,enc@n3061686369656d30/type@0/slot@2/elmdesc@Slot_01 # Physical path
        No              # TRIM/UNMAP support
        7200            # Rotation rate in RPM
        Not_Zoned       # Zone Mode

Seek times:
        Full stroke:      250 iter in   4.739219 sec =   18.957 msec
        Half stroke:      250 iter in   3.477210 sec =   13.909 msec
        Quarter stroke:   500 iter in   4.256569 sec =    8.513 msec
        Short forward:    400 iter in   0.826610 sec =    2.067 msec
        Short backward:   400 iter in   0.823626 sec =    2.059 msec
        Seq outer:       2048 iter in   0.076537 sec =    0.037 msec
        Seq inner:       2048 iter in   0.150468 sec =    0.073 msec

Transfer rates:
        outside:       102400 kbytes in   0.368029 sec =   278239 kbytes/sec
        middle:        102400 kbytes in   0.451376 sec =   226862 kbytes/sec
        inside:        102400 kbytes in   0.769620 sec =   133053 kbytes/sec

root@truenas[~]# diskinfo -t /dev/ada3
/dev/ada3
        512             # sectorsize
        4000787030016   # mediasize in bytes (3.6T)
        7814037168      # mediasize in sectors
        4096            # stripesize
        0               # stripeoffset
        7752021         # Cylinders according to firmware.
        16              # Heads according to firmware.
        63              # Sectors according to firmware.
        WDC WD40EZRZ-00GXCB0    # Disk descr.
        WD-WCC7K1DT39XU # Disk ident.
        id1,enc@n3061686369656d30/type@0/slot@4/elmdesc@Slot_03 # Physical path
        No              # TRIM/UNMAP support
        5400            # Rotation rate in RPM
        Not_Zoned       # Zone Mode

Seek times:
        Full stroke:      250 iter in   7.263068 sec =   29.052 msec
        Half stroke:      250 iter in   5.181355 sec =   20.725 msec
        Quarter stroke:   500 iter in   8.005192 sec =   16.010 msec
        Short forward:    400 iter in   3.450856 sec =    8.627 msec
        Short backward:   400 iter in   1.980941 sec =    4.952 msec
        Seq outer:       2048 iter in   0.264439 sec =    0.129 msec
        Seq inner:       2048 iter in   0.171052 sec =    0.084 msec

Transfer rates:
        outside:       102400 kbytes in   0.607114 sec =   168667 kbytes/sec
        middle:        102400 kbytes in   0.671513 sec =   152491 kbytes/sec
        inside:        102400 kbytes in   1.269531 sec =    80660 kbytes/sec

root@truenas[~]# diskinfo -t /dev/ada2
/dev/ada2
        512             # sectorsize
        4000787030016   # mediasize in bytes (3.6T)
        7814037168      # mediasize in sectors
        4096            # stripesize
        0               # stripeoffset
        7752021         # Cylinders according to firmware.
        16              # Heads according to firmware.
        63              # Sectors according to firmware.
        WDC WD40EZRZ-00GXCB0    # Disk descr.
        WD-WCC7K6RLF34K # Disk ident.
        id1,enc@n3061686369656d30/type@0/slot@3/elmdesc@Slot_02 # Physical path
        No              # TRIM/UNMAP support
        5400            # Rotation rate in RPM
        Not_Zoned       # Zone Mode

Seek times:
        Full stroke:      250 iter in   6.785191 sec =   27.141 msec
        Half stroke:      250 iter in   4.692433 sec =   18.770 msec
        Quarter stroke:   500 iter in   7.962148 sec =   15.924 msec
        Short forward:    400 iter in   3.579203 sec =    8.948 msec
        Short backward:   400 iter in   1.751124 sec =    4.378 msec
        Seq outer:       2048 iter in   0.165603 sec =    0.081 msec
        Seq inner:       2048 iter in   0.158737 sec =    0.078 msec

Transfer rates:
        outside:       102400 kbytes in   0.593012 sec =   172678 kbytes/sec
        middle:        102400 kbytes in   0.676915 sec =   151275 kbytes/sec
        inside:        102400 kbytes in   1.150115 sec =    89035 kbytes/sec
 
Last edited:

John Doe

Guru
Joined
Aug 16, 2011
Messages
635
gibt zu ZIL/SLOG viel zum lesen, einfach mal googeln
hier eine ganz gute übersicht

eine alternative dazu könnte auch ein pool mit nur SSDs zu sein, für schnelle daten und halt HDDs als grab.

schau mal ob, ob noch der ein oder andere Guru hier ausm forum etwas korrigieren/ zusätzliche hinweise hat
 

bluefox

Dabbler
Joined
Feb 2, 2019
Messages
19
Danke vielmals! Ich werde es mir ansehen.

Die Sache ist halt auch, dass damals unter Freenas, das gleiche System mit nur 16 GB RAM durchgehend lief und ich dort keine Drops nach 2- 3 Monaten bei der Datenübertragung feststellen konnte.

eine alternative dazu könnte auch ein pool mit nur SSDs zu sein, für schnelle daten und halt HDDs als grab.
Das werde ich in naher Zukunft auch in Erwägung ziehen, Danke für den Tipp.

Wenn noch jemand eine Idee hat hier im Form, wäre das super.
 

bluefox

Dabbler
Joined
Feb 2, 2019
Messages
19
Gibt es Möglichkeiten, den Cache von ZFS zu limitieren? Meine Idee basiert darauf, das der RAM aufgeteilt wird, in ZFS und System, wenn jetzt der ZFS Cache voll ist, könnte das doch die Übertragungsrate beeinflussen? Das würde ich gerne testen, jemand einen Vorschlag wie ich vorgehen soll?
 
Top