ot Zahari Evgeniev Dimitrov(20-08-2001)

reiting (22)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

Kak da pretsakame Linux s pomoshtta na  hdparm.
(rukovodstvo na potrebitelia)

Ideiata na tazi statiia e ne da se nauchim kak da si razvalim otlichno konfiguriranata Linuks distributsiia (predpolagam, tova vseki go znae? ;), a da uvelichim skorostta na EIDE tvurdiia vi disk pod Linuks. Zaglavieto e takova, zashtoto kogato se opitvah da testvam programata si skapah moia kompyutur, no kakto i da e*. TSelta e da se pomogne na vseki nachinaesht da razbere kak da uskori sistemata si posredstvom izpolzvaneto na hdparm. Predpolagam, che statiiata niama da e interesna za veterani v Linuks, zatova preporuchvam takiva da ne ia chetat.

ZHertvana (testvana) sistema:
ZIDA 5STX (Intel 430TX) Mainboard
Intel Pentium
88 RAM
Tvurd disk: marka - QUANTUM, model - FIREBALLP AS20.5, harakteristiki - 20 GB, 2 MB Cache; 7200 rpm
Slackware Linux 7.0.0 - otlichno konfigurirana.
kernel - 2.2.19
e2fsprogs - 1.22
hdparm - 4.1
kernel report for hard drive: hda: QUANTUM FIREBALLP AS20.5, 19595MB w/1902kB Cache, CHS=2498/255/63


1. Uvod

Predpolagam, che izpolzvate Intel/Linux s (E)IDE tvurd disk?

Niama li da e hubavo, ako ima magicheska komanda, koiato da udvoi I/O performance
na vashiia tvurd disk?

CHudili li ste se niakoga kak da razberete skorostta na deistvie na vashata nastroena Linuks mashina?

Ne poglezhdaite hdparm(8). Ne ste chuvali za hdparm ne se bezpokoite, povecheto hora sushto ne sa. No ako ste edin ot tezi izpolzvashti IDE/Linux sistema (kato povecheto hora) vie shte se uchudite kak ste karali tolkova dulgo vreme bez neia. Znam che e taka.

Kakva e dalaverata?
Znachi, imate chisto nov UltraATA/66 EIDE tvurd disk, s nai-noviia vuzmozhen chipset, koito poddurzha multiple PIO modes i DMA. No vashata sistema vsushtnost ne izpolzva tezi prekrasni vuzmozhnosti? S pomoshtta na hdparm(8) vie ne samo shte razberete kak se spravia tvurdiia vi disk, no i shte mozhete da go uskorite!

Predi da se vuzbudite tvurde mnogo, ne e losho da znaete che v niakoi sluchai tazi komanda mozhe da dovede do NEOCHAKVANA ZAGUBA NA DANNI!(ne e shega) Izpolzvaite ia na sobstven risk!(vizh zaglavieto) Predi da zapochnem napravete si rezervno kopie na dannite!


2. Podgotovka

Nai-dobre e da si svalite poslednata versiia na programata a ne da izpolvate tazi kum vashata distributsiia.Adresa e:
http://www.ibiblio.org/pub/Linux/system/hardware/
Az izpolzvah poslednata do momenta versiia hdparm-4.1, koiato beshe 20K. Predpolagam, che znaete kak se instalira programa ot izhoden kod? Ne?
Ami:

tar zxpvfC hdparm-4.1.tar.gz /tmp
cd /tmp/hdparm-4.1
make

i kato root:
make install

Predi da izpulnite make e dobre da redaktirate Makefile i da smenite redove:

sbindir = /usr/local/sbin
mandir = /usr/local/man

s neshto po-podhodiashto

sbindir = /usr/sbin
mandir = /usr/man

TSelta e novata versiia da se zapishe vurhu starata za da niama problemi pri izvikvane ili pri chetene na man stranitsata. Ako putiat za hdparm vi e drug smeneto go s podhodiasht. A ako niamate instaliran hdparm niama nuzhda ot promiana na Makefile.

