GNU/Linux >> Znalost Linux >  >> Linux

ZFS pool pomalé sekvenční čtení

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.


Linux
  1. Rozumíte „ifs=Read -r Line“?

  2. Rozumět Ifs?

  3. Přejmenujte databázi MySQL

  1. Jak vyměnit disk v neredundantním fondu ZFS?

  2. tar:krátké čtení

  3. Wifi najednou extrémně pomalá

  1. Odstraňování problémů s pomalým WiFi v systému Linux

  2. Proč je můj rsync tak pomalý?

  3. Proč se můj fond ZFS nerozšiřuje pomocí ZFS na Linuxu?