Operacje dyskowe zamrażają Debiana


12

Właśnie zainstalowałem testy Debiana na moim nowym pulpicie i nie jestem bardzo zadowolony z wydajności - kiedy wykonuję operację wymagającą dużej ilości dysku, np. Aktualizację pakietów w systemie, wszystko wydaje się zawieszać, np. Zmiana zakładek w Iceweasel zajmuje 3 sekundy. Używam Debiana na moim 3-letnim ultra-przenośnym Thinkpad X60 i nie mam tych problemów. (każdy pojedynczy parametr laptopa jest znacznie gorszy niż komputer stacjonarny).

Używam domyślnego spakowanego jądra i skryptów.

biegnę

hdparm -t /dev/sda1

I mam około 96 GB / s, co jest oczekiwane. Co jeszcze mogę spróbować, aby działało to lepiej?

EDYCJA :

grzes:/home/ga# hdparm -i /dev/sda

/dev/sda:

 Model=WDC WD15EARS-00Z5B1, FwRev=80.00A80, SerialNo=WD-WMAVU1362357
 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50
 BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=2930277168
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: Unspecified:  ATA/ATAPI-1,2,3,4,5,6,7

 * signifies the current active mode

EDIT2 : Nawet moja żona powiedziała: „na tym nowym komputerze nie mogę nic zrobić, gdy kopiuję zdjęcia z aparatu i jest to znacznie gorsze niż na starym”. Więc to musi być poważne.

EDYCJA 3 : Zaktualizowano do 2.6.32, ale nadal nie ma poprawy

EDIT4 : Zapomniałem wspomnieć, że nowy dysk to ext4, stary to ext3.

EDYCJA 5 : Wciąż nierozwiązane . Mam kartę P43 ASUS P5QL-E. Linie z dmesg, które wydają się odpowiednie:

[    0.370850] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)                              
[    0.370852] io scheduler noop registered                                                                      
[    0.370853] io scheduler anticipatory registered                                                              
[    0.370854] io scheduler deadline registered                                                                  
[    0.370876] io scheduler cfq registered (default)
...
[    0.908233] ata_piix 0000:00:1f.2: version 2.13                                                               
[    0.908243] ata_piix 0000:00:1f.2: PCI INT B -> GSI 19 (level, low) -> IRQ 19                                 
[    0.908246] ata_piix 0000:00:1f.2: MAP [ P0 P2 P1 P3 ]                                                        
[    0.908275] ata_piix 0000:00:1f.2: setting latency timer to 64                                                
[    0.908316] scsi0 : ata_piix                                                                                  
[    0.908374] scsi1 : ata_piix                                                                                  
[    0.909180] ata1: SATA max UDMA/133 cmd 0xa000 ctl 0x9c00 bmdma 0x9480 irq 19                                 
[    0.909183] ata2: SATA max UDMA/133 cmd 0x9880 ctl 0x9800 bmdma 0x9488 irq 19                                 
[    0.909199] ata_piix 0000:00:1f.5: PCI INT B -> GSI 19 (level, low) -> IRQ 19                                 
[    0.909202] ata_piix 0000:00:1f.5: MAP [ P0 -- P1 -- ]                                                        
[    0.909228] ata_piix 0000:00:1f.5: setting latency timer to 64                                                
[    0.909279] scsi2 : ata_piix                                                                                  
[    0.909326] scsi3 : ata_piix                                                                                  
[    0.910021] ata3: SATA max UDMA/133 cmd 0xb000 ctl 0xac00 bmdma 0xa480 irq 19                       

1
Ja również mam ten sam problem. Używam Ubuntu 9.10 64-bit.
Abhijeet Rastogi

1
jakieś aktualizacje tego? nadal masz problem? jeśli tak, to czy możesz nam powiedzieć, jakiego zestawu układów używa płyta główna? coś interesującego w dmesgodniesieniu do chipsetu lub napędu? jeśli to w jakiś sposób naprawiłeś, rozważ opublikowanie zapisu jako odpowiedzi, aby poinformować przyszłych czytelników.
quack quixote

@ ~ szarlatan, jeszcze nie rozwiązany, zobacz edycję.
Grzenio

Odpowiedzi:


4

Sprawdź przesunięcie dla partycji - musi być podzielne przez 4 dla EARS, ponieważ mają one technologię 4096. Jeśli tak nie jest - podziel go na partycje, aby uzyskać wyrównanie i problemy z wydajnością powinny zniknąć (źle dopasowane dyski EARS będą wykonywać znacznie więcej zapisów sektorowych na operację).