Predi da instaliram hdparm obache, az si obnovih i ext2 programite (e2fsprogs-1.22 - posledna po vreme na testvane) Adresa za svaliane e:

download.sourceforge.net/pub/sourceforge/e2fsprogs/e2fsprogs-1.22.tar.gz

Tozi paket sudurzha komandata e2fsck (koiato se nadiavam, che niama da vi se nalozhi da izpolzvate), kakto i drugi polezni komandi kato debugfs i dumpe2fs (za poveche info vizhte suotvetnite man stranitsi).

Instaliraneto na e2fsprogs-1.22.tar.gz stava po sledniia nachin:

tar zxpvfC e2fsprogs-1.22.tar.gz /tmp
cd /tmp/e2fsprogs-1.22
mkdir build; cd build
../configure
make; make check

i kato root:
make install

Preporuchvam izpolzvaneto na poslednite versii, zashtoto kakto shte zabelezhite v ChangeLog failovete im dosta greshki ot po-starite versii sa opraveni (a niakoi novi sa dobaveni, no tova e druga tema :)


3. Preduprezhdenie

Purvo preminete v single-user mode na Linuks predi da produlzhite.(telinit 1)

Nared s obichainite preduprezhdeniia, iskam da otbelezha, che ako izpolzvate suvremenen harduer (t.e. vashiiat tvurd disk, kontroler i dunna platka sa proizvedeni prez poslednite dve ili tri godini) vie se izlagate na sravnitelno slab risk. Tazi komanda e testvana na razlichni hardureni konfiguratsii, i nai-loshoto, koeto se e sluchvalo e obiknoveno zavisvane na sistemata, bez zaguba na danni sled restartirane. Za razlika ot moiata sistema na koiato sled uvisvane, se pusna e2fsck i uspia da mi napravi ot /sbin/ i /usr/sbin/ failove i sled tova spirashe po sredata na INIT protsesa. Tova stana s posledna versiia na hdparm, no sus standartni e2fsprogs (tezi kum Slackware 7.0).

I za da ne plachete gorchivo, i da proklinate sveta zaradi sobstveniia si losh kusmet, imaite pridvid che, ne poemam nikakva otgovornost za tova, koeto pravita na VASHIQ kompyutur. Predupredeni ste.


4. Obiasneniia

I ako vse oshte ne ste se uplashili, opitaite tova(kato root, za predpochitane v single-user mode):

hdparm -Tt /dev/hda

SHTe vidite neshto ot sorta:

/dev/hda:
Timing buffer-cache reads:   128 MB in  3.32 seconds = 38.55 MB/sec
Timing buffered disk reads:  64 MB in 13.41 seconds =  4.77 MB/sec

Kakvo oznachava tova? Optsiiata -T oznachava da testva keshirana sistema (t.e., pamet, protsesor, i kesh na bufera). Optsiiata -t oznachava da dokladva statistikite na diska, izpolzvaiki danni nenamirashti se v kesha. Dvete optsii zaedno, pusnati niakolko puti v single-user mode, shte vi dadat predstava za skorostta na vashata Vhodno/Izhodna sistema (I/O). Tova sa aktualnite danni ot posochenata sistema vashite bi triabvalo da sa razlichni.

No dori i razlichni 4.77 MB/sec e malko dori za takuv harduer. Spomniam si, che reklamata za tvurdiia disk spomenavashe za okolo 100MB za sekunda!!?!? A kakvo izliza?

Neka razberem poveche za tova kak Linuks adresira vashiia tvurd disk:

hdparm /dev/hda

/dev/hda:
multcount    =  0 (off)
I/O support  =  0 (default 16-bit)
unmaskirq    =  0 (off)
using_dma    =  0 (off)
keepsettings =  0 (off)
nowerr       =  0 (off)
readonly     =  0 (off)
readahead    =  8 (on)
geometry     = 2498/255/63, sectors = 40132503, start = 0

Tova sa standartnite nastoiki. Dobri, sigurni, no ne i optimalni. Kakvo e tova za 16-bit mode? Mislia, che veche ne sum na 386! I zashto povecheto ot drugite optsii sa izklyucheni (off)?

