Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2015-10-05 03:31:46

  Danio - Zbanowany

Danio
Zbanowany
Zarejestrowany: 2010-04-04

ustawienie multcount na 16 oraz I/0 support na 32 sync w hdparm

Multcount – od multiple sector count – jest to liczba wielu sektorów, a innymi słowy wartość ta określa, ile sektorów pobierana jest z dysku twardego w czasie jednego przerwania Input / Output (We-jścia / Wy-jścia). Wartość tą obsługują prawie wszystkie nowoczesne dyski IDE. Po włączeniu tej funkcji obciążenie dyskowego I/O przez system operacyjny zmniejsza się o od 30 do 50%. W wielu komputerach powoduje też zwiększenie się przepustowości danych – od 5 do 50%.





próbowałem ustawić na 16 obecnie jest ustawione 1


hdparm /dev/sda

Kod:

/dev/sda:
 multcount     =  1 (on)
 IO_support    =  1 (32-bit)
 readonly      =  0 (off)
 readahead     = 256 (on)
 geometry      = 20023/255/63,

hdparm -m16 /dev/sda

/dev/sda:
setting multcount to 16
Use of -m is VERY DANGEROUS.
Only the old IDE drivers work correctly with -m with kernels up to at least 2.6.29.
libata drives may fail and get hung if you set this flag.
Please supply the --yes-i-know-what-i-am-doing flag if you really want this.
Program aborted.



MÓJ DYSK OBSŁUŻY 16

Capabilities:

Kod:

    LBA, IORDY(can be disabled)
    Queue depth: 32
    Standby timer values: spec'd by Standard, with device specific minimum
    R/W multiple sector transfer: Max = 16    Current = 1
    Recommended acoustic management value: 128, current value: 128
    DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
         Cycle time: min=120ns recommended=120ns
    PIO: pio0 pio1 pio2 pio3 pio4 
         Cycle time: no flow control=120ns  IORDY flow control=120ns

JEST JAKIEŚ ZAGROŻENIE ŻE COŚ SIĘ ZEPSUJE JEŚLI TAK TO JAKIE ? Warto ustawić multcount na 16 ?


chciałbym ustawić też I/O Support na 32 sync

Kod:

    hdparm -c0 // Set operating mode to 16-bits.
    hdparm -c1 // Set operating mode to 32-bits.
    hdparm -c3 // Set operating mode to 32-bits synchronized.

Czy mój dysk to obsłuży ?

hdparm -c3 /dev/sda

Kod:

/dev/sda:
 setting 32-bit IO_support flag to 3
 HDIO_SET_32BIT failed: Invalid argument
 IO_support    =  1 (32-bit)

Ostatnio edytowany przez Danio (2015-10-05 03:34:12)


I cóż że dymią krematoria ? toż w nich przetapia się historia...

Offline

 

#2  2015-10-05 06:54:42

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: ustawienie multcount na 16 oraz I/0 support na 32 sync w hdparm

A to ciekawy ficzer. Sprawdziłem u siebie i mam go wyłączonego. Dodatkowo ja mam ustawiony "read ahead" na 256, co daje odczyt 32KiB danych przy każdym odwołaniu się do dysku, co raczej spowalnia trochę pracę systemu, bo jakby nie patrzeć te pliki mają zwykle o wiele mniejszy rozmiar. Oczywiście, do tego jeszcze dochodzi ich położenie ale jakoś nie zakładałbym, że te pliki występują na dysku jeden po drugim.

Ja sobie jeszcze o tym doczytam i pewnie poprzestawiam co nieco. xD

___


No i ustawiłem sobie:

Kod:

# hdparm -I /dev/sda |grep 'R/W multiple sector transfer'
        R/W multiple sector transfer: Max = 16  Current = 0

# hdparm --yes-i-know-what-i-am-doing -m 16 /dev/sda

/dev/sda:
 setting multcount to 16
 multcount     = 16 (on)

# hdparm -I /dev/sda |grep 'R/W multiple sector transfer'
        R/W multiple sector transfer: Max = 16  Current = 16

W logu pokazało się:

Kod:

Oct 05 07:01:09 morfikownia kernel: ata1.00: configured for UDMA/100
Oct 05 07:01:09 morfikownia kernel: ata1: EH complete

Ale jakiejś różnicy nie widać:

Kod:

# hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   5104 MB in  2.00 seconds = 2552.20 MB/sec
 Timing buffered disk reads: 276 MB in  3.01 seconds =  91.59 MB/sec

 Timing cached reads:   5140 MB in  2.00 seconds = 2569.99 MB/sec
 Timing buffered disk reads: 286 MB in  3.02 seconds =  94.84 MB/sec

 Timing cached reads:   4740 MB in  2.00 seconds = 2370.27 MB/sec
 Timing buffered disk reads: 280 MB in  3.01 seconds =  92.91 MB/sec

