NFS Schreibgeschwindigkeit CPU

  • Hallo Zusammen


    Ich habe bei mir ein QNAP TS-1232XU im Einsatz. Das NAS ist mit 10Gbit Glasfaser an einen Switch verbunden.

    Am Switch ist ebenfalls ein Server (Ubuntu 18.04) mit 10Gbit angeschlossen.

    Der MTU-Wert wurde auf 9000 (Jumbo Frames) festgesetzt.


    Auf dem QNAP ist ein Volume mit RAID5 mit 3x 2TB SSDs konfiguriert. Ausserdem hat das NAS mittels PCI-Erweiterung zwei NVMe SSDs installiert, die als Cache für das Volume dienen sollen. Vorerst ist dieser Cache aber noch deaktiviert.

    Das Volume ist mit dem Server via NFS verbunden. Die folgenden Mount-Optionen werden momentan verwendet:


    Code
    192.168.16.30:/vol1 on /nfs/vol1 type nfs4 (rw,noatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.16.33,local_lock=none,addr=192.168.16.30)


    Nun habe ich die Geschwindigkeit getestet. Lesend ist diese super (ca. 9 Gbit Datenübertragung gemessen). Schreibend ist die Übertragungsrate jedoch etwas bescheiden. Mehr als 3 Gbit bekomme ich nicht hin.


    Kann man eventuell noch etwas an den Mount-Optionen schrauben, um die schreibende Geschwindigkeit zu erhöhen?

    Auf dem NAS habe ich gesehen, dass bei einem Schreibvorgang fast genau 50% der CPU durch die NFS-Dienste ausgelastet sind. Daher nehme ich an, dass dies der limitierende Faktor ist. Im NAS ist eine Quadcore-CPU verbaut. Ist es möglich, das noch zu optimieren?

    Ich finde es auch komisch, dass der Schreibvorgang so viel mehr CPU-Last auf dem QNAP NAS verursacht. Kann sich das jemand erklären?


    Vielen Dank bereits im Voraus für alle Vorschläge.


    Viele Grüsse

    Marco

  • Schon mal daran gedacht, dass je nach SSD-Modell diese schneller lesen als schreiben können? Um welche SSDs handelt es sich denn?

    Es hängt auch sehr stark davon ab was kopiert wird, eine große Datei oder mehrere kleine.

    Je nach Größe der Datei kann auch der Cache noch hineinspielen. Kopier mal eine große Filmdatei, so 20 GB zum Testen.

    Kopierst Du vom zum NAS vom Ubuntu Server?

  • Hallo Mavalok2

    Danke für deine Antwort.

    Schon mal daran gedacht, dass je nach SSD-Modell diese schneller lesen als schreiben können? Um welche SSDs handelt es sich denn?

    Mod: Zitat ohne Quellenangabe ... korrigiert! :handbuch::arrow: Die Zitat Funktion des Forums richtig nutzen

    Ja, natürlich. Ich setze im NAS 3 Stück Samsung SSD 860 Evo 2TB ein. Diese bringen schreibend sowie lesend ca 500MB/s.

    Es hängt auch sehr stark davon ab was kopiert wird, eine große Datei oder mehrere kleine.

    Je nach Größe der Datei kann auch der Cache noch hineinspielen. Kopier mal eine große Filmdatei, so 20 GB zum Testen.

    Mod: Zitat ohne Quellenangabe ... korrigiert! :handbuch::arrow: Die Zitat Funktion des Forums richtig nutzen

    Ich habe den Test bereits mit einer grossen Datei durchgeführt (ca 10GB).

    Mit dem Cache habe ich etwas experimentiert. Mit der Option noac (kein Cache) wird die Upload-Performance jedoch nochmals schlechter.

    Kopierst Du vom zum NAS vom Ubuntu Server?

    Mod: Zitat ohne Quellenangabe ... korrigiert! :handbuch::arrow: Die Zitat Funktion des Forums richtig nutzen

    Ich kopiere auf beide Seiten. Langsam ist es jedoch, wenn ich etwas vom Server auf das NAS uploade.

    Auf dem Server sehe ich während dem kopieren keinen Engpass. Ich habe extra für das kopieren der Datei eine Ramdisk anegelegt, um zu vermeiden dass der Test durch die lokale HDD des Servers verfälscht wird.

    Das einzige was mir aufgefallen ist war eben die 50% CPU-Nutzung auf dem NAS.

    Meinst du dass dies der Flaschenhals sein könnte?

  • diese arm cpu sind jetzt nicht wirkliche schwergewichte in punkto cpu .. wenn 50% erreicht ist (dual core?) dann ist das der limierende faktor

  • Ist ein 64bit AnnapurnaLabs Alpine AL-324 ARM® Cortex-A57 quad-core 1.7GHz processor. Da steckt in manchem Handy was stärkeres. :) Aber ob dies der limitierende Faktor ist?:/

    Ich setze im NAS 3 Stück Samsung SSD 860 Evo 2TB ein. Diese bringen schreibend sowie lesend ca 500MB/s.

    Hast recht. Sie ist zwar langsamer beim Schreiben, sollte aber in diesem Fall nicht ins Gewicht fallen. :)


    Tendenziell ist NFS meiner Erfahrung nach schneller und resourcenschonender, aber hast Du es trotzdem mal mit SMB versucht?

  • Tendenziell ist NFS meiner Erfahrung nach schneller und resourcenschonender, aber hast Du es trotzdem mal mit SMB versucht?

    Mod: Zitat ohne Quellenangabe ... korrigiert! :handbuch::arrow: Die Zitat Funktion des Forums richtig nutzen

    Ich dachte mir auch das NFS schneller sein sollte wie SMB.

    Ich habs vorher mal mit SMB versucht. Auch dort ist der Download vom NAS sehr schnell mit ca 8-9 Gbit. Der Upload bricht dann auch wieder ein auf ca. 3.2 Gbit. SMB ist im Vergleich zu NFS etwas schneller.

    Da ich das NAS zur Storageanbindung für Virtualisierung verwenden möchte, ziehe ich das NFS-Protokoll SMB vor. Aus meiner Erfahrung ist NFS dafür besser geeignet.


    diese arm cpu sind jetzt nicht wirkliche schwergewichte in punkto cpu .. wenn 50% erreicht ist (dual core?) dann ist das der limierende faktor

    Ist ein 64bit AnnapurnaLabs Alpine AL-324 ARM® Cortex-A57 quad-core 1.7GHz processor. Da steckt in manchem Handy was stärkeres. :) Aber ob dies der limitierende Faktor ist? :/


    Wie von Mavalok2 geschrieben ist es ein 4-Core Prozessor. Wenn der NFS-Dienst wirklich nur einen Core nutzen würde wäre bei 25% Schluss.

    Ich bin mir jedoch nicht sicher ob die CPU eine Hyperthreading Technologie wie bei Intel CPUs nutzt. Über die CPU finde ich im Internet aber leider keine genauen technischen Daten.



    EDIT:


    Ich habe gerade noch auf der Spezifikationsseite von QNAP nachgeschaut.

    https://www.qnap.com/en/product/ts-1232xu


    Hier hat QNAP einen Test mit einem Windows 10 System durchgeführt. Dabei wurde auch SMB verwendet und QNAP hat 689MB/s Upload sowie 2060MB/s Download erreicht.

    Da wäre bei meinem Upload-Test noch einiges an Luft nach oben.



    Die verwendete Testumgebung ist eigentlich gut mit meiner vergleichbar:

    Tested in QNAP Labs. Figures may vary by environment.
    Test environment:
    NAS: TS-1232XU with QTS 4.3.4
    Disk group: RAID 5; 12 x Intel SSDSC2BB240G4
    Client PC: Windows 10, Intel Core i7-4700 3.4 GHz, 16GB RAM, Mellanox ConnectX®-3 Pro 10GbE NICs, MTU 9000

    Einmal editiert, zuletzt von rauppe31 ()

  • Da ich das NAS zur Storageanbindung für Virtualisierung verwenden möchte,

    Dann wäre iSCSI auch noch eine Möglichkeit. Allerdings haben meine Tests mit sehr schwacher CPU noch schlechtere Werte als NFS und SMB ergeben. :(

  • Dann wäre iSCSI auch noch eine Möglichkeit. Allerdings haben meine Tests mit sehr schwacher CPU noch schlechtere Werte als NFS und SMB ergeben. :(

    Ich habe in einer anderen Umgebung noch ein QNAP TS-932X im Einsatz. Dieses NAS nutzt dieselbe CPU.

    Dort verwende ich iSCSI für die Anbindung. Ich habe gerade einen Test durchgeführt. Sowohl schreibend wie auch lesend ist das Limit bei ca. 2 Gbit.

    Die CPU-Nutzung liegt bei etwa 25% (dort ist wohl wirklich der CPU-Core das Limit).


    Könnte es sein dass ich mit LACP und zwei parallelen Uploads eine bessere Uploadrate erhalte? Denn momentan habe ich ziemlich genau die Hälfte der Geschwindigkeit, die von QNAP angegeben wurde.


    Ich denke dass ich sicher noch ein Ticket bei QNAP öffnen werde um nachzufragen,

  • Hier hat QNAP einen Test mit einem Windows 10 System durchgeführt. Dabei wurde auch SMB verwendet und QNAP hat 689MB/s Upload sowie 2060MB/s Download erreicht.

    Da wäre bei meinem Upload-Test noch einiges an Luft nach oben.

    Diese Test sind immer mit Vorsicht zu genießen .. und oft sehr weit am "Real Life" vorbei


    Im englischen Forum gibt immer wieder Leute die sich diese ARM unit kaufen und dann enttäuscht von der Leistung sind.


    w.g. CPU last kannste ja mal "top" via SSH bemühen und gucken was so an der CPU saugt, es könnten ja mehrere ausgelastete Threads sein

    - MD-RAID5 (CPU 0)

    - NFS service (CPU1)

  • Diese Test sind immer mit Vorsicht zu genießen .. und oft sehr weit am "Real Life" vorbei


    Im englischen Forum gibt immer wieder Leute die sich diese ARM unit kaufen und dann enttäuscht von der Leistung sind.

    Da hast du natürlich völlig recht.


    w.g. CPU last kannste ja mal "top" via SSH bemühen und gucken was so an der CPU saugt, es könnten ja mehrere ausgelastete Threads sein

    - MD-RAID5 (CPU 0)

    - NFS service (CPU1)

    Ich habe das vorher bereits mal mit top beobachtet. Die Ausgabe während einem Upload hänge ich mal als Bild an.

    Vom nfsd gibt es gesamt 32 Threads, auf die die Last aufgeteilt wird. Daher ist das ganze nicht so übersichtlich. Der mdraid-Prozess verbraucht nur ca. 2% der CPU.

    Bildschirmfoto 2020-01-03 um 18.09.29.png

  • Schon mal mit den MTU-Werten gespielt? Vielleicht ist weniger mehr. Bzw. sind bei allen betroffenen Geräten Server, NAS, Switch die selben Werte?

  • Ja, am Anfang hatte ich den MTU auf 1500 (Standard). Ich hatte mir durch die Erhöhung auf 9000 erhofft, dass die CPU des NAS weniger Overhead bearbeiten muss und daher mehr Bandbreite durchgeht. Das war aber nur minimal der Fall.


    Der neue MTU-Wert ist auf allen Geräten (NAS, Server, Switch) eingestellt und funktioniert so auch. Mittels iperf3 erhalte ich höhere Bandbreiten als vorher.

  • Mittels iperf3 erhalte ich höhere Bandbreiten als vorher.

    Dann liegt es mal nicht am Netzwerk.


    Unangenehm ist immer, wenn man nur 2 Geräte hat. So könnte es immer noch daran liegen, dass der Ubuntu Server nicht schnell genug Daten liefert, oder dass das NAS nicht schnell genug schreiben kann. Wo bei... Du hast doch einen Ubuntu Server. Da könntest Du mit dem Befehl dd Testen ohne dass die HDDs oder RAM-Disk gefordert wird, z.B. mit dd if=/dev/zero of=tempfile bs=1M count=4096 conv=fdatasync,notrunc. Siehe mehr dazu hier unter Punkt 4.:

    Testbericht – TVS-473e-4G Teil 6: Benchmarks, Stresstest, Performance

  • Ich habe den dd-Befehl gleich mal ausprobiert.


    Code
    root@servername:/nfs/vol1# dd if=/dev/zero of=tempfile bs=1M count=4096 conv=fdatasync,notrunc
    4096+0 records in
    4096+0 records out
    4294967296 bytes (4.3 GB, 4.0 GiB) copied, 14.64 s, 293 MB/s


    Ich habe übrigens zwei Ubuntu Server, mit denen ich testen kann. Habe vorher gerade mal das NAS und die zwei Ubuntu Server mit 2x 10Gbit LACP konfiguriert und dann mit beiden Ubuntu Servern gleichzeitig zu schreiben versucht.

    Die Gesamtbandbreite, die beim QNAP ankam war 4Gbit. Also ein wenig höher als nur mit einem Server, aber keine Verdoppelung.

  • Ich gehe jetzt mal davon aus, dass die Server genug Dampf haben und nicht mit 100% ausgelastet waren, denn hier werden die Daten errechnet.


    Also liegt es am NAS. Hmm, an was könnte es hier liegen. Bei meinem TS-873U-RP erreiche ich so um die 400 - 500 MB/s in beide Richtungen. Hier sind der limitierende Faktor die 4 HDDs im RAID-Verbund. Die können kaum mehr. Lesend erreiche ich sogar 1GB/s, wenn ich die selbe Datei nochmals kopiere und sie nicht zu groß ist. Da greift wohl der Systemzwischenspeicher der QNAP - kein spezieller Cache durch SSDs oder M.2 eingerichtet. Die TS-873U-RP hat eine AMD R-Series RX-421ND quad-core 2.1 GHz processor, Turbo Core to 3.4 GHz CPU (entsprecht so einer mobilen i7 CPU). Auch keine Rakete, dürfte aber um einiges schneller als Deine ARM-CPU sein.

    Habe eigentlich nichts speziell am NAS eingestellt. Ich glaube sogar MTU ist bei 1500. Greife allerdings über SMB zu.


    Ist NFSv4 auf allen beteiligten Geräten aktiviert bzw. SMB auf einer möglichst hohen Version?

    Die Gesamtbandbreite, die beim QNAP ankam war 4Gbit. Also ein wenig höher als nur mit einem Server, aber keine Verdoppelung.

    Ist die CPU dann komplett ausgelastet?

  • Ich gehe jetzt mal davon aus, dass die Server genug Dampf haben und nicht mit 100% ausgelastet waren, denn hier werden die Daten errechnet.

    Die Server laufen momentan komplett idle, da sie noch nicht produktiv genutzt werden.

    Hardware der beiden Server sind je:
    CPU: Dual Intel Xeon E5-2450L (8 Cores @ 1.8Ghz)

    Ram: 196GB


    Die TS-873U-RP hat eine AMD R-Series RX-421ND quad-core 2.1 GHz processor, Turbo Core to 3.4 GHz CPU (entsprecht so einer mobilen i7 CPU). Auch keine Rakete, dürfte aber um einiges schneller als Deine ARM-CPU sein.

    Wie sieht deine CPU-Auslastung bei einem Transfer aus?

    Und wie viel Ram hast du in deinem NAS installiert?


    Ist NFSv4 auf allen beteiligten Geräten aktiviert bzw. SMB auf einer möglichst hohen Version?

    Ja, ich nutze auf allen Geräten die NFS-Version 4. Ich habe auch mal auf Version 3 gewechselt, was aber keinen Unterschied gemacht hat.

    Ist die CPU dann komplett ausgelastet?

    Auch bei den 4Gbit war die CPU zu 50% mit dem NFS-Dienst ausgelastet.

    Ich habe vorher noch den Schreib-Cache aktiviert, was zu einer Erhöhung der Datenrate auf ca 3.5Gbit mit einem Server geführt hat. Mein NAS hat jedoch nur 4GB Ram. Daher ist der Einfluss des Caches relativ gering. Ich habe mir für morgen einen 16GB Ram Riegel bestellt und werde diesen ins NAS installieren und testen, ob dies etwas bringt.

    Einmal editiert, zuletzt von rauppe31 ()

  • Na bei Xeon-CPUs und 196 GB RAM wird es wohl nicht an der Leistung der Server liegen. ;)

    Wie sieht deine CPU-Auslastung bei einem Transfer aus?

    Habe im Moment keinen Zugriff auf das NAS und bin mir nicht mehr ganz sicher, aber ich meinte irgendwas unter 20%

    Und wie viel Ram hast du in deinem NAS installiert?

    Ui, da stellst Du Fragen. :) Ich habe die Standardkonfiguration und die ist - glaube ich - 8 GB RAM.


    Vielleicht liegt es wirklich an der CPU. Wenn sich der Kopier-Prozess nur 2 CPUs nehmen darf, dann ergibt es immer diese 50% CPU-Last. Stellt sich dann aber die Frage, wie QNAP die erwähnten Werte - wenn auch Laborwerte - erreicht hat. QNAP hat jedoch ein RAID5 aus 12 SSD verwendet. Hast Du mal die Schreib- und Leseleistung der einzelne SSD in der QNAP getestet? Gibt da ein Testprogramm in den Untiefen des Speichermanagers. Geht auch mit den QNAP-Diagnostic-Tools oder der Konsole mit hdparm. Siehe auch:

    Testbericht – TVS-473e-4G Teil 6: Benchmarks, Stresstest, Performance

    Vielleicht leisten die hier nicht das wie gedacht.

  • Ich bin neu hier und klinke mich einfach mal ein.

    Ich betreibe eine TS-431X3 mit 4 8GB WD-Platten in RAID 6. Ein Share habe ich über ein 1GB-Netzwerk via NFSv4 an einen CentOS - Server gemountet. Soweit, sogut.

    Beim Kopieren einer 136GB - Datei (Image einer VM) wurden statt der erwarteten ca. 115MB/s lediglich 70MB/s übers Netzt geschoben. Warum?

    NFS handelt rsize und wsize zwischen Server und Client aus. Dabei wird der Wert genommen, den beide unterstuetzen können. Maximum des Client ist 1048576 Byte (1MB). Vom Server (NAS) werden 262144 Byte (265k) angeboten (siehe hierzu request_size.png und response_size.png) Also wird das Share auch nur mit rsize/wsize 256k bedient:

    Code
    <share> on <mountpoint> type nfs4 (rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp6,timeo=600,retrans=2,sec=sys,clientaddr=****,local_lock=none,addr=*****


    Das selbe Share über SMB2 über gemountet wird mit rsize/wsize von 1MB bedient. Der Kopiervorgang (siehe oben) liefert damit auch die ca. 115MB/s übers Netzwerk:

    Code
    //<share> on <mountpoint> type cifs (rw,relatime,vers=default,cache=strict,username=nasenbaer,domain=****,uid=0,noforceuid,gid=0,noforcegid,addr=****,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,noperm,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)


    Die 256k rsize/wsize kommen mir recht klein vor. Ich habe bei QNAP einen Call offen, ob man den Wert via z.B. BootParameter des Kernel erhöhen kann.

    Hat Jemand von ihnen eine Idee?

  • Schönen Abend zusammen,

    ich möchte hier meine Daten zum Vergleich anbieten:

    Windows 10 Workstation mit 10GB ASUS Karte, TVS-863+ mit

    10GB Karte, MTU 1500. Im NAS 2x1TB (R1) SSD fürs System, 6x6TB

    (R5) als Datenspeicher.

    Lesend vom Nas (R5) zur WS (SSD) 600MByte/s schreibend von der WS (SSD) zum NAS (R5) 350MByte/s.

    WS zu WS in beide Richtungen 600MByte/s von SSD zu SSD.

    Änderung der MTU zu 9K bring etwa 5% mehr Durchsatz.


    Gruß

    Klaus