Podařilo se mi dosáhnout rychlosti velmi blízko číslům, které jsem očekával.
Hledal jsem 400 MB/s a spravované 392 MB/s . Takže říkám, že problém je vyřešen. S pozdějším přidáním zařízení s mezipamětí jsem zvládl 458 MB /sec přečteno (věřím, že uložené v mezipaměti).
1. Toho bylo zpočátku dosaženo jednoduše zvýšením datové sady ZFS recordsize
hodnotu na 1M
zfs set recordsize=1M pool2/test
Věřím, že tato změna má za následek pouze menší aktivitu disku, a tím efektivnější velké synchronní čtení a zápis. Přesně to, o co jsem žádal.
Výsledky po změně
- bonnie++ =226 MB pro zápis, 392 MB pro čtení
- dd =260 MB pro zápis, 392 MB pro čtení
- 2 procesy paralelně =227 MB zápis, 396 MB čtení
2. Ještě lépe se mi to povedlo, když jsem přidal cache zařízení (120GB SSD). Zápis je trochu pomalejší, nevím proč.
Version 1.97 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
igor 63G 208325 48 129343 28 458513 35 326.8 16
Trik s cache zařízení spočíval v nastavení l2arc_noprefetch=0
v /etc/modprobe.d/zfs.conf . Umožňuje ZFS ukládat do mezipaměti streamovaná/sekvenční data. Udělejte to pouze v případě, že je vaše mezipaměť rychlejší než vaše pole, jako je moje.
Poté, co jsem využil výhody změny velikosti záznamů v mé datové sadě, myslel jsem si, že by to mohl být podobný způsob, jak se vypořádat se špatným výkonem zvol.
Narazil jsem na několik lidí, kteří zmiňovali, že dosáhli dobrého výkonu pomocí volblocksize=64k
, tak jsem to zkusil. Žádné štěstí.
zfs create -b 64k -V 120G pool/volume
Ale pak jsem si přečetl, že ext4 (souborový systém, se kterým jsem testoval) podporuje možnosti pro RAID jako stride
a stripe-width
, který jsem nikdy předtím nepoužil. Použil jsem tedy tuto stránku k výpočtu potřebného nastavení:https://busybox.net/~aldot/mkfs_stride.html a znovu naformátoval zvol.
mkfs.ext3 -b 4096 -E stride=16,stripe-width=32 /dev/zvol/pool/volume
Spustil jsem bonnie++
udělat jednoduchý benchmark a výsledky byly vynikající. Výsledky bohužel u sebe nemám, ale pokud si vzpomínám, byly alespoň 5-6x rychlejší pro zápis. Pokud budu znovu porovnávat, tuto odpověď znovu aktualizuji.