ooOOOOooo. możesz być na czymś. Dane wyjściowe dmesg wskazują, że może on wykrywać dysk jako 512-bajtowy dysk sektorowy: „[sda] 2930277168 512-bajtowe bloki logiczne” .. czy na dysku znajduje się „zworka XP”, która ustawiłaby tryb zgodności? jest ... zobacz zworkę „Advanced Format” tutaj: wdc.custhelp.com/cgi-bin/wdc.cfg/php/enduser/ ... .. prawdopodobnie mówi systemowi operacyjnemu, że ma 512-bajtowe sektory, upewnij się, że nie zestaw.
quack quixote

dziękuję za odpowiedź. Czy możesz mi powiedzieć, jak sprawdzić przesunięcie? Czy mogę po prostu przenieść partycję, czy muszę ją ponownie utworzyć?
Grzenio

Czy istnieje sposób sprawdzenia przesunięcia na partycji? Polecenie, które można uruchomić?
Warren P,

Możesz użyć gdisk, aby sprawdzić przesunięcia partycji - rodsbooks.com/gdisk
James Sumners

4

Miałem podobny problem z zawieszaniem się podczas wykonywania wielu operacji we / wy dysku. Podczas tworzenia kopii zapasowej pulpit zawieszał się przez kilka sekund, aż kopia zapasowa się zakończyła.

Nie było to związane z żadnym dopasowaniem ani strojeniem hdparm (chociaż zgadzam się, że to pomoże).

Blokowanie systemu było spowodowane przez harmonogram IO, który zbyt długo opóźnia niektóre IO wymagane przez bardziej interaktywne aplikacje (Firefox, KDE lub cokolwiek innego). Wadliwy harmonogram IO to CFF .

Aby rozwiązać problem, musisz użyć terminowego harmonogramu we / wy. Aktywujesz go na dysku za pomocą następującego polecenia, które możesz dodać w /etc/rc.local :

echo deadline >  /sys/block/sda/queue/scheduler

Sprawdź Rozwiązywanie problemu Blokowanie systemu Linux, gdy wykonywane są intensywne operacje we / wy dysku, aby uzyskać więcej informacji.


2

Jest to strzał w ciemność, ale jakiś czas temu miałem taki problem, a przyczyną było to, że jądro nie obsługiwało chipsetu całkowicie i DMA został wyłączony. Sprawdź z

hdparm -i /dev/sda

czy jeden z trybów DMA jest włączony.

(W takim przypadku rozwiązaniem było uzyskanie nowszego jądra).


WYJŚCIE: - Tryby DMA: mdma0 mdma1 mdma2 Tryby UDMA: udma0 udma1 udma2 udma3 udma4 udma5 * udma6 więc w czym problem?
Abhijeet Rastogi

Dostałem: Model=WDC, FwRev=80.00A80, SerialNo=WD-WMAVU1362357 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50 BuffType=unknown, BuffSize=0kB, MaxMultSect=16, MultSect=16 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=2930277168 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 AdvancedPM=no WriteCache=enabled Drive conforms to: Unspecified: ATA/ATAPI-1,2,3,4,5,6,7
Grzenio

Wydaje się, że żaden tryb dma nie ma gwiazdy (jest to istotne). Czy to ma znaczenie? Jak mogę to skonfigurować?
Grzenio

Również nie jestem pewien, czy to nie dotyczy tylko urządzeń IDE, ponieważ otrzymuję: hdparm -d / dev / sda / dev / sda: HDIO_GET_DMA nie powiodło się: niewłaściwy ioctl dla urządzenia
Grzenio

@Grzenio: tryb udma6 wydaje się mieć gwiazdę, czy to nieprawda? może zechcieć edytować te informacje w swoim poście, aby móc je sformatować.
quack quixote

2

Wystąpiły problemy, w wyniku których operacje wykonujące wiele wywołań fsync (2) spowodują poważne spowolnienie systemu. W moim przypadku działam z moją partycją główną zawartą w LVM zawartym w LUKS. Czy używasz LVM lub LUKS?

Nazywa się narzędzie, które może pomóc w określeniu, czym konkretnie jest żucie dysków (a nie tylko „instalowanie pakietów”) iotop. Sugeruję uruchomienie go podczas wykonywania jednego z tych zadań, a może to wskazywać na inny proces w tle, który może być wyzwalany w tym samym czasie i pochłania całą przepustowość we / wy.