Wartości są zbliżone do tych co były wcześniej, nawet przed było 97MB/sec ale też i 88MB/sec, także tutaj raczej nic nie pomogło. Choć jak czytam sobie na necie to:

IMPORTANT: On the Western Digital Caviar Disk it’s known that this setting slows them down.
-- http://ubuntuforums.org/showthread.php?t=459101

Sprawdziłem też na wartości 8 ale też jakoś nie idzie różnicy zauważyć, także ja to sobie zostawię na 16 póki co.

Przestawiłem też read ahead, na to co zalecają, czyli na wartość tego powyższego parametru i tu już widać różnicę:

Kod:

# hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   4256 MB in  2.00 seconds = 2128.26 MB/sec
 Timing buffered disk reads: 214 MB in  3.00 seconds =  71.27 MB/sec

 Timing cached reads:   4806 MB in  2.00 seconds = 2403.15 MB/sec
 Timing buffered disk reads: 166 MB in  3.01 seconds =  55.23 MB/sec

 Timing cached reads:   4798 MB in  2.00 seconds = 2399.40 MB/sec
 Timing buffered disk reads: 196 MB in  3.00 seconds =  65.30 MB/sec

Przy 64 zaś zdaje się być w granicach maximum. Zatem można z tych 256 zjechać na 64.

Offline

 

#3  2015-10-05 08:36:14

  Danio - Zbanowany

Danio
Zbanowany
Zarejestrowany: 2010-04-04

Re: ustawienie multcount na 16 oraz I/0 support na 32 sync w hdparm

W logu pokazało się:

Kod:

Kod:

Oct 05 07:01:09 morfikownia kernel: ata1.00: configured for UDMA/100
Oct 05 07:01:09 morfikownia kernel: ata1: EH complete

nie powinieneś mieć UDMA/ 133 ?

jak przestawiłeś read ahead ? u mnie jest 256


hdparm /dev/sda

/dev/sda:
multcount     = 16 (on)
IO_support    =  1 (32-bit)
readonly      =  0 (off)
readahead     = 256 (on)
geometry      = 20023/255/63, sectors = 321672960, start = 0

multcount też już przestawiłem


jeszcze  IO_support  chciałbym na 32 sync ale nie wiem czy da radę i czy to bezpieczne.

hdparm -k /dev/sda

Kod:

/dev/sda:
 HDIO_GET_KEEPSETTINGS failed: Inappropriate ioctl for device

nie chce pamiętać ustawień


I cóż że dymią krematoria ? toż w nich przetapia się historia...

Offline

 

#4  2015-10-05 09:17:29

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: ustawienie multcount na 16 oraz I/0 support na 32 sync w hdparm

nie powinieneś mieć UDMA/ 133 ?

No mój dysk nie obsługuje trybu 6 UDMA, choć to dziwne:

Kod:

# hdparm -I /dev/sda |grep DMA:
        DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5

jak przestawiłeś read ahead ?

Kod:

# hdparm -a 64 /dev/sda

jeszcze  IO_support  chciałbym na 32 sync

U mnie dysk nie obsługuje tego. Jeśli u ciebie obsługuje, to sobie ustaw, choć na necie piszą, że to może spowolnić transfer.

nie chce pamiętać ustawień

No bo trzeba to zapisać w pliku /etc/hdparm.conf .

Ostatnio edytowany przez morfik (2015-10-05 09:59:19)

Offline

 

#5  2015-10-05 18:42:39

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: ustawienie multcount na 16 oraz I/0 support na 32 sync w hdparm

Doczytałem jeszcze trochę i wychodzi na to, że z tym hdparm w debianie to jest syf. Przede wszystkim, tutaj jest jakiś skrypt init, który wczytuje ustawienia z plików /etc/hdparm.conf i /etc/default/hdparm.conf i to rozwiązanie jest tylko stosowane na debianie i nigdzie indziej. Ja próbowałem ustawić sobie te opcje via /etc/hdparm.conf ale jako, że tam jedna wymaga podania --yes-i-know-what-i-am-doing , to nie idzie jej ustawić. Próbowałem to dopisać w hdparm_opts w /etc/default/hdparm.conf ale też ciągle błęda wyrzucało przy aplikowaniu ustawień.

