Portál AbcLinuxu, 10. listopadu 2025 06:08
HW:
Sun Fire s AMD opteron 2x4 jádra, AMD64, 16GB RAM, Debian 6.0
Na serveru (MySQL) mám dva SATA disky v SW RAID 1 (mirroring) - SDA a SDB. Před časem jsem si všiml, že systém je zpomalený (velký IO wait 25%, load 30, pomalá MySQL). Pomocí iostat jsem došel k závěru, že SDA není vpořádku, vysoké hodnoty %util (čekání CPU na tento disk) kolem 70% a další hodnoty, oproti SDB. Navíc měl SDA nějaké vadné sektory a tak jsem se jej rozhodl z RAIDu odpojit. Po odpojení se vše vrátilo do normálu, load max 5, %util u SDB kolem 20%.
Vzal jsem tedy nový disk s tím, že původní SDB (vpořádku) přesunu na SDA a nový disk připojím jako SDB a provedu rekonstrukci RAIDu. Původní "vadný disk" SDA jsem vyřadil. Tak jsem to udělal, ale problém je v tom, že problém s výkonem je přesně ten samý jako původně - vysoký load, IO wait apod., jen s tím rozdílem, že problémy dělá současné SDA, tedy původní SDB, které bylo vpořádku a stíhalo servírovat všechny požadavky několik dnů.. Když jsem současné SDA z RAIDu vyhodil, tak to zase jede normálně.. Kde je problém?
Otázka.. Rozkládá SW RAID 1 požadavky mezi jednotlivé disky nějak? Je normální, aby ve frontě požadavků na jednom disku bylo v průměru 0.7 a na druhém 60?
Přidám sem výstupy iostat, hned co doběhne rekonstrukce RAIDu..
Děkuji za jakýkoliv tip,
Dalibor
Rozkládá SW RAID 1 požadavky mezi jednotlivé disky nějak?
Kdysi jsem se díval do zdrojáků, protože mne zajímalo, proč při čtení dlouhého souvislého bloku není rychlost vyšší než u jednoho disku. Bylo to tak, že si driver u každého "disku" pamatoval pozici, ze které z něj naposledy četl, a při čtení z pole zvolil disk, u kterého byla tato pozice nejblíž (ve smyslu logické geometrie blokového zařízení) pozici, ze které se má číst. Ale je samozřejmě možné, že se to od té doby změnilo.
Při zápisu pochopitelně rozkládání zátěže nepřipadá v úvahu.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.