HOGYAN Használjuk a hdparm-ot
A Gentoo Linux Wiki wikiből
Tartalomjegyzék |
[szerkesztés] Bemutatás
A hdparm egy olyan eszköz, ami az IDE eszközök beállításait tudja megváltoztatni. Ebbe beletartoznak olyanok, mint a DMA mód, xfer beállítások, és olyan további beállítások, melyeket esetleg be szeretnénk kapcsolni a merevlemezeink vagy cdromjaink sebességének növeléséhez. Ezek alapértelmezetten nincsenek bekapcsolva.
Ez a dokumentum megpróbál friss információkat adni a hdparm-ról, s arról, hogy a felhasználó miként ellenőrizheti, hogy milyen beállítások támogatottak, mit használjunk a legjobb eredmény eléréséhez.
Sok hdparm leírás csak annyit moond el, hogy élesítsük be például a "-X33" vagy a "-c1" kapcsolót, s a legtöbb ilyen leírás elég régi már, s így esetleg újabb beállítások lehetségesek. A merevlemezek gyorsításával egy gyorsabb rendszerünk lehet. Ez ugyancsak segíthet megoldani az ugráló DVD lejátszás problémáját, vagy a nagyon lassú CD-írást.
[szerkesztés] hdparm telepítése
Először is ellenőrizzük, hogy a hdparm már telepítve van-e a rendszeren, rootként a következő parancsot gépeljük be:
# hdparm -V
Ha a hdparm már telepítve van, valami hasonlót kapunk:
hdparm v5.7
Egyébként egy hibaüzenet fogad:
bash: hdparm: command not found
Ha nincs telepítve, megtehetjük ezt a következő paranccsal:
# emerge hdparm
A telepítés után ellenőrizzük az előző paranccsal, hogy biztosak legyünk benne, hogy jól működik.
[szerkesztés] Információk beszerzése a különböző meghajtókról
Az egyes meghajtóknak különböző képességeik vannak, ezért a helyes beállításukhoz ismerni kell, hogy mit is tudnak. A következő parancs megadja a kivánt információt. Cseréljük le a hda-t a vizsgált meghajtóra: # hdparm -i /dev/hda
Az udev rendszert használó rendszerek lehetővé teszik a meghajtók még érthetőbb fájlnév alatti elérését is.
Merevlemezekhez (a ? jelet cseréljük le a lemez sorszámára):
# hdparm -i /dev/discs/disc?/disc
CDROM-okhoz:
# hdparm -i /dev/cdroms/cdrom?/cdrom
Valami hasonlót kell kapjunk:
/dev/hdd:
Model=WDC WD80EB-28CGH2, FwRev=24.84G24, SerialNo=WD-WMA9N7936819
Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
RawCHS=15509/16/63, TrkSize=57600, SectSize=600, ECCbytes=40
BuffType=DualPortCache, BuffSize=768kB, MaxMultSect=16, MultSect=16
CurCHS=15509/16/63, CurSects=15633072, LBA=yes, LBAsects=15633072
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 *udma2 udma3 udma4 udma5
AdvancedPM=no WriteCache=enabled
Drive conforms to: device does not report version:
* signifies the current active mode
Ezt a műveletet minden IDE merevlemezre és cdromra megtehetjük. Figyeljünk oda a MaxMultSec és a PIO/DMA/UDMA módokban elérhető maximális mód értékekre!
[szerkesztés] Eszközök összehasonlítása
A hdparm-nak van egy nagyon kézreálló összehasonlító módja is. Ez megmutathatja, hogy mekkora sebességnövekedést ad az adott beállítás. Amikor egy ilyen összehasonlítást futtatunk, ajánlott, hogy minden más, eredményt befolyásoló programot bezárjunk. Az ideális az lenne, ha ezt konzolról futtatnánk, bármilyen grafikus felület nélkül.
Az összehasonlítás végrehajtásához adjuk ki a következő parancsot, de az X helyére írjuk be a meghajtó számát:
# hdparm -tT /dev/hdX
Valami ehhez hasonló sebességértékeket kell kajunk:
/dev/hdd: Timing cached reads: 496 MB in 2.00 seconds = 247.42 MB/sec Timing buffered disk reads: 60 MB in 3.03 seconds = 19.81 MB/sec
Ajánlott minden meghajtó ellenőrzését véghezvinni és az eredményeket lementeni az állítgatás előtt. Így a végén meg lehet mondani, milyen mértékű volt a javulás.
[szerkesztés] Eszközbeállítások megváltoztatása
FIGYELEM! A beállítások megváltoztatása esetleg tönkreteheti a hardvert vagy akár a rendszert instabillá teheti. A legújabb meghajtók elég jól elboldogulnak, de azért csak a saját feleősségedre próbálkozz!
Megjegyzés: Ezek a beállítások nem maradnak meg újraindítás után. A legjobb beállítások megtalálása után gondoskodni kell a beállítások minden induláskor történő érvényre juttatásáról.
[szerkesztés] Jelenlegi bállítások ellenőrzése
A legtöbb beállítás ellenőrizhető a beállításához használt szám elhagyásával. Például a jelenlegi DMA beállítások ellenőrzését a következők teszik lehetőve:
# hdparm -d /dev/hda
Némely beállítás azonban nem így működik, például az xfer mód (-X) inkább nullára állítja értékét, mintsem az aktuális értékét adná vissza. Az írási gyorstár (write-caching, -W) bekér egy értéket. Általánosan a jelenlegi beállítások megjelenítésére a
# hdparm /dev/hda
parancs szolgál.
Ez a következőhöz hasolót ad vissza:
/dev/hda: multcount = 16 (on) IO_support = 3 (32-bit w/sync) unmaskirq = 1 (on) using_dma = 1 (on) keepsettings = 0 (off) readonly = 0 (off) readahead = 256 (on) geometry = 15509/16/63, sectors = 8004132864, start = 0
Vagy használjuk a 'hdparm -i' parancsot úgy, ahogy fentebb le van írva, például az xfer mód állítása esetén, vagy egyéb, magasabb szintű beállításokhoz.
[szerkesztés] DMA mód -d
A DMA mód megváltoztatása lefagyaszthatja a rendszert! Figyeljünk oda! Az első mód, amit engedélyezni szeretnénk, az valószínűleg a DMA. A DMA bekapcsolása fontos például DVD meghajtóknál ha DVD-t szeretnénk nézni vagy írni. DMA nélkül a lejátszás ugrik, az írás nagyon hosszú ideig tart, és valószínű, hogy hibás lesz. Normál CDROM-okon és merevlemezeken is ajánlott a DMA-t bekapcsolni, mert nagyban növeli a sebességet, és csökkenti a processzor terhelését. A kernelbe bele kell fordítani a chipsethez tartozó DMA opciót is. Ehhez a kernel konfiguráció "Device Drivers > ATA/ATAPI/MFM/RRL support" pontja alatt a chipsetünkhöz tartozó opciót kell bejelölni.
Egy eszközön a kövektező paranccsal engedélyezhetjük a DMA-t:
# hdparm -d1 /dev/hda
Ha minden jól megy, a következőhöz hasonló kimenetet kapunk:
/dev/hda: setting using_dma to 1 (on) using_dma = 1 (on)
Most futtassunk egy összehasonlítást/tesztet, hogy lássuk, mennyit javult a sebesség.
[szerkesztés] Xfer mód (PIO/SDMA/MDMA/UDMA) -X
A DMA-nak többféle xfer módja van. Ez lehet PIO 1-4 (Programmed IO), SDMA 0-2 (Sinlge-word DMA), MDMA 0-2 (Multi-word DMA) és UDMA 0-5 (Ultra-DMA). Ezeket a módokat a következő paranccsal állíthatjuk, ha a ##-t és a hda-t lecseréljük a kívánt saját módunkkal illetve meghajtónkkal:
# hdparm -X## /dev/hda
Általában a magasabb számú mód a jobb. Itt egy lista a különböző xfer módokról a hozzá tartozó számmal:
| 0 | 1 | 2 | 3 | 4 | 5 | |
| PIO | 08 | 09 | 10 | 11 | 12 | |
| SDMA | 16 | 17 | 18 | |||
| MDMA | 32 | 33 | 34 | |||
| UDMA | 64 | 65 | 66 | 67 | 68 | 69 |
Például az UDMA2 mód beállítása:
# hdparm -X66 /dev/hda
A kívánt mód ugyancsak kiválasztható a nevének magadásával is:
# hdparm -X udma2 /dev/hda
A legtöbb modern merevlemez valószínűleg UDMA módot használ. Az xfer mód beállítása után futtassunk egy 'hdparm -i' parancsot, hogy ellenőrizhessük, hogy a mód valójában be lett-e állítva. A bállítás után csináljunk egy összehasonlító tesztet.
[szerkesztés] 32-bit IO_SUPPORT -c
Be lehet állítani a 32 bites IO támogatást is a -c opcióval.
Az IO_support-nak 4 különböző szintje van:
| 0 | alapértelmezett, 16-bit |
| 1 | 32-bit |
| 2 | 16-bit |
| 3 | 32-bit w/sync |
| File: /etc/conf.d/hdparm (alapértelmezett) |
# Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/sys-apps/hdparm/files/hdparm-conf.d.3,v 1.2 2004/09/06 02:17:08 swegener Exp $ # You can either set hdparm arguments for each drive using hdX_args, # discX_args, cdromX_args and genericX_args, e.g. # # hda_args="-d1" # disc1_args="-d1" # cdrom0_args="-d1" # or, you can set hdparm options for ALL drives using all_args, e.g. # # all_args="-d1" |
A meghajtók többsége ugyanazt a beállítást alkalmazza, módosítsuk az all_args sort a kívánt beállításra.
Itt van egy példafájl, ahol a hda és hdb standard merevlemezek, amik támogatják az UDMA-5-öt, míg a hdc csak az UDMA-2-t. A hdd egy cdrom 8-as előreolvasási (readahead) értékkel, s ez az eszköz csak az UDMA-0-t támogatja. S minthogy ez egy egyszerű cdrom, írási cache nem szükséges.
| File: /etc/conf.d/hdparm (Sample) |
# Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/sys-apps/hdparm/files/hdparm-conf.d.3,v 1.2 2004/09/06 02:17:08 swegener Exp $ # You can either set hdparm arguments for each drive using hdX_args, # discX_args, cdromX_args and genericX_args, e.g. # # hda_args="-d1" # disc1_args="-d1" # cdrom0_args="-d1" # or, you can set hdparm options for ALL drives using all_args, e.g. # #all_args="-d1" hda_args="-A1 -d1 -u1 -c3 -X69 -W 1 -m 16" hdb_args="$hda_args" hdc_args="-A1 -d1 -u1 -c3 -X66 -W 1 -m 16" hdd_args="-A1 -d1 -u1 -c3 -X64 -m 16 -a 8" |
[szerkesztés] Hibaelhárítás
[szerkesztés] A hdparm -i mutatja az UDMA módot, de nem történik semmi, amikor megpróbálom beállítani azt a módot
Ez leggyakrabban attól van, hogy az alaplap nem támogatja ennek a módnak a futtatásához szükséges magasabb ATA módokat. Amennyiben biztos benne, hogy az alaplap támogatja e módot, meg kell győződni arról, hogy az eszköz a megfelelő IDE csatlakozóra van kötve az alaplapon- A különböző ATA specifikációknak különböző színű csatlakozóajzatai lehetnek az alaplapon.
Itt egy lista a különböző UDMA módokról és a hozzájuk tartozó ATA értékekkel:
| UDMA | ATA |
| 0 | ATA 16 |
| 1 | ATA 24 |
| 2 | ATA 33 |
| 3 | ATA 44 |
| 4 | ATA 66 |
| 5 | ATA 100 |
[szerkesztés] Egyszerű parancsoknál is (hdparm -i) az "Operation not supported" hibaüzenetet kapom
Valószínűleg egy SATA vagy más bizarr hardveren próbálja a hdparm-ot futtatni. A hdparm jelenleg nagyon korlátozottan támogatja a SATA meghajtókat. Ezek a meghajtók általában felkonfigurálják magukat legmegfelelőbb beállításokra. Az alapvető információk kiolvasását és a tesztelést ettől függetlenül valószínűleg lefuttathatjuk. Próbáljuk a meghajtót teszteltetni ahhoz, hogy kiderüljön, hogy elég jó sebességeket kapunk (általában 1000MB/s felett cache-elt olvasásnál és 100MB/s felett bufferelt olvasásnál).
[szerkesztés] Hivatkozások
- http://gentoo-wiki.com/HOWTO_Use_hdparm_to_improve_IDE_device_performance (angol eredeti)
- The hdparm man page.
- Linux Tuning Guide - http://www.laukas.com/knbase/linux_special/
- LinuxDevCenter: Speeding up Linux Using hdparm (O’Reilly) - http://www.linuxdevcenter.com/pub/a/linux/2000/06/29/hdparm.html
[szerkesztés] Tennivalók
- Replace output examples with default untweaked examples rather than the already tweaked ones.
- Add more information about what the different modes actually do and the expected improvements.
- Some benchmarks to show a rough idea of the speed improvements.