Obshto vzeto e dobra ideia za vsiaka uvazhavashta sebe si distributsiia da mozhe da se instalira vuzmozhno nai-sigurno. Posochenite gore nastroiki sa virtualno garantirani che rabotiat na pochti vseki harduer za koito mozhe da se setite. No sled kato znaem, che imame neshto poveche ot praholiasala, 8-godishna, 16-bit multi-IO karta neka da vidim i interesnite optsii:


multcount: Sukrateno ot mnogokratno prebroiavane na sektori (multiple sector count). Tova kontrolira kolko sektora sa cheteni ot tvurdiia disk pri edno Vhodno/Izhodno prekusvane. Povecheto moderni tvurdi diskove poddurzhat tova.

man stranitsata tvurdi:

Kogato tazi optsiia e aktivirana, obiknoveno namaliava natovarvaneto na operatsionnata sistema za diskoviia Vhod/Izhod mezhdu 30 i 50%. Na mnogo sistemi, sushto osiguriava uvelichavane na obmena na danni ot 5% do 50%.


I/O support: VAZHNO! Tazi optsiia kontrolira kak dannite preminavat ot PCI shinata do kontrolera. Pochti vseki suvremenen kontrolen chipset poddurzha mode 3, ili 32-bit mode sus sinhronizatsiia. Niakoi dori poddurzhat 32-bit asinhronno. Vklyuchvaneto na optsiiata pochti vinagi uvelichava propuskvatelnata sposobnost (vizh po-dolu).


unmaskirq: Vklyuchvaiki tova vie pozvoliavate na Linuks da demaskira drugi prekusvaniia, dokato obrabotva diskovo prekusvane. Kakvo oznachava tova? Obrushta vnimanie na Linuks da izpolzva drugi zadachi izpolzvashti prekusvaniia (kato mrezhov trafik i t.n.) dokato chakate vashiiat disk da otgovori s dannite, koito ste poiskali. Triabva da podobri vremeto za otgovor na tsialata sistema, no imaite predvid, che: Ne vsichki harduerni konfiguratsii sa sposobni da se spraviat s nego. Za poveche info vizhte man stranitsata.


using_dma: DMA mozhe da e riskovana rabota. Ako mozhete da nakarate vashiiat kontroler i disk da go izpolzvat, napravete go. No povecheto sistemi uvisvat dokato si igraete s tazi optsiia. Otnovo vizhte man stranitsata (i primera po-nadolu)!


5. Nachalo ili Turbo-uskorenie

Sled kato ste preminali v single-user mode kato vseki dobur administrator, neka da probvame niakolko turbo nastroiki:

hdparm -c3 -m16 /dev/hda

/dev/hda:
setting 32-bit I/O support flag to 3
setting multcount to 16
multcount    =  16 (on)
I/O support  =  3 (32-bit w/sync)

Strahotno! 32-bit izglezhda dobre. I niakoi multi-prochita mozhe da rabotiat. Neka da testvame otnovo:

hdparm -tT /dev/hda

/dev/hda:
Timing buffer-cache reads:   128 MB in  3.27 seconds = 39.14 MB/sec
Timing buffered disk reads:  64 MB in  8.59 seconds =  7.45 MB/sec

Uha! Pochti dvoino uvelichenie na propuskatelnata sposobnost bez seriozni usiliia! Neveroiatno.

No pochakaite, ima oshte: Nie vse oshte ne demaskirame prekusvaniiata, ne izpolzvame DMA, ili dori ne sme vklyuchili na svesten PIO mode! Razbira se, vklyuchvaneto na tezi optsii vinagi e riskovano. (Zashto vinagi triabva da ima kompromis mezhdu svobodata i sigurnostta?) Man stranitsata spomenava da opitame Multiword DMA mode2 - NE GO PRAVETE! Kogato izpulnih slednata komanda:

hdparm -X34 -d1 -u1 /dev/hda