W końcu się wnerwiłem i wywaliłem cały ten skrypt init od hdparm z autostartu i postanowiłem poszukać jakiejś alternatywnej metody. Na liście mailingowej systemd było zapytanie na temat poprawnego sposobu na aplikowanie ustawień hdparm i wyszło na to, że powinno się to robić via udev przy jednoczesnym zrezygnowaniu z tych dodatkowych debianowych wynalazków. Na archwiki jest nawet info jak to zrobić. Z tym, że tamto rozwiązanie nieco ssie, bo operuje na dyskach typu sda, sdb, a jak ktoś podopnie inny dysk i zamienią się one literkami, to wtedy będzie problem.

Ja u siebie napisałem regułkę w taki sposób:

Kod:

ACTION=="add", SUBSYSTEM=="block", \
    ENV{ID_SERIAL}=="WDC_WD2500BEKT-60A25T1_WD-WX41A90E5928", \
    RUN+="/sbin/hdparm --yes-i-know-what-i-am-doing -m 16 -a 64 /dev/disk/by-id/ata-WDC_WD2500BEKT-60A25T1_WD-WX41A90E5928"

Jadę po serialu urządzenia, co gwarantuje, że ta reguła tylko do tego konkretnego dysku będzie aplikowana. Trzeba tylko uważać na ten powyższy link w /dev/disk/by-id/ , bo on jest tworzony przez inna regułę udeva (/lib/udev/rules.d/60-persistent-storage.rules), i trzeba tak dobrać numer dla pliku, by ta powyższa reguła została w ogóle zaaplikowana. Dodatkowo, jest także /lib/udev/rules.d/85-hdparm.rules i na dobrą sprawę to dać numer 90. xD


Kod:

# udevadm test /sys/block/sda/
...
run: '/lib/udev/hdparm'
run: '/sbin/hdparm --yes-i-know-what-i-am-doing -m 16 -a 64 /dev/disk/by-id/ata-WDC_WD2500BEKT-60A25T1_WD-WX41A90E5928'

Zatem reguła jest aplikowana pomyślnie, co można sprawdzić też po restarcie via hdparm. Także ten cały debianowy syf od hdparm można wywalić z powodzeniem i jechać na samym udevie.

Offline

 

#6  2015-10-07 06:16:16

  Danio - Zbanowany

Danio
Zbanowany
Zarejestrowany: 2010-04-04

Re: ustawienie multcount na 16 oraz I/0 support na 32 sync w hdparm

Kod:

ACTION=="add", SUBSYSTEM=="block", \
    ENV{ID_SERIAL}=="WDC_WD2500BEKT-60A25T1_WD-WX41A90E5928", \
    RUN+="/sbin/hdparm --yes-i-know-what-i-am-doing -m 16 -a 64 /dev/disk/by-id/ata-WDC_WD2500BEKT-60A25T1_WD-WX41A90E5928"

tą regułkę to gdzie dopisujesz ?


I cóż że dymią krematoria ? toż w nich przetapia się historia...

Offline

 

#7  2015-10-07 08:51:44

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: ustawienie multcount na 16 oraz I/0 support na 32 sync w hdparm

Pewnie w pliku:

Kod:

/etc/udev/rules.d/65-dyzio.rules

albo jakiś podobny (trzeba utworzyć).

Nie wiem tylko dokładnie, jakie znaczenie mają te cyferki na początku nazwy. :P

Ostatnio edytowany przez Jacekalex (2015-10-07 08:55:34)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#8  2015-10-07 11:24:55

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: ustawienie multcount na 16 oraz I/0 support na 32 sync w hdparm

No tak w /etc/udev/rules.d/ tylko numer dać z 90.

A cyferki odpowiadają za kolejność czytania reguł -- te z niższym są czytane jako pierwsze. Zatem jeśli jest reguła co ma numer 60 i tworzy ona link do urządzenia i ten link jest wykorzystywany w jakiejś innej regule, to jej numer musi być większy od 60, bo inaczej nie będzie linku i reguła nie zostanie dopasowania. xD

Offline

 

#9  2015-10-08 16:01:05

  Danio - Zbanowany

Danio
Zbanowany
Zarejestrowany: 2010-04-04

Re: ustawienie multcount na 16 oraz I/0 support na 32 sync w hdparm

/etc/udev/rules.d/90-dyzio.rules Zamiast dyzio dać nazwę swego usera ? czy to obojętne ?


I cóż że dymią krematoria ? toż w nich przetapia się historia...

Offline

 

#10  2015-10-08 18:21:14

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: ustawienie multcount na 16 oraz I/0 support na 32 sync w hdparm

Obojętne.

Offline

 

#11  2015-10-09 23:41:25

  Danio - Zbanowany

Danio
Zbanowany
Zarejestrowany: 2010-04-04

Re: ustawienie multcount na 16 oraz I/0 support na 32 sync w hdparm

