NASIL Gentoo Altında hdparm Kullanımı
From Lapis Wiki
Bu makale NASIL bölümü serisinin bir parçasıdır
|
| MasaÜstü • Donanım • Ağ • Dağıtımlar |
| Tarayıcılar• Programlama • Linux ve Oyunlar |
Konu başlıkları |
Giriş
Hdparm IDE aygıt ayarlarını belirleyebileceğiniz bir uygulamadır. Bu ayarlar disk ve CDROMlarınızın hızını arttırmada yardımcı olabilecek DMA kipleri, transfer ayarları ve diğer türlü ayarlardır.Bu ayarlar öntanımlı olarak açık değildir, yani büyük ihtimalle siz bunları açmak ve ayarlamak isteyeceksiniz.Bu rehber aynı zamanda, hdparm ayarları için en güncel bilgiyi verme ve kullanıcıyı hangi ayarların desteklendiği ve sürücü için en uygun ayarların ne olduğu konusunda bilgilendirmeye niyetlenmiştir. Bir çok hdparm rehberi insanlara basitçe bazı belirli '-X33' veya'-c1' gibi kipleri açmayı anlatır ve bunlar güncel olmayan rehberlerdir. İnsanlar daha yeni ve iyi seçenekler varken bu eski ayarları kullanmayı bırakmışlardır. Sürücülerinizi hızlandırarak daha hızlı bir sisteme sahip olursunuz. Ayrca atlayan DVD çalma ve aşırı yavaş yakma problemini de çözmede yararlı olur.
hdparm'ı Kurma
Öncelikle sisteminizde hdparm'ın kurulu olup olmadığını kontrol etmek için root olarak şu komutu verin:
emerge -n hdparm
Farklı Sürücüleriniz Hakkında Bilgi Alma
Değişik sürücüler değişik kabiliyetlere sahiptir. Bu nedenler sürücüleri ayarlayabilmek için ne gibi kabiliyetleri olduğunu bilmeniz gerekir. hdparm -i /dev/hdX size ihtiyacınız olan bilgiyi verecektir. (hdX'i sürücünüzle değiştirin)
Udev sistemi sürücülere biraz daha fazla anlaşılır dosya ismi ile erişmeye izin verir.
Disk sürücüler için (#'i disk numarası ile değiştirin): hdparm -i /dev/discs/disc#/disc CDROMlar için:hdparm -i /dev/cdroms/cdrom#/cdrom
Aşağıdakine benzer bir şeyler almanız gerekir
hdparm -i /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
Bu işlemleri sahip olduğunuz her bir IDE HDD/CDROM için yapmalısınız.MaxMultSec ve PIO/DMA/UDMA kiplerinden mümkün olan azami kipe dikkat edin.
Aygıtları Kıyaslama (Benchmarking)
hdparm belirleyeceğiniz ayarlar arasında ne kadar hız artış farkının olduğunu görmenize izin veren kullanışlı bir kıyas kipi içerir. Kıyaslama yaparken sonuçlara karışacak bütün uygulamaları kapatmanız tavsiye edilir. İdeal olanı, Xorg'un çalıştığı bir xterm'de olmak yerine, bunu konsoldan yapmanızdır. Bir kıyaslama yapmak için, X'i sizin sürücü harfinizle değiştirerek, aşağıdaki gibi bir komut kullanmalısınız.
# hdparm -tT /dev/hdX
Aşağıdaki gibi hız sonuçları almanız gerekir:
hdparm -tT /dev/hdX /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
Tüm sürücülerinizi kıyas etmeniz ve sonuçları sürücüleri ayarlamaya başlamadan önce kaydetmeniz tavsiye edilir, böylece ne kadar artış sağladığınızı görmüş olursunuz.
Örneğin, aşağıdaki test UDMA6 desteği olan bir disk üzerinde yapıldı:
hdparm -tT /dev/hdX /dev/hda: Timing cached reads: 1104 MB in 2.00 seconds = 551.53 MB/sec Timing buffered disk reads: 170 MB in 3.00 seconds = 56.58 MB/sec
İşte düşük, yavaş ayalarlanmış bir sürücü:
hdparm -c0 -u0 -X69 -A0 /dev/hda /dev/hda: setting 32-bit IO_support flag to 0 setting unmaskirq to 0 (off) setting xfermode to 69 (UltraDMA mode5) setting drive read-lookahead to 0 (off) IO_support = 0 (default 16-bit) unmaskirq = 0 (off)
Ve işte (başarım)performans bilgileri:
hdparm -tT /dev/hda /dev/hda: Timing cached reads: 1000 MB in 2.00 seconds = 499.97 MB/sec Timing buffered disk reads: 6 MB in 3.36 seconds = 1.78 MB/sec
Bu da en iyi ayarlarla aynı disk:
hdparm -c1 -u1 -X69 -A1 /dev/hda /dev/hda: setting 32-bit IO_support flag to 1 setting unmaskirq to 1 (on) setting xfermode to 69 (UltraDMA mode5) setting drive read-lookahead to 1 (on) IO_support = 1 (32-bit) unmaskirq = 1 (on)
Ve bu da bu ayarlar için başarım (performans) verileri:
hdparm -tT /dev/hda /dev/hda: Timing cached reads: 1136 MB in 2.01 seconds = 564.58 MB/sec Timing buffered disk reads: 14 MB in 3.26 seconds = 4.29 MB/sec
Aygıt Ayarlarını Değiştirme
- UYARI!: Ayarları değiştirmek olası olarak diskinize zarar verebilir ya da sitemi kararsız kılabilir. Bir çok yeni sürücü için sorun yoktur ancak riski göze alarak bunu yapın
- NOT: Bu ayarlar yeni bir sistem başlangıcında silinecektir. Diskiniz için en iyi ayarları bulduktan sonra, sistem başlangıcında bunların geçerli olması için aşağıdaki yönergeleri takip edin.
Geçerli Ayarları Kontrol Etme
Bazı özellikler ayarlanmış olması gereken rakamı atlayarak kontrol edilebilir. Örneğin, geçerli DMA kip ayarını kontrol etmek için:
# hdparm -d /dev/hda
Bazı ayarlar ise böyle çalışmaz, örneğin xfer kipi (-X) size geçerli ayar yerine size 0 verir veya write-caching (-W) ayarı ayarı vermek için size soracaktır. O anki sürücüdeki geçerli olan ayarları basitçe şu komutu vererek bulabilirsiniz:
# hdparm /dev/hda
Bu size aşağıdakine benzer bir şeyler verecektir:
hdparm /dev/hda /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
Veya transfer kipi gibi daha gelişmiş ayarlar için yukarıda anlatıldığı gibi hdparm -i komutunu kullanın.
DMA kipi -d
Bazı eski sistemlerde DMA kipini değiştirmek kilitlenmelere yol açabilir, uyarmış olalım!
Açmak isteyeceğiniz ilk kip büyük ihtimalle DMA olacaktır. DMA'yı açmak önemlidir. DVD izlemek veya yakmak için DMA'yı açmak isteyeceksinizdir zira DMA açık olmadan DVD oynatma atlayarak olacaktır ve DVD yakma bir kaç dakika yerine saatler alacak, büyük ihtimalle başarısız olacaktır. Eski CDROM ve disk sürücülerde de DMA'yı açmak şiddetle önerilir, başarımı büyük ölçüde etkileyecek ve işlemci yükünü azaltacaktır. Aynı zamanda kendi "chipset"'iniz için kernel derlerken DMA'ya sahip olmanız gereklidir. Bu "Device Drivers>ATA/ATAPI/MFM/RRL support" altında olacaktır, buradan kendi "chipset"'iniz için doğru ayarı seçin. Sizin IDE "chipset"'inizin ne olduğunu öğrenmek için aşağıdaki komutu kullanabilirsiniz:
# lspci |grep -i ide
Bir aygıtta DMA'yı etkinleştirmek için şunu yazın:
# hdparm -d1 /dev/hda
Şimdi bir kıyas yapın ve ne kadar artış olduğuna bakın:
Xfer mode (PIO/SDMA/MDMA/UDMA) -X
Aslında DMA çok fazla farklı xfer kipine sahiptir. Bunlar PIO 1-4 (Programmed IO), SDMA 0-2 (Single-word DMA), MDMA 0-2 (Multi-word DMA) and UDMA 0-5 (Ultra-DMA) gibi kiplerdir. Bu kipler aşağıdaki komut ile ayarlanır. ## işaretlerini istenen kip ve disk harfi için değiştirin.
# hdparm -X## /dev/hda
Genel olarak yüksek kip daha iyidir. İşte size farklı xfer kipleri ve bunlara karşılık gelen numaralar:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | |
| PIO | 08 | 09 | 10 | 11 | 12 | ||
| SDMA | 16 | 17 | 18 | ||||
| MDMA | 32 | 33 | 34 | ||||
| UDMA | 64 | 65 | 66 | 67 | 68 | 69 | 70 |
Örneğin, UDMA6 ayarlamak için:
# hdparm -X70 /dev/hda
Aynı zamanda istenen kipi seçmek için kipin ismini de kullanabilirsiniz:
# hdparm -X udma6 /dev/hda
Bir çok yeni sürücü için bir UDMA kipi kullanmak isteyeceksiniz. Bir xfer kipi etkinleştirdikten sonra hdparm -i yaparak kipin gerçekten ayarlandığına emin olun. İstediğiniz kipi ayarladıktan sonra bir kıyas daha yapın.
Not: hdparm man sayfalarında en iyi kipin başlangıçta sürücü tarafından ayarlanacağı iddia ediliyor.Benim kendi testlerim aynı sonucu verdi.Ben daha kötü başarımı sadece bu parametre ile vakit harcayarak aldım.
32-bit IO_SUPPORT -c
32-bit IO desteğini -c# flag'i (etiket) ile ayarlayabilirsiniz. IO_Support'ın da değişik seviyeleri vardır
| 0 | default 16-bit |
| 1 | 32-bit |
| 2 | 16-bit |
| 3 | 32-bit w/sync |
Eğer mümkünse siz 1 numaralı seçeneği isteyeceksiniz. Ancak, bazı "chipset"ler 32 bit I/O desteklerler fakat uyumluluk problemleri vardır. Bu "chipset"'ler biraz yavaşlama getiren sync seçeneğine ihtiyaç duyarlar. Bunlar 3 numaralı seçeneği kullanmalılar. Sadece 1 ve 3 numaralı seçeneklerle problem yaşıyorsanız, 2 veya 0 numaralı seçenekleri kullanın. Bir çok (fakat hepsi değil) yeni "chipset" 1 numaralı seçenekle iyi çalışır.
İşte "chipset"'iniz için nasıl 32 bit I/O desteğini açacağınız:
# hdparm -c1 /dev/hda
Bu ayarlar bilginin PCI yolundan kontorllore nasıl taşındığına bağlı olark değişebilir. İşlem hacminizi ikiye katlayabilir.
MultSect -m
Sürücünüz üzerinde hdparm -i yaptığınızda bir MaxMultSect sekmesi elde etmelisiniz. Kendi MultSect ayarınızı aşağıda gösterilen komutla beraber -m flag'ini kullanaak ayarlayabilirsiniz. # işaretini sizin MaxMultSect ayarınızla değiştirin.
# hdparm -m# /dev/hda
Bu bir tek I/O kesmesinde diskten ne kadar sektör getireleceğini kontrol eder. Bir çok yeni disk MultSect ayarı olarak 16 ile güzel çalışır, eskiler için bu 8'dir. Bu ayarları değiştirmek disk üzerinden sistem kaynaklarını azaltır ve aynı zamanda disk bant-genişliğini arttırır. Şunu bilin ki bu sadece PIO kipleri için geçerlidir, yani eski sürücüler için 256, yeni sürücüler için 65536'ya kadar olan yüksek sektör sayısı kullanılan DMA kipleri için geçerli değildir. Bugün kullanılan geniş çoğunluktaki diskler kernel tarafından bu ayar konu dışı yapılarak, (U)DMA kullanılmaya ayarlanıyor.
unmaskirq -u
Aşağıdaki komutu kullanarak unmaskirq ayarını etkin hale getirebilirsiniz.
# hdparm -u1 /dev/hda
unmasking ayarını etkin hale getirmek Linux'a bir disk kesmesini kullanırken diğer kesmeleri unmask etme olanağı sağlar. Bu da sisteminizin aynı zamanda benzer görevler yapabilmesini ve genel sistem tepki süresinde başarım artırımına neden olur.
Spindown -S
Bu seçenek diskinizin Spindown ayarını etkin hale getirir.
# hdparm -Sx /dev/hda
Sürücü yavaşladıktan sonraki (Saniye) türünden zaman değeri sizin x'inizin 5'le çarpılmış halidir. Man Sayfasından:
Bir sıfır değeri, "zaman-aşımını kapatır": aygıt kendiliğinden (bekleme)standby kipine geçmez. 1'den 240'a kadar olan değerler 5'in katlarını belirtir, 2 saniyeden 20 dakikaya zaman-aşımaları sonuç verir. 241'den 251'e kadar olan değerler 30 dakikanın 1'den 11'e kadar olan ünitelerini belirtir, 30 dakikadan 5,5 saate zaman-aşımları sonuç verir. 252 değeri 21 dakikalık zaman-aşımı belirtir. 253'lük bir değer satıcı-belirli bir değer olan 8 ile 12 saat arasında bir zaman-aşımı belirler. 255'lik bir değer 21 dakika 5 saniye olarak anlaşılır. 254 değeri ayrılmıştır. Bazı eski sürücülerin farklı değerler için farklı ayarlara sahip olabileceğini unutmayın.
Örnek:
hdparm -S12 /dev/hda
Şimdi sürücü 1 dakikadan sonra yavaşlar. (12x5=60s) x=0 yaparak kapatabilirsiniz.
Acoustic Yönetimi -M
# hdparm -Mx /dev/hda
128 sessiz-kipidir. Eğer x'i 254 yaparsanız azami hız alırsınız fakat arada da bir sayı seçebilirsiniz.
Güç Yönetimi -B
Bu seçenek sürücünüzün Güç Yönetimini kontrol eder.
# hdparm -Bx /dev/hda
Azami güç kazancı için x'i 1 yapın veya Güç Yönetimini kapamak için x'i 255 yapın. Arada bir sayı da seçebilirsiniz.
Write-Caching -W
Write-caching seçeneği aşağıdaki kullanılarak etkin hale getirilebilir:
# hdparm -W1 /dev/hda
Write-Caching özelliğinin günlüklü(journaling) dosya-sistemlerinde problem çıkarttığı belirtildi (örneğin ext3 ve Reiser). Bir çok sistemde etkin hale getirilmesi tavsiye edilmez.
Read-lookahead -A
Read-lookahead seçeneği aşağıdaki kullanılarak etkin hale getirilebilir:
# hdparm -A1 /dev/hda
Readahead -a
readhead fs seçeneği aşağıdaki ile değiştirilebilir:
# hdparm -a# /dev/hda
Bir çok sürücü kendiliğinden 256 değerine sahiptir.
hdparm Seçeneklerini Kalıcı Yapmak
Şimdi, ideal hdparm özellikleri üzerinde çalıştınız,bunun bir sonraki sistem açılışında kalıcı olması için /etc/conf.d/hdparm dosyasını düzenlemeniz gerekli.
Aşağıdaki dosyayı görüyor olmalısınız:
| File: /etc/conf.d/hdparm (default) |
# 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" |
Eğer sürücülerinizin bir çoğu aynı ayarı kullanıcaksa, istediğini hdparm seçeneğinin yansıması için all_args' değiştirin. İşte örnek bir dosya. hda ve hdb UDMA-5 destekleyen sıradan sürücüler, hdc sadece UDMA-2 destekliyor ve hdd 8 readhead'li ve sadece UDMA-0 destekleyen bir CDROM. Sıradan bir CDROM olduğu için write-caching gerekli değil.
| 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 -W1 -m16" hdb_args="$hda_args" hdc_args="-A1 -d1 -u1 -c3 -X66 -W1 -m16" hdd_args="-A1 -d1 -u1 -c3 -X64 -m16 -a8" |
Son olarak hdparm'ı root olarak açılışa ekleyin:
# rc-update add hdparm boot
Sorun Çözme
hdparm -i bir UDMA kipi gösteriyor fakar bu kipi ayarlamaya çalıştığımda hiç bir şey olmuyor
Bunun sebebi büyük ihtimalle anakartınızın bu kipte çalışması gereken yüksek ATA kipini desteklememesinden kaynaklanıyor. Eğer anakartınızın bunu desteklediğinden eminseniz, aygıtın anakart üzerinde doğru IDE kablosuna bağlandığından emin olunç Farklı ATA belirteçleri farlı renkli soketlere sahiptir.
İşte değişik UDMA ve gerekli ATA kipleri:
| UDMA | ATA |
|---|---|
| 0 | ATA 16 |
| 1 | ATA 24 |
| 2 | ATA 33 |
| 3 | ATA 44 |
| 4 | ATA 66 |
| 5 | ATA 100 |
| 6 | ATA 133 |
'hdparm -i' gibi temel komutlarda dahi "İşleme izin verilmedi" hatası alıyorum
Muhtemelen hdparm'ı bir SATA veya daha değişik sürücü üzerinde deniyorsunuz. hdparm çok kısıtlı SATA desteğine sahiptir, ancak bu sürücüler genellikle kendiliğinden ayarlanmış iyi seçeneklere sahiptir. Temel bilgilere -i kullanmadan ulaşabilirsiniz ve üzerinde kıyas yapabilirsiniz. Kıyas yaparak iyi hızlar alıp almadığınıza bakın (genellikle önbellek okumalar için 1000MB'ın üzeri ve tamponlanmış okumalar için 50MB'ın üstü)
http://gentoo-wiki.com/Blktool hdparm için SATA ve SCSI sürücüler için bir alternatiftir.
DMA (-d1) ayarı için "İşleme izin verilmedi" hatası alıyorum
Kullandığınız kernel bu IDE yönergelerini desteklemiyor. Kerneli tüm bu ayarları ekleyerek derledikten sonra, yine aynı hata dönerse, bu eski bir donanım problemidir (benim tecrübem). IDE "chipset" eklentilerinizi Modül olarak değil de dorğudan kernele gömebilirsiniz.Böylece bu kod IDE_GENERIC'den önce yüklenir ve sorun ortadan kalkar.
Eğer sonuncusu işe yaramazsa, BIOS ayarlarınızı kontrıl edin. Örneğin, ASUS'un Win2K/XP için doğal olarak kabul edilen "enhanced IDE" kipi sisteminizi süründürebilir.Orada sürücünüz için bir çok başarım problemi yaşayacağınız ayar mevcuttur. Eğer BIOS'unuz sürücünüz için ayarlara sahipse, kernelinizi derlemeden önce bunlara bakmaı unutmayın.
İlgili Bağlar
http://gentoo-wiki.com/MAN_hdparm
- 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
- http://gentoo-wiki.com/Blktool 'un proje sayfası - http://sourceforge.net/projects/gkernel/
YAPILACAKLAR
- Çıktı örneklerini ayarlanmışlar yerine ayarlanmamış olarak verme.
- Hangi farklı kiplerin gerçekte neler yaptığını daha ayrıntılı anlatma ve beklenen düzelmeleri gösterme
- Hız düzelmeleri için bazı kaba kıyaslamalar gösterme
Belgenin orijinal ve çevrilmemiş hali: http://gentoo-wiki.com/HOWTO_Use_hdparm_to_improve_IDE_device_performance
