?? Podpora raw devices
Alexandr Malusek
malusek na hroch.ujf.cas.cz
Pátek Březen 13 13:13:11 CET 1998
peak na kerberos.troja.mff.cuni.cz (Pavel Kankovsky) writes:
> On Thu, 12 Mar 1998, Michal Vanka wrote:
>
> > trochu sleduji adabasovou konferenci a nedavno
> > tam jeden clovek napsal:
> > > Procital jsem si archivy comp.databases.adabas
> > > a zda se, ze Linux nepodporuje raw devices.
> > nacez mu nekdo jiny odpovedel:
> > > IMHO ano (bohuzel)
Predpokladam, ze mel na mysli diskove raw devices. (Napr. /dev/cua0 je
raw device). Duvod, proc nejsou v Linuxu implementovany, neznam.
> Tzv. "raw device" by je zarizeni, ktere narozdil od obycejnych
> zarizeni neni v jadre kesovano, protoze se cteni a zapis provadi primo
> do / z pametoveho prostoru procesu. Hodi se to pro velke databazove
> stroje, protoze ty vedi lip nez jadro, jake kesovaci strategie zvolit a
> navic se usetri nekolikere kopirovani dat.
To je pravda. Pro ilustraci obvykle uvadim priklad s dd (Ultra 1, Solaris
2.5.1).
Prvni radek je pro raw device:
# dd if=/dev/rdsk/c0t0d0s2 of=/dev/null bs=327680
druhy pro block device:
# dd if=/dev/dsk/c0t0d0s2 of=/dev/null bs=327680
extended disk statistics cpu
disk r/s w/s Kr/s Kw/s wait actv svc_t %w %b us sy wt id
sd0 63.0 0.0 6720.2 0.0 0.0 1.0 15.6 0 98 0 1 99 0
sd0 53.5 0.0 6848.1 0.0 0.0 1.9 35.4 0 100 0 13 0 87
procs memory page disk faults cpu
r b w swap free re mf pi po fr de sr f0 s0 s3 -- in sy cs us sy id
0 1 0 211160 17768 0 0 0 0 0 0 0 0 63 0 0 337 109 156 0 2 98
0 0 0 211256 17520 0 0 6784 0 0 0 0 0 53 0 0 302 112 143 0 12 88
Ackoliv se dela totez (z disku se kopiruje do /dev/null), v pripade
blokoveho zarizeni to vede k vyssimu zatizeni CPU (13% & 1% viz cpu
sy), pricemz se data kesuji (viz page pi). Jinak rychlost prenosu je
priblizne stejna (asi 6.8 MB/s viz Kr/s) (pro blokovy prenos je
nepatrne vyssi, ale na druhou stranu je zase vyssi tzv. service time
(svc_t) - doba (ms) po kterou ceka pozadavek na zapis ve fronte.
--
A. Malusek (malusek na ujf.cas.cz)
UJF AV CR
Další informace o konferenci Linux