stworzyłem plik i nadal nie mam multicount 16 po restarcie

nano /etc/udev/rules.d/90-dyzio.rules

Kod:

ACTION=="add", SUBSYSTEM=="block", \
    ENV{ID_SERIAL}=="WD-WCAP01521905", \
    RUN+="/sbin/hdparm --yes-i-know-what-i-am-doing -m 16 /dev/disk/by-id/ata-WDC_WD1600YS-01SHB0_WD-WCAP01521905"

hdparm -I /dev/sda

Kod:

/dev/sda:

ATA device, with non-removable media
    Model Number:       WDC WD1600YS-01SHB0                     
    Serial Number:      WD-WCAP01521905
    Firmware Revision:  20.06C03
Standards:
    Supported: 7 6 5 4 
    Likely used: 8
Configuration:
    Logical        max    current
    cylinders    16383    16383
    heads        16    16
    sectors/track    63    63
    --
    CHS current addressable sectors:   16514064
    LBA    user addressable sectors:  268435455
    LBA48  user addressable sectors:  321672960
    Logical/Physical Sector size:           512 bytes
    device size with M = 1024*1024:      157066 MBytes
    device size with M = 1000*1000:      164696 MBytes (164 GB)
    cache/buffer size  = 16384 KBytes
Capabilities:
    LBA, IORDY(can be disabled)
    Queue depth: 32
    Standby timer values: spec'd by Standard, with device specific minimum
    R/W multiple sector transfer: Max = 16    Current = 1
    Recommended acoustic management value: 128, current value: 128
    DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
         Cycle time: min=120ns recommended=120ns
    PIO: pio0 pio1 pio2 pio3 pio4 
         Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
    Enabled    Supported:
       *    SMART feature set
            Security Mode feature set
       *    Power Management feature set
       *    Write cache
       *    Look-ahead
       *    Host Protected Area feature set
       *    WRITE_BUFFER command
       *    READ_BUFFER command
       *    NOP cmd
       *    DOWNLOAD_MICROCODE
            Power-Up In Standby feature set
       *    SET_FEATURES required to spinup after power up
            SET_MAX security extension
       *    Automatic Acoustic Management feature set
       *    48-bit Address feature set
       *    Device Configuration Overlay feature set
       *    Mandatory FLUSH_CACHE
       *    FLUSH_CACHE_EXT
       *    SMART error logging
       *    SMART self-test
       *    General Purpose Logging feature set
       *    WRITE_{DMA|MULTIPLE}_FUA_EXT
       *    Gen1 signaling speed (1.5Gb/s)
       *    Gen2 signaling speed (3.0Gb/s)
       *    Native Command Queueing (NCQ)
       *    Host-initiated interface power management
       *    Phy event counters
       *    DMA Setup Auto-Activate optimization
       *    Software settings preservation
       *    SMART Command Transport (SCT) feature set
       *    SCT Read/Write Long (AC1), obsolete
       *    SCT Write Same (AC2)
       *    SCT Error Recovery Control (AC3)
       *    SCT Features Control (AC4)
       *    SCT Data Tables (AC5)
            unknown 206[12] (vendor specific)
Security: 
    Master password revision code = 65534
        supported
    not    enabled
    not    locked
        frozen
    not    expired: security count
    not    supported: enhanced erase
    56min for SECURITY ERASE UNIT.

a kiedy wydam polecenie :

root@debian:/home/okularnik# hdparm --yes-i-know-what-i-am-doing -m 16 /dev/disk/by-id/ata-WDC_WD1600YS-01SHB0_WD-WCAP01521905

/dev/disk/by-id/ata-WDC_WD1600YS-01SHB0_WD-WCAP01521905:
setting multcount to 16
multcount     = 16 (on)


I cóż że dymią krematoria ? toż w nich przetapia się historia...

Offline

 

#12  2015-10-11 06:45:40

  Danio - Zbanowany

Danio
Zbanowany
Zarejestrowany: 2010-04-04

Re: ustawienie multcount na 16 oraz I/0 support na 32 sync w hdparm

ok ...dodałem do  /etc/rc.local

linijkę

Kod:

hdparm --yes-i-know-what-i-am-doing -m 16 /dev/disk/by-id/ata-WDC_WD1600YS-01SHB0_WD-WCAP01521905

I cóż że dymią krematoria ? toż w nich przetapia się historia...

Offline

 

#13  2015-10-11 10:05:37

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: ustawienie multcount na 16 oraz I/0 support na 32 sync w hdparm

A reguły udeva przeładowałeś?

Kod:

# udevadm control --reload

Sprawdziłeś czy się aplikują?

Kod:

# udevadm test /sys/block/sda/

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)