Mám problém s příliš pomalými RAID poli na domácím serveru (postaveném na 740G + Sempron 140 + 5 disků - 4x1,5TB + dočasně 1x2TB, některé mají 512B sektory, některé 4K). Na serveru jsou dvě pole:
1) RAID 1, 10GB, /dev/sd[a-e]1
2) RAID 6, 4.5TB, /dev/sd[a-e]2
Čtení je rychlostně naprosto v pořádku (R1-90MB/s, R6-226MB/s), problém je se zápisem, kdy zápis na R1 dosahuje cca 17MB/s a na R6 38MB/s. Na polích je zapnutá 128MB write-indent bitmapa, nicméně i po jejím zkušebním vypnutí na R6 poli byl zápis úplně stejný.
Zpozoroval jsem, že při zápisu je vytížení jednoho disku na 100%, příp. téměř na 100% a cpu má stav wait cca z 70% (viz screenshot, pomocí nástroje atop). Naprosto netuším, čím může být způsoben takový mizerný výkon, sektory na 4K discích by měly být zarovnány
správně. Důležité je také, že pokud jse disk zatížený na 100% vyhodil z pole, během chvíle začal být na 100% vytížený jiný.
Byla mmj. provedena i zkouška na jiném HW a dopadla úplně stejně. Uvažuju o vyzkoušení na čistém systému z Live CD.
Výkon byl zkoušen příkazy:
ČTENÍ
dd bs=1M count=1024 if=test.test of=/dev/null
ZÁPIS
dd bs=1M count=1024 if=/dev/zero of=test.test conv=fdatasync
ROZDĚLENÍ DISKŮ (jednotky = sektory)
Disk /dev/sda: 1500.3 GB, 1500300828160 bytes
255 heads, 63 sectors/track, 182401 cylinders, total 2930275055 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x76334c22
Device Boot Start End Blocks Id System
/dev/sda1 2048 19531775 9764864 fd Linux raid autodetect
/dev/sda2 19531776 2929688575 1455078400 fd Linux raid autodetect
-----------------------------------------------------------------------------
Disk /dev/sdb: 2000.4 GB, 2000397852160 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907027055 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd9cd6c6d
Device Boot Start End Blocks Id System
/dev/sdb1 2048 19531775 9764864 fd Linux raid autodetect
/dev/sdb2 19531776 2929688575 1455078400 fd Linux raid autodetect
-----------------------------------------------------------------------------
Disk /dev/sdc: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders, total 2930277168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00006673
Device Boot Start End Blocks Id System
/dev/sdc1 2048 19531775 9764864 fd Linux raid autodetect
/dev/sdc2 19531776 2929688575 1455078400 fd Linux raid autodetect
-----------------------------------------------------------------------------
Disk /dev/sdd: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders, total 2930277168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xe27ff672
Device Boot Start End Blocks Id System
/dev/sdd1 2048 19531775 9764864 fd Linux raid autodetect
/dev/sdd2 19531776 2929688575 1455078400 fd Linux raid autodetect
-----------------------------------------------------------------------------
Disk /dev/sde: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders, total 2930277168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xb765ccd8
Device Boot Start End Blocks Id System
/dev/sde1 64 19530608 9765272+ 83 Linux
/dev/sde2 19530616 2930277160 1455373272+ 83 Linux
Poslední disk má trochu jiné rozdělení, nicméně to by nemělo vadit, stejné problémy se vyskytovaly i v degradované konfiguraci pole (jen nemám otestovanou rychlost). Zajímavé také je, že resync (právě po přidání tohoto posledního disku) běžel ze začátku 1.5-3MB/s a ráno, když jsem se vzbudil, tak jel 35MB/s... Opět nechápu proč.
Dodám ještě, že server není téměř vůbec vytížený, jde vlastně jen o souborový server pro několik domácích uživatelů.