update/bdflush problem
Jan Kasprzak
kas na informatics.muni.cz
Neděle Srpen 3 01:53:51 CEST 1997
Alexandr Malusek pise:
:
: Ono to chvilku trva. Zkusil jsem pres
: dd if=/dev/hda2 of=/dev/null bs=32768
: cist z disku a vypisovalo se mi:
:
: $ vmstat 5
: procs memory swap io system cpu
: r b w swpd free buff cache si so bi bo in cs us sy id
: 2 0 0 11320 252 1516 4612 0 0 3245 0 6592 206 96 4 0
: 2 0 0 11320 252 1548 4580 5 0 2927 0 5963 198 93 7 0
: ..
: 2 0 0 13744 268 7272 1656 0 3 1881 1 3871 124 73 27 0
: 2 0 0 13744 228 7348 1604 6 2 3159 0 6433 210 98 2 0
: ^^^^ ^^^^
: Je videt, ze na zacatku bylo pro diskove buffery vyhrazeno 1516 KB a
: pro swapovatelnou virtualni pamet (cache) 4612 KB, zatimco na konci
: se tento pomer obratil.
:
: Zaroven jsem si ujasnil, ze Linux nepouziva spravu virtualni pameti
: jakou ma SVR4. SVR4 klasicke diskove buffery neimplementuje, vse resi
: pres virtualni pamet. Linux implementuje klasicke diskove buffery, ale
: jejich mnozstvi se dynamicky meni podle potreby - ubira se ze
: swapovatelne virtualni pameti pro procesy a jejich data. Je to celkem
: zajimave reseni.
Toto je situace z doby kernelu 1.2. Vas priklad (dd if=/dev/hda2)
byl dost nestastne zvolen. Zkuste si vytvorit velky soubor
(dd if=/dev/zero of=bigfile bs=1024k count=64) a cist pak tento soubor.
Uvidite, ze buffery naopak _klesnou_ (BTW, zkuste misto vmstatu
cat /proc/meminfo, je to rychlejsi a ve 2.1 i citelnejsi).
Do polozky "buffers" se zapocitavaji veci, ktere nelze dat
do strankove cache -- to jest metadata filesystemu, cteni z primeho
zarizeni a podobne. Cteni ze souboru je obvykle provadeno pres
4kb velke kusy a uklada se rovnou do strankove cache. Strankova cache
je prave od toho, aby se rovnou nacteny kus dat dal vzit a namapovat
na prislusne misto adresoveho prostoru bez kopirovani.
-Yenya
--
\ Jan "Yenya" Kasprzak <kas at fi.muni.cz> http://www.fi.muni.cz/~kas/
\\ PGP: finger kas at aisa.fi.muni.cz 0D99A7FB206605D7 8B35FCDE05B18A5E //
\\\ Czech Linux Homepage: http://www.fi.muni.cz/~kas/linux/ ///
/// die_if_kernel("Penguin instruction from Penguin mode??!?!", regs); \\\
// -- from linux/arch/sparc64/kernel/traps.c \\
Další informace o konferenci Linux