Linuks-a mi uvisna (riadko iavlenie - kakto pishe v statiiata na O'Reilly uvisna kato NT mashina puskashta Java programa) i sled restartirane i posledvalata proverka s e2fsck na failovata sistema zagubih dostta tsenni za men danni (ot tipa na tazi statiia), i vuzmozhnostta da gi vuzstanovia izchezna. Tui kato vse oshte ne sum Linuks-guru (makar da go polzvam ot tri godini), se nalozhi da instaliram i konfiguriram vsichko na novo, koeto (poviarvaite mi) otnema dosta vreme i nervi. SHTe popitate zashto togava pokazvam tazi optsiia ? Ami v man stranitsata pishe taka :) V deistvitelnost na niakoi sistemi bi triabvalo da raboti, a i se nadiavam niakoi neprochel vsichko i prepisvasht komandite na sliapo da si skape Linuks-a, kakto napravih az ;0

Sled kato NE IZPULNITE gornata komanda, opitaite tova:

hdparm -X66 -d1 -u1 -m16 -c3 /dev/hda

/dev/hda:
setting 32-bit I/O support flag to 3
setting multcount to 16
setting unmaskirq to 1 (on)
setting using_dma to 1 (on)
setting xfermode to 66 (UltraDMA mode2)
multcount    = 16 (on)
I/O support  =  3 (32-bit w/sync)
unmaskirq    =  1 (on)
using_dma    =  1 (on)

I posle proverete:

hdparm -tT /dev/hda

/dev/hda:
Timing buffer-cache reads:   128 MB in  3.87 seconds = 33.07 MB/sec
Timing buffered disk reads:  64 MB in  6.10 seconds = 10.49 MB/sec

10.49 MB/sec. Dosta po-dobre ot malkoto 4.77 MB/sec s koeto zapochnahme...

Mezhdu drugoto, zabelezhete che otnovo vklyuchihme -m16 i -c3 ? Tova e zashtoto ne se zapomniat nastroikite na hdparm mezhdu restartiraniiata. Ne ste restartirali?! Ne izpulnihte li posochenata po-gore komanda ? Dobre, togava mozhe da testvate.

Pusnete proverkata (hdparm -tT /dev/hda) oshte niakolko puti. I ako niama problemi preminete v multi-user mode (telinit 3) pusnete X i startiraite Netscape; Mozilla; Konqueror; Galeon; Nautilos; Evolution... i se prigotvete da ne padnete ot stola. Zarezhdat po-burzo ot predi, nali?

Za da vklyuchvate vseki put hdparm s tezi nastroiki e dobre da dobavite komandata v niakoi nachalen skriptov fail, az izpolzvah:

/etc/rc.d/rc.local

kato dobavih v nego slednite redove

# Run the hdaprm
echo -e "Executing hdparm..."
/usr/sbin/hdparm -X66 -d1 -u1 -m16 -c3 /dev/hda

VNIMANIE! Dobavete tezi redove v startov fail samo sled kato se ubedite, che sistemata vi raboti stabilno s tezi optsii na programata.


6. Zabelezhki.

- Triabva da imate root privilegii za da mozhete da izpolzvate hdparm.

- Mozhe da izpolzvate koi da e ot nachalnite skriptove (/etc/rc.d/*), no e dobre hdparm da se startira sled proverkata na failovata sistema (ot fsck).

- Sled purvonachalno zarezhdane bi triabvalo da vidite neshto ot sorta na:

Executing hdparm...

/dev/hda:
setting 32-bit I/O support flag to 3
setting multcount to 16
setting unmaskirq to 1 (on)
setting using_dma to 1 (on)
setting xfermode to 66 (UltraDMA mode2)
multcount    = 16 (on)
I/O support  =  3 (32-bit w/sync)
unmaskirq    =  1 (on)
using_dma    =  1 (on)

Tova ne biva da vi plashi, prosto pokazva, koi optsii na komandata sa vklyucheni i taka ste sigurni, che se e izpulnila.


- Ako imate niakolko tvurdi diska mozhe da gi testvate edin sled drug po sushtiia nachin i da dobavite i tehnite redove v skripta. Primer:
/usr/sbin/hdparm -X66 -d1 -u1 -m16 -c3 /dev/hdb (za /dev/hdb)
/usr/sbin/hdparm -X66 -d1 -u1 -m16 -c3 /dev/hdc (za /dev/hdc)

- Za da vidite vuv vseki edin moment nastoikite na tvurdiia vi disk izpolzvaite

hdparm /dev/hda

primer :

/dev/hda:
multcount    = 16 (on)
I/O support  =  3 (32-bit w/sync)
unmaskirq    =  1 (on)
using_dma    =  1 (on)
keepsettings =  0 (off)
nowerr       =  0 (off)
readonly     =  0 (off)
readahead    =  8 (on)
geometry     = 2498/255/63, sectors = 40132503, start = 0


7. Zaklyuchenie

Tova e edna ot onezi interesni malki programi, koito ubiagvat ot okoto na mnogogodishni Linuks veterani, dokato niakoi ne zabelezhi, che sistemata mu izpolzva dalech ot optimalnite mu nastroiki. (Vizhdate li, vsichki moi suobshteniia na iadroto izglezhdat dobre...) Izpolzvaneto na hdparm nikoga ne e bilo bezriskovo nachinanie, no za smetka na tova e dosta dobre izsledvano.

hdparm ne samo uskoriava: Sushto vi pozvoliava da nastroite i vklyuchite razlichni nisko konsumirashti energiia sustoianiia na tvurdiia si disk.

Vizhte hdparm(8) man stranitsata za posledni dumi.

Surdechni pozdravi za Mark Lord koito e napravil tazi strahotna programa!


8. Izpolzvana literatura

Speeding up Linux Using hdparm - by Rob Flickenger (06/29/2000)
Rob Flickenger is the O'Reilly Network's Systems Administrator
Published on The O'Reilly Network (http://www.oreillynet.com/)
Copyright 2000 O'Reilly & Associates, Inc.
http://linux.oreillynet.com/pub/a/linux/2000/06/29/hdparm.html
- (pochti) pulen prevod s dobavki.

Hard Drive Speed Tweak for Linux -- Written By: Fancy Piper (fancypiper@crosswinds.net)
http://www.linuxnewbie.org/nhf/intel/hardware/hdtweak.html
- izpolzvano za otpravna tochka. Ako go otkriete oburnete vnimanie na belezhkata nai-otdolu na gorespomenatiia sait!

info hdparm


9. Vruzki

Na
http://metalab.unc.edu/pub/Linux/system/hardware/
mozhete da otkriete hdparm, kakto i mnozhestvo drugi polezni programi. Aktualnata versiia na hdparm - 4.1 e okolo 20K.
Direktno svaliane:
http://www.ibiblio.org/pub/Linux/system/hardware/hdparm-4.1.tar.gz

Direktno svaliane na e2fsprogs 1.22 (okolo 1.2MB)
ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/e2fsprogs-1.22.tar.gz

Ako neshto se skape vizhte:
http://www.hack.gr/users/mastoras/tips/debugfs.html


10. Interesno

Interesno e da se otbelezhi, che ima krupka za e2fsprogs (po-tochno za versiia 1.18), koiato sled kato se prilozhi vi pozvoliava da igraete tetris, dokato fsck proveriava za greshki. Drug e vuprosa, kolko e umestno da go izpolzvate. Mozhete da go svalite ot:
http://www.movement.uklinux.net/fscktris/fscktris-1.18-0.1.diff
a e2fsprogs - 1.18 ot:
ftp://tsx-11.mit.edu/pub/linux/packages/ext2fs/e2fsprogs-1.18.tar.gz
Domashna stranitsa za poveche informatsiia:
http://www.movement.uklinux.net/fscktris/fscktris.html



Pozhelavam vi
Happy hacking!

Zahari Evgeniev Dimitrov
10 Avgust 2001.


--------
* - Spokoino ne smiatam da go vrushtam na nikoi prosto obiasniavam zashto zaglavieto e takova.


<< MBR sled preinstalatsiia na Uindous | Testvane na XFree86 4.1.0 bez da mahate stariia X survur >>