Cześć, przepraszam za spóźnioną odpowiedź: iotop mówi, że [jbd2 / sda3-8] używa 80% -99% IO, ale odczyt, zapis i zamiana dysku wynoszą jednocześnie 0,0. Jakieś pomysły?
Grzenio

Ogólnie rzecz biorąc, sprawdzanie nadmiernego fsync jest dobrym punktem do sprawdzenia. Jednak w tym przypadku to samo oprogramowanie działa znacznie lepiej na innym sprzęcie (stary T60), więc wygląda bardziej jak problem z tą konkretną kombinacją sterownika i sprzętu. Mimo to warto o tym pamiętać.
śleske,

2

sudo fdisk -u / dev / sda

To powinno dać początkowe przesunięcie. Myślę, że możesz utworzyć partycję za pomocą fdisk -o 64 lub coś w tym stylu - musiałbym google, więc pozwolę ci zrobić googling na fdisk i ręcznie ustawić przesunięcie partycji (domyślnie 63, więc to nie jest dobre).

i tak, dysk pokaże sektory 512b, które udają, że takie są w systemie operacyjnym - Vista / W7 radzą sobie z tym, ustawiając prawidłowe przesunięcie, ale XP i myślę, że w pobliżu wszystkich dystrybucji Linusa nie :( ręcznie jest to jedyny sposób, w jaki wydaje się (moje to tylko pamięć masowa i zostało utworzone w win7 / ntfs, więc nie ma dla mnie problemu)

Edycja: - Znalazłem fajny post na wdc - to powinno sprawić, że będziesz gotowy do działania w mgnieniu oka :)

http://community.wdc.com/t5/Desktop/Problem-with-WD-Advanced-Format-drive-in-LINUX-WD15EARS/mp/10920#M631


Cześć, mam: grzes: / home / ga # fdisk -u / dev / sda Liczba cylindrów dla tego dysku jest ustawiona na 182401. Nie ma w tym nic złego, ale jest większa niż 1024 i może w niektórych konfiguracjach powodować problemy z: 1) oprogramowaniem działającym w czasie uruchamiania (np. starymi wersjami LILO) 2) oprogramowaniem do uruchamiania i partycjonowania z innych systemów operacyjnych (np. DOS FDISK, OS / 2 FDISK) Polecenie (m dla pomocy):
Grzenio

