zfs Performance

zfs Performance

Dieser Artikel dokumentiert die Leistung meines Servers. Die ermittelten Werte im Netzwerk und auf den Festplatten sind für meine Anforderungen mehr als erfüllt. Die verwendeten Daten-Festplatten von WD gehören mit 5400 U/min und 64 MB sicherlich nicht zu den Hochleistungsdatenträgern. In Kombination mit den 24 GB Arbeitsspeicher, dem Intel Core i5 @ 2800 MHz, ein paar kleineren Kernel-Parameter-Anpassungen sowie der Nutzung von getrennter ZIL und Cache Devices bringen mir ausreichend Leistung im Netzwerk. Mein Server ist über einen 8-Port Gigabit-Switch von Cisco angebunden. Der Zugriff von Windows-basierten Systemen erfolgt über einen Samba Version 3.

Bildschirmausgabe von: systat -iostat 1

                    /0   /1   /2   /3   /4   /5   /6   /7   /8   /9   /10
     Load Average   ||||||

      Interface           Traffic               Peak                Total
            lo0  in      0.000 KB/s          0.203 KB/s           28.092 MB
                 out     0.000 KB/s          0.203 KB/s           28.092 MB

           fxp0  in      0.000 KB/s          3.223 KB/s          157.888 MB
                 out     0.000 KB/s          0.000 KB/s            5.787 MB

            re0  in    112.196 MB/s        112.196 MB/s          132.678 GB
                 out     2.912 MB/s          2.912 MB/s           11.288 GB

Bildschirmausgabe von: zpool iostat -v 1

pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
raid1p1     1.41T  2.22T      0    670      0  70.4M
  mirror    1.25T   573G      0    146      0  13.5M
    ada6        -      -      0    131      0  13.5M
    ada5        -      -      0    131      0  13.5M
  mirror     160G  1.66T      0    391      0  40.4M
    ada3        -      -      0    355      0  40.4M
    ada4        -      -      0    355      0  40.4M
logs            -      -      -      -      -      -
  mirror     548K   991M      0    132      0  16.5M
    ada1p1      -      -      0    132      0  16.5M
    ada2p1      -      -      0    140      0  17.5M
cache           -      -      -      -      -      -
  ada1p2    33.7G  77.2G      0    156      0  19.1M
  ada2p2    33.6G  77.2G      0    163      0  20.1M
----------  -----  -----  -----  -----  -----  -----

In der obigen Darstellung sieht man eine Momentaufnahme während einer Sicherungskopie einer Windows 7 basierten Arbeitsstation. Der Windows PC verfügt ebenfalls über herkömmliche Desktop-Festplatten und ist mit einem Intel Core i3 @ 3200 MHz CPU bei 8 GByte Arbeitsspeicher eher in der unteren Klasse angesiedelt. Die Datensicherung erfolgte mit einem spezialisierten Programm zur Partionssicherung über einen Netzwerk-Share auf meinem Server.

Die dabei ermittelten maximalen Übertragungsraten von knapp 113 MByte/s dürften in der gegebenen Konstellation auch nicht Steigerungsfähig zu sein. Wie gesagt die ermittelte Leistung ist natürlich auch abhängig von der Art der Datenübertragung. Die im Dateisystem geschriebene Datei hat am Ende eine Größe von ca. 230 GBytes. Einzelne Kopieraktionen mit kleineren Dateien läuft in der Regel zwischen 40 und 85 MByte/s über die Netzwerkverbindung.

Vielleicht macht es Sinn ein paar Konfigurationsschnipsel aus meiner Installation hier zu dokumentieren. Die Konfigurationsbestandteile gehören zum FreeBSD Kernel sowie zum Samba Server:

/usr/local/etc/samba/smb.conf
socket options = SO_KEEPALIVE TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
min receivefile size=16384
use sendfile=true
aio read size = 16384
aio write size = 16384
aio write behind = true

/boot/loader.conf
aio_load="YES"

/etc/sysctl.conf
net.inet.tcp.recvbuf_max=16777216
net.inet.tcp.recvbuf_inc=524288
net.inet.tcp.sendbuf_max=16777216
net.inet.tcp.sendbuf_inc=524288
net.inet.tcp.sendspace=65536
net.inet.udp.recvspace=65536
net.local.stream.recvspace=65536
net.local.stream.sendspace=65536

Letzte Beiträge