df use értéke

$ df -k /
Filesystem            1K-blocks      Used Available Use% Mounted on
/dev/mapper/main-raid 961428808 855008128  96653116  90% /

$ pydf -k
Filesystem                 Size      Used    Avail Use%                                 Mounted on
/dev/mapper/main-raid 961428808 855008128 96653116 88.9 [##########################...] /

$ wcalc "855008128 / 961428808 * 100"
 = 88.931

Nem stimmel a df által mutatott "Use%" értéke. Vajon miért?

Hozzászólások

Van egy kis fenntartott rész a root user számára. Ha jól sejtem, ezért.

Ha így van, akkor bele kellene építenie a "Size" vagy "Used" értékébe. Az, hogy nem a megmutatott értékek alapján számolja a melléjük írt százalékos értéket, mindenképpen rossz koncepció - kifogásoktól függetlenül.

Szerk.: a "Size" értékéből levonódik a root-nak fenntartott hely (amely a tune2fs -m érték-kel állítható), tehát ez nem lehet az oka akkor.

Szerk2.: bocs, rosszul írtam, az "Avail" értékében realizálódik a fenntartott hely, tehát akkor megvan a válasz. Nem a "Used" alapján kalkulálja a százalékot, hanem az "Avail" alapján. Akkor viszont azért nem logikus, mert az oszlop neve "Use". Illetve ha "Avail"-be belekalkulálja a fenntartott értéket, akkor "Used"-ba miért nem? Nem egyértelmű.

100*855008128/(855008128+96653116)

Used/(Used+Available)

Ez így rendben is van. A Size egy bruttó méret, azt kihasználni nem tudod a root-nak fenntartott hely miatt, de lehet, hogy a journal, a filerendszer leírói is benne vannak.

tr [:lower:] [:upper:] <<<locsemege
LOCSEMEGE

Tehát jelenleg:

Size/(Used+Available) = 101%

(Used+Available)/(Used+Available) = 100%, ez trivialitás, de az érthetőséghez kell

Used/(Used+Available) = 89.8%

Ezek szerint a root-nak fenntartott hely bennevan az Avail-ban, de a filerendszer nyilvántartása nincs. Illetve nem tudom, van-e a root-nak fenntartott hely nálad, lehet, megnézem, nálam mi a helyzet.

tr [:lower:] [:upper:] <<<locsemege
LOCSEMEGE

A Size semmiképp sem lehet a nevezőben, hiszen az fs adminisztrációt nyilván nem használhatjuk ki. Az jó kérdés, hogy a root-nak fenntartott hely az hova számítson. Talán valóban nem szerencsés az Avail-ba venni, mert így simán lehet, hogy 95%-nál disk full lesz. Akarom mondani, file system full. :)

tr [:lower:] [:upper:] <<<locsemege
LOCSEMEGE

Viszont a root számára az 5% is szabad hely. Ezért a df-nek másképp kellene működnie a root és az egyéb userek esetén ahhoz, hogy mindenki helyes eredményt kapjon.

Más szempontból nézve. Amikor a df program készült, általában az volt az igaz, hogy a usernek semmilyen hasznos információt nem adott az, hogy a háttértáron éppen mennyi szabad hely van. Annál az egyszerű oknál fogva, hogy a user számára szabad hely mérete a quota által beállítottaktól függött elsősorban. A df csak a root számára adott hasznos információt.

Tessék egy tisztességes rendszert telepíteni, ahol a rooton kívül mindenki quota-zva van, és akkor jól fog működni a df annak számára, akire ez tartozik. :-)

-----
A kockás zakók és a mellészabások tekintetében kérdezze meg úri szabóját.

Szia,

valóban a reserved block count-ról lehet szó; ha megnézed a statvfs()-nél leírt struct statvfs definícióját, abban mind a szabad blokkok, mind a szabad inode-ok száma el van különítve root és non-root számára.

Őszintén szólva én a személyes használatú fs-eimen azzal szoktam kezdeni, hogy a reserved block count-ot kinullázom.