ZFS NVME Performance Tuning

Discussion in 'Proxmox VE (Deutsch)' started by Vengance, Sep 14, 2018.

  1. Vengance

    Vengance Member

    Joined:
    May 21, 2016
    Messages:
    72
    Likes Received:
    2
    Hallo,

    In meinem Hetzner PX61-NVME sind zwei Samsung SM961-NVME 500GB SSDs verbaut.
    Laut Hersteller sind diese mit einer Schreibleistung von 1,7GB/s angegeben.

    Auf dem Server läuft Proxmox auf ZFS Basis.
    Ich habe nun einige KVM VMs mit Debian 9 angelegt und anschließend etwas Performance Testing betrieben.

    Hier ein Benchmark bei nur einer einzigen laufenden VM
    Code:
    dd if=/dev/zero of=test_$$ bs=64k count=16k conv=fdatasync && rm -f test_$$
    
    I/O speed(1st run)   : 812 MB/s
    I/O speed(2nd run)   : 951 MB/s
    I/O speed(3rd run)   : 882 MB/s
    Average I/O speed    : 881.7 MB/s

    Schon dieser Benchmark ist weit unter der Angegebenen Schreibleistung von 1,7GB/s.
    Doch bei mehreren laufenden VMs, welche jedoch alle im Idle sind und keine Schreiblast erzeugen, sinkt die IO Leistung enorm.
    Code:
    I/O speed(1st run)   : 289 MB/s
    I/O speed(2nd run)   : 1.2 GB/s
    I/O speed(3rd run)   : 624 MB/s
    Average I/O speed    : 713.9 MB/s
    
    Code:
    I/O speed(1st run)   : 154 MB/s
    I/O speed(2nd run)   : 1.0 GB/s
    I/O speed(3rd run)   : 905 MB/s
    Average I/O speed    : 694.3 MB/s
    
    Nun zur eigentlichen Frage, könnte das an ZFS liegen, bzw kann ich hier noch irgendwas optimieren oder hat jemand eine Idee was die teilweise sehr niedrige IO Leistung erklären könnte?

    Das System ist eigentlich recht Potent mit einem Xeon E3 1275v6 und 64GB DDR4 RAM.


    Über Hinweise würde ich mich freuen!

    Danke
     
  2. rholighaus

    rholighaus New Member
    Proxmox VE Subscriber

    Joined:
    Dec 15, 2016
    Messages:
    16
    Likes Received:
    1
    Hmm - Du hast aber Deinen pool schon mit einem ashift=12 eingerichtet? Sonst wirst Du wenig Freude mit ZFS auf den SSDs haben.
     
  3. Vengance

    Vengance Member

    Joined:
    May 21, 2016
    Messages:
    72
    Likes Received:
    2
    Code:
    NAME   PROPERTY  VALUE   SOURCE
    rpool  ashift    12      local
    Ja, ist auf 12 gesetzt
     
  4. LnxBil

    LnxBil Well-Known Member

    Joined:
    Feb 21, 2015
    Messages:
    3,001
    Likes Received:
    247
    Bei SSDs habe ich bisher noch nie Single-IO-Thread Höchstleistungen gesehen - auch ist dd kein Test, war es nie und wird es nie sein - hier bitte immer fio benutzen und dort kannst du das viel feingranularer einstellen. Mal ganz davon abgsehen, dass du nullen auf das ZFS schreibst und damit eigentlich garnicht schreibst, denn 0en werden in ZFS nie geschrieben.

    Zum Thema SSD Performance kann ich nur immer wieder auf die Geniale Seite von Sebastien Han veweisen:
    http://www.sebastien-han.fr/blog/20...-if-your-ssd-is-suitable-as-a-journal-device/

    Dort hast du viele Performancedaten und auch Befehle um dein Setup mit den anderen zu vergleichen, einfach den fio-Aufruf kopieren und absetzen. Damit weißt du dann auf jeden Fall gleich mehr.
     
  5. Vengance

    Vengance Member

    Joined:
    May 21, 2016
    Messages:
    72
    Likes Received:
    2
    Hi,

    Danke für deine Antwort.
    Ich habe den Erwähnten fio Befehl mal auf einer VM laufen lassen und folgendes Ergebnis bekommen, wie würdest du das Einschätzen?

    Code:
    root@c6:~# fio --filename=/dev/sda --direct=1 --sync=1 --rw=write --bs=4k --numjobs=20 --iodepth=1 --runtime=60 --time_based --group_reporting --name=journal-test
    journal-test: (g=0): rw=write, bs=4K-4K/4K-4K/4K-4K, ioengine=psync, iodepth=1
    ...
    fio-2.16
    Starting 20 processes
    Jobs: 20 (f=20): [W(20)] [100.0% done] [0KB/18084KB/0KB /s] [0/4521/0 iops] [eta 00m:00s]
    journal-test: (groupid=0, jobs=20): err= 0: pid=5890: Sun Sep 23 11:48:18 2018
      write: io=1024.6MB, bw=17475KB/s, iops=4368, runt= 60007msec
       clat (msec): min=1, max=110, avg= 4.57, stdev= 2.17
        lat (msec): min=1, max=110, avg= 4.58, stdev= 2.17
       clat percentiles (usec):
        |  1.00th=[ 2864],  5.00th=[ 2992], 10.00th=[ 3056], 20.00th=[ 3184],
        | 30.00th=[ 3312], 40.00th=[ 3504], 50.00th=[ 3760], 60.00th=[ 4128],
        | 70.00th=[ 4640], 80.00th=[ 5216], 90.00th=[ 7712], 95.00th=[ 8640],
        | 99.00th=[12096], 99.50th=[13376], 99.90th=[18816], 99.95th=[21632],
        | 99.99th=[28032]
       lat (msec) : 2=0.04%, 4=57.13%, 10=39.57%, 20=3.17%, 50=0.08%
       lat (msec) : 100=0.01%, 250=0.01%
      cpu          : usr=0.10%, sys=0.47%, ctx=529708, majf=0, minf=221
      IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
        submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
        complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
        issued    : total=r=0/w=262158/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
        latency   : target=0, window=0, percentile=100.00%, depth=1
    
    Run status group 0 (all jobs):
      WRITE: io=1024.6MB, aggrb=17475KB/s, minb=17475KB/s, maxb=17475KB/s, mint=60007msec, maxt=60007msec
    
    Disk stats (read/write):
      sda: ios=2/516891, merge=0/5405, ticks=0/1148504, in_queue=1148568, util=99.99%
    
    Samsung gibt die SSD mit einer Schreibleistung von 1,7GB/s an, weißt du ungefähr mit welchen Parametern das getestet wurde?
     
  6. LnxBil

    LnxBil Well-Known Member

    Joined:
    Feb 21, 2015
    Messages:
    3,001
    Likes Received:
    247
    Also 4368 IOPS ist sehr, sehr wenig - aber hast es ja durch die VM gemacht. Leg dir bitte ein ZFS Volume mit volblocksize 4K an und probiere es auf dem Host darauf nochmal. Generell wäre wegen der Vergleichbarkeit auch wichtig das Kommando auf dem rohen Blockgerät auszuführen, aber das zerstört dir deine Daten, also Obacht.

    Die meisten Tests sind mit 4K Blocksize, aber genaueres musst du bei Samsung anfragen :-D
     
  7. Vengance

    Vengance Member

    Joined:
    May 21, 2016
    Messages:
    72
    Likes Received:
    2
    Alles klar, dann teste ich es mal auf dem Host.
    Aber ich kann mir nicht vorstellen, dass durch die VM der Performanceverlust so enorm ist, oder?
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice