Linux - informace o vytížení disků

Linux - informace o vytížení disků
« kdy: 02. 12. 2021, 15:08:42 »
Zdravím linuxové guru,
už nějaký čas pátrám a googlím a nejsem úspěšný, začínám mít dojem, že nic takového neexistuje, ale nevěřím tomu, proto zkouším dotaz zde. Dotaz zní nějak takto:

Existuje v linuxu nástroj (ideálně čím míň se toho oproti nějakému rozumnému základu musí instalovat, tím lépe), který by vrátil údaj o aktuálním vytížení diskového úložiště? Ideálně v procentech.

Vzor: správce úloh z Windows (nemusí být nutně grafický, stačí něco z řádky). iostat jsem k tomu nepřesvědčil, možná jsem málo přesvědčoval.

Jde o to, že všude možně najdu nástroje, které ukážou třeba aktuální průtok v datech za sekundu nebo i IOPSy. Já potřebuji něco, co ukáže, jak moc je disk prací vytížen, neboli (jak se říká ve Windows) „procento času, po který byl disk zaneprázdněn požadavkem na zápis nebo čtení“. Něco jako je zátěž CPU, tak existuje i zátěž storage, kde 100 % znamená, že se na rozhraní neustále čeká na odbavení požadavků disku. Tato veličina nijak nesouvisí s aktuální propustností, můžu mít disk, který zvládne dodávat třeba 300 MB/s, ale dokážu ho vytížit i požadavky, ze kterých vzejdou třeba nízké desítky nebo i jednotky MB/s.

Tak tohle jsem v Linuxu nenašel a teď mi řekněte, že jsem blb a je to táákhle jednoduché. Protože to považuju za jednu ze základních věcí, jak zjistit, co dělá disk, a ve Windows je to přímo ve správci úloh, tak očekávám, že v Linuxu to taky někde bude „na dosah ruky“, jen já jsem tele, co to ještě nenašlo.

Díky moc.


k3dAR

  • *****
  • 2 838
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Linux - informace o vytížení disků
« Odpověď #1 kdy: 02. 12. 2021, 15:44:06 »
"iostat -x /dev/sda" zobrazi na konci "%util"

Re:Linux - informace o vytížení disků
« Odpověď #2 kdy: 02. 12. 2021, 15:56:06 »
Dalsi tip: netdata

Re:Linux - informace o vytížení disků
« Odpověď #3 kdy: 02. 12. 2021, 16:09:20 »
to ale nelze, resp. ne přesně, systém neví co znamená 100% vytížení.

Windows ty procenta odvozuje od IOPS a ukazuje často nesmysly, u poškozeného disku je schopný dát 100 % při velice malé zátěži jen proto, že některé operace trvají dlouho.

Můžeš to počítat stejně, vem si výstup z /sys/block/sda/stat (změň sda podle aktuálního disku), v 10. sloupci máš io_ticks
 za ms. Udělej si z toho poměr. Jen bohužel pokud někdo bude dělat io operace v sérii, nejspíš ti výjde vytížení skoro 100 %.

V bashi by to šlo získat nějak takhle:

Kód: [Vybrat]
old_value=$(cat /sys/block/sda/stat | awk '{ print $10}')
old_time=$(cat /proc/uptime | awk '{ print $1}')

sleep 5

new_value=$(cat /sys/block/sda/stat | awk '{ print $10}')
new_time=$(cat /proc/uptime | awk '{ print $1}')

echo "$old_value $new_value $old_time $new_time" | awk '{printf "%.4f%\n", ($2-$1)/($4-$3) / 10}';

A ano, je to stejný výpočet jako dělá iostat, jak psal k3dAR

_Jenda

  • *****
  • 1 550
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Linux - informace o vytížení disků
« Odpověď #4 kdy: 02. 12. 2021, 17:23:59 »
Něco jako je zátěž CPU, tak existuje i zátěž storage, kde 100 % znamená, že se na rozhraní neustále čeká na odbavení požadavků disku. Tato veličina nijak nesouvisí s aktuální propustností
Jenom pro informaci, disky umí NCQ, takže ti to ukáže 100%, pak zvedneš zátěž trojnásobně a pořád to bude ukazovat 100%.


Re:Linux - informace o vytížení disků
« Odpověď #5 kdy: 02. 12. 2021, 19:58:55 »
to ale nelze, resp. ne přesně, systém neví co znamená 100% vytížení.

Windows ty procenta odvozuje od IOPS a ukazuje často nesmysly, u poškozeného disku je schopný dát 100 % při velice malé zátěži jen proto, že některé operace trvají dlouho.
To je ale v pořádku. Pokud operace trvá u poškozeného disku dlouho a systém ukazuje vytížení 100 %, tak se to chová přesně tak, jak očekávám. Já když budu mít zlámané ruce a budu muset přehazovat lopatou písek, tak mi to taky bude trvat neuvěřitelně dlouho, udělám úplný houby a budu vytíženej na 100 %, pokud se tomu požadavku skutečně budu snažit vyhovět :).
Zrovna tak pokud někdo dělá operace v sérii a indikuje to vysokou zátěž, je to také přesně tak, jak očekávám. Za mě se to chová naprosto předvídatelně.

Za %util díky, musel jsem bejt asi fakt slepej.

Re:Linux - informace o vytížení disků
« Odpověď #6 kdy: 02. 12. 2021, 20:56:43 »
Já jen doplním, že více user friendly bude iostat -xhd 5. (h=násobky jednotek, d:počet sekund )

Re:Linux - informace o vytížení disků
« Odpověď #7 kdy: 02. 12. 2021, 22:23:42 »
Kód: [Vybrat]
iotop má taky sloupec nebo dva s procentním vytížením...