W końcu udało mi się to zrobić, ale to naprawdę nie pomogło :( Prawdziwy problem musi być gdzie indziej.
Grzenio

1

Tylko przypadkowy strzał, co wydaje się głupie, biorąc pod uwagę, że używasz Debiana ... ale odkryłem, że pomogło to komuś z tym samym modelem dysku twardego: czy próbowałeś zaktualizować BIOS?


Nie, nie mam. Prawdopodobnie warto spróbować
Grzenio

1

Zgodnie z ogólną zasadą, jeśli możesz używać hdparm na urządzeniu, jest to „stary” interfejs ATA, w przeciwieństwie do nowszego interfejsu SATA / SCSI. W takim przypadku problemem jest prawdopodobnie to, że operacje dyskowe podczas przerwań nie są domyślnie włączone. Jest to częsty problem na niektórych komputerach korzystających ze starszego interfejsu ATA i obniża wydajność dysku lub systemu podczas ciężkich operacji we / wy.

Naprawdę powinieneś spróbować:

sudo hdparm -t -T /dev/sda
sudo hdparm -a8 -c3 -u1 /dev/sda
sudo hdparm -t -T /dev/sda

Jeśli nie zauważysz poprawy wydajności w drugim przebiegu czasowym (trzecie polecenie), oznacza to, że dzieje się coś innego.

Innym czynnikiem jest oczekiwanie, że tryb UDMA6 będzie działał na kablu innym niż UDMA (zakładając, że nie jest to interfejs SATA). Jeśli używasz 80-stykowego kabla ATA, wszystko w porządku; jeśli korzystasz ze starszego 40-pinowego, będziesz odczuwać wszelkiego rodzaju żal. Jeśli kabel ma starszy 40-stykowy, musisz zmniejszyć szybkość transferu do czegoś, co może być obsługiwane „bezpiecznie”. OSTRZEŻENIE: dostosowanie interfejsu IDE może zawiesić dysk i / lub interfejs, a jeśli dysk jest głównym systemem plików, cały system zawiesi się na nim!

Jeśli musisz zmniejszyć szybkość przesyłania, aby dopasować sprzęt, spróbuj wykonać następujące czynności:

sudo hdparm -t -T /dev/sda
sudo sync; sleep 3 ; sync    
sudo hdparm -d 1 -X mdma2 /dev/sda
sudo hdparm -t -T /dev/sda

Ponownie, drugie taktowanie (wydane trzecie polecenie) powinno wykazać poprawę.

Wreszcie sam dysk może być marginalny, ale bez raportów SMART możesz nie zauważyć problemu (dopóki nie będzie za późno). Naprawdę polecam zainstalowanie smartmontoolspakietu, aby ci pomóc, szczególnie jeśli masz starszy dysk, który od czasu do czasu będzie wymagał trochę TLC.

sudo apt-get update && apt-get install smartmontools

JEŚLI wszystko inne zawiedzie, poszukaj /var/log/messagesbłędów we / wy dysku.


Aktualizacja:

Wygląda na to, że nie jesteś sam. W całej sieci istnieją fora, które zgłaszają wszelkiego rodzaju bóle serca związane z tymi jednostkami.

Wspomina się także o dysku używającym rozmiaru sektora 4k w porównaniu z „tradycyjnym” rozmiarem 512 bajtów. Mogę sobie tylko wyobrazić, jakie to musi powodować problemy.

Wreszcie, patrząc ponownie na dane wyjściowe, wydaje się, że wątek kronikowania w dużym stopniu wiąże system. Nieopartowany na systemie plików system może tymczasowo złagodzić problem, ale w najlepszym wypadku jest profilaktyczny i w najgorszym przypadku nie rozwiązuje problemu.


Cześć, dzięki za odpowiedź. (1) To jest napęd SATA i jest podłączony cienkim kablem sata do interfejsu sata na płycie głównej. (2) Próbowałem pierwszego testu, a wydajność faktycznie spadła z 90,93 MB / s do 52,50 MB / s. Wydajność odczytu surowego nie wydaje się być problemem (90 MB jest tym, czego oczekuję od tego napędu), po prostu niektóre drobne operacje zamrażają system
Grzenio

Drugi test tak naprawdę niczego nie poprawił. Zarówno w pierwszym, jak i drugim przypadku większość parametrów nie została ustawiona: hdparm -d 1 -X mdma2 / dev / sda / dev / sda: ustawienie using_dma na 1 (on) HDIO_SET_DMA nie powiodło się: niewłaściwy ioctl dla ustawienia urządzenia xfermode na 34 (tryb wielowymiarowy DMA2) HDIO_DRIVE_CMD (setxfermode) nie powiodło się: Niepoprawna wymiana HDIO_GET_DMA nie powiodła się: niewłaściwy ioctl dla urządzenia
Grzenio

Wczoraj zainstalowałem smartmontools, ale nie wiem, jak z nich korzystać. Czy możesz podać trochę więcej szczegółów?
Grzenio

Auć. Nowy dysk twardy byłby więc dobrym pomysłem.
Warren P,

1

To jest wreszcie naprawione! Jak zauważył @Rachel, problem rzeczywiście dotyczył dostosowania do sektorów 4kb, ale niestety link do artykułu był niepoprawny :(

Prawidłowy sposób wyrównywania partycji znajduje się tutaj: http://www.linuxconfig.org/linux-wd-ears-advanced-format

I ten artykuł daje całkiem niezły test porównawczy, dzięki czemu możesz sprawdzić, czy twoja tabela partycji jest poprawna: http://article.gmane.org/gmane.linux.utilities.util-linux-ng/2955

Na marginesie, jeśli masz ten dysk i korzystasz z Linuksa, POWINNO także zwiększyć jeden z liczników czasu bezczynności, jak opisano tutaj: http://wdc.custhelp.com/cgi-bin/wdc.cfg/php/enduser/std_adp php? p_faqid = 5357 & p_created = 1266947046 i p_sid = Os7DQL2k i p_accessibility = 0 i p_redirect = & p_srch = 1 & p_lva = & p_sp = cF9zcmNoPTEmcF9zb3J0X2J5PSZwX2dyaWRzb3J0PSZwX3Jvd19jbnQ9NTEsNTEmcF9wcm9kcz0yMjcsMjk0JnBfY2F0cz0xMzAmcF9wdj0yLjI5NCZwX2N2PTEuMTMwJnBfcGFnZT0x i p_li = & p_topview = 1


Drugi link nie działa na żadną wymianę?
xliiv,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.