|
ot Zahari Evgeniev Dimitrov(20-08-2001)
reiting (22)
[ dobre ]
[ zle ]
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 >>
|
|