Les opérations sur disque gèlent Debian

12

Je viens d'installer les tests Debian sur mon nouveau bureau et je ne suis pas très satisfait des performances - lorsque j'effectue une opération gourmande en disque, par exemple la mise à niveau de paquets dans le système, tout semble se figer, par exemple, le changement d'onglets dans Iceweasel prend 3 secondes. J'utilise Debian sur mon Thinkpad X60 ultra portable de 3 ans, et je n'ai pas ces problèmes. (chaque paramètre de l'ordinateur portable est bien pire que celui du bureau).

J'utilise le noyau et les scripts par défaut.

je cours

hdparm -t /dev/sda1

Et j'ai obtenu environ 96 Go / s, ce qui est attendu. Que puis-je essayer de faire pour que cela fonctionne mieux?

MODIFIER :

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 : Même ma femme a dit "sur ce nouvel ordinateur, je ne peux rien faire quand je copie les photos de l'appareil photo et c'est bien pire que sur l'ancien". Cela doit donc être sérieux.

EDIT3 : mise à jour vers 2.6.32, mais toujours pas d'amélioration

EDIT4 : J'ai oublié de mentionner que le nouveau disque est ext4, l'ancien était ext3.

EDIT5 : Toujours pas résolu. J'ai une carte P43 ASUS P5QL-E. Lignes de dmesg qui semblent pertinentes:

[    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                       
Grzenio
la source
1
J'ai aussi le même problème. J'utilise ubuntu 9.10 64 bits.
Abhijeet Rastogi
1
des mises à jour à ce sujet? toujours le problème? si oui, pouvez-vous nous dire quel chipset la carte mère utilise? quelque chose d'intéressant en dmesgce qui concerne le chipset ou le lecteur? si vous l'avez résolu d'une manière ou d'une autre, envisagez de publier un article comme réponse pour informer les futurs lecteurs.
Quack Quichotte
@ ~ charlatan, pas encore résolu, veuillez consulter la modification.
Grzenio

Réponses:

4

Vérifiez le décalage de la partition - doit être divisible par 4 pour EARS car ils ont la technologie 4096. Si ce n'est pas le cas - repartitionnez-le pour obtenir l'alignement et les problèmes de performances devraient disparaître (les disques EARS mal alignés feront beaucoup plus d'écritures de secteur par opération).

Rachel
la source
ooOOOOooo. vous pourriez être sur quelque chose. La sortie dmesg indique qu'il pourrait détecter le lecteur comme un lecteur de secteur de 512 octets: "[sda] 2930277168 blocs logiques de 512 octets" .. y a-t-il un "cavalier XP" sur le lecteur qui définirait une sorte de mode de compatibilité? il y a ... voir le cavalier "Advanced Format" ici: wdc.custhelp.com/cgi-bin/wdc.cfg/php/enduser/… .. qui indique probablement au système d'exploitation qu'il a des secteurs de 512 octets, assurez-vous que ce n'est pas le cas ensemble.
Quack Quichote
merci pour votre réponse. Pourriez-vous me dire comment vérifier le décalage? Puis-je simplement déplacer la partition ou dois-je la recréer?
Grzenio
Existe-t-il un moyen de vérifier le décalage sur la partition? Une commande qui pourrait être exécutée?
Warren P
Vous pouvez utiliser gdisk pour vérifier les décalages de partition - rodsbooks.com/gdisk
James Sumners
4

J'ai eu un problème de gel similaire lorsque je faisais beaucoup d'ES disque. Pendant une sauvegarde, le bureau se bloquait pendant quelques secondes encore et encore jusqu'à la fin de la sauvegarde.

Cela n'était lié à aucun alignement ni à aucun réglage hdparm (bien que je convienne que cela aidera).

Le blocage du système a été causé par le planificateur d'E / S qui retarde trop certaines E / S requises par des applications plus interactives (Firefox, KDE ou autre). Le programmateur d'E / S défectueux était cfg .

Pour résoudre le problème, vous devez utiliser le planificateur d'E / S d'échéance. Vous l'activez sur un disque avec la commande suivante que vous pouvez ajouter dans /etc/rc.local :

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

Cochez la case Résolution du verrouillage du système Linux lorsque des E / S de disque intensives sont effectuées pour plus d'informations.

ciceron
la source
2

C'est un coup dans le noir, mais j'ai eu un problème comme ça il y a un certain temps, et la cause s'est avérée être que le noyau ne supportait pas complètement le chipset et que DMA était désactivé. Vérifier avec

hdparm -i /dev/sda

si l'un des modes DMA est activé.

(La solution dans ce cas était d'obtenir un noyau plus récent.)

Peter Eisentraut
la source
SORTIE: - Modes DMA: mdma0 mdma1 mdma2 Modes UDMA: udma0 udma1 udma2 udma3 udma4 udma5 * udma6 alors, quel est le problème ??
Abhijeet Rastogi
J'ai eu: 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 le
Aucun mode dma ne semble avoir d'étoile (c'est sa pertinence). Est-ce que ça importe? Comment puis-je le configurer?
Grzenio
De plus, je ne sais pas si ce n'est pas pertinent uniquement pour les périphériques IDE, car j'obtiens: hdparm -d / dev / sda / dev / sda: HDIO_GET_DMA a échoué: ioctl inapproprié pour le périphérique
Grzenio
@Grzenio: le mode udma6 semble avoir une étoile, est-ce incorrect? vous pouvez modifier ces informations dans votre message afin de pouvoir les formater.
Quack Quichote
2

J'ai rencontré des problèmes où les opérations qui effectuent beaucoup d'appels fsync (2) provoqueront un ralentissement majeur du système. Dans mon cas, je cours avec ma partition racine contenue dans LVM contenue dans LUKS. Utilisez-vous LVM ou LUKS?

Un outil qui peut aider à localiser précisément ce qui mâche vos disques (plutôt que de simplement "installer des packages") est appelé iotop. Je suggère de l'exécuter pendant que vous effectuez l'une de ces tâches, et cela peut indiquer un autre processus d'arrière-plan qui peut se déclencher en même temps et aspirer tout votre débit d'E / S.

pioto
la source
Salut, désolé pour une réponse tardive: iotop dit que [jbd2 / sda3-8] utilise 80% -99% IO, mais la lecture, l'écriture et le swapin du disque sont 0.0 en même temps. Des idées?
Grzenio
En général, la vérification d'une fsync excessive est un bon point à vérifier. Cependant, dans ce cas, le même logiciel fonctionne beaucoup mieux sur un autre matériel (l'ancien T60), il ressemble donc plus à un problème avec cette combinaison matérielle-pilote particulière. C'est quand même bien de garder cela à l'esprit.
sleske
2

sudo fdisk -u / dev / sda

Cela devrait vous donner le décalage de départ. Je `` pense '' que vous pouvez créer la partition en utilisant fdisk -o 64 ou quelque chose - je devrais le rechercher sur google afin que je vous laisse faire la recherche sur fdisk et régler manuellement le décalage de la partition (la valeur par défaut est 63 donc ce n'est pas bon).

et oui, le disque affichera avec 512b secteurs car il prétend être comme tel pour le système d'exploitation - Vista / W7 gère cela en définissant le décalage correct, mais XP et je pense que presque toutes les distributions linus ne le font pas :( manuellement est le seul moyen qu'il semble (Le mien est juste un lecteur de stockage et créé dans win7 / ntfs donc ce n'est pas un problème pour moi)

Edit: - J'ai trouvé un bon article sur wdc - cela devrait vous permettre d'être opérationnel en un rien de temps :)

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


la source
Salut, j'ai eu: grzes: / home / ga # fdisk -u / dev / sda Le nombre de cylindres pour ce disque est défini sur 182401. Il n'y a rien de mal à cela, mais il est plus grand que 1024 et pourrait dans certaines configurations causer des problèmes avec: 1) les logiciels qui s'exécutent au démarrage (par exemple, les anciennes versions de LILO) 2) les logiciels de démarrage et de partitionnement à partir d'autres systèmes d'exploitation (par exemple, DOS FDISK, OS / 2 FDISK) Commande (m pour l'aide):
Grzenio
J'ai finalement réussi à le faire, mais cela n'a pas vraiment aidé :( Le vrai problème doit être ailleurs.
Grzenio
1

Juste un tir aléatoire, ce qui semble stupide étant donné que vous utilisez Debian ... mais j'ai trouvé que cela aidait quelqu'un avec le même modèle de disque dur: avez-vous essayé de mettre à jour votre BIOS?

liori
la source
Non, je ne l'ai pas fait.
Ça
1

En règle générale, si vous pouvez utiliser hdparm sur l'appareil, c'est «l'ancienne» interface ATA, par rapport à la nouvelle interface SATA / SCSI. Si tel est le cas, le problème est probablement que les opérations sur disque pendant les interruptions ne sont pas activées par défaut. Il s'agit d'un problème courant sur certaines machines utilisant l'ancienne interface ATA et dégrade les performances du disque ou du système lors d'opérations d'E / S intensives.

Vous devriez vraiment essayer ceci:

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

Si vous ne voyez pas d'amélioration des performances lors de la deuxième exécution du chronométrage (la troisième commande), il se passe autre chose.

Un autre facteur s'attend à ce que le mode UDMA6 fonctionne sur un câble non UDMA (en supposant qu'il ne s'agit pas d'une interface SATA). Si vous utilisez un câble ATA à 80 broches, tout va bien; si vous utilisez un ancien 40 broches, vous aurez toutes sortes de problèmes. Si le câble est le plus ancien à 40 broches, vous devrez réduire le taux de transfert à quelque chose qui peut être pris en charge "en toute sécurité". AVERTISSEMENT: l'ajustement de l'interface IDE peut bloquer le lecteur et / ou l'interface, et si le lecteur est votre système de fichiers racine, le système entier se bloquera avec lui!

Si vous devez réduire le taux de transfert pour l'adapter au matériel, essayez ce qui suit:

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

Encore une fois, le deuxième timing (troisième commande émise) devrait montrer une amélioration.

Enfin, le lecteur lui-même peut être marginal, mais sans rapport SMART, vous ne remarquerez peut-être pas le problème (jusqu'à ce qu'il soit trop tard). Je recommanderais vraiment d'installer le smartmontoolspackage pour vous aider, surtout si vous avez un ancien lecteur qui aura besoin d'un peu de TLC de temps en temps.

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

Si tout le reste échoue, recherchez les /var/log/messageserreurs d'E / S disque.


Mise à jour:

Il semble que tu ne sois pas seul. Il y a des panneaux de messages partout sur le net qui signalent toutes sortes de chagrins d'amour avec ces unités.

Il est également fait mention du lecteur utilisant une taille de secteur 4k par rapport à la taille "traditionnelle" de 512 octets. Je ne peux qu'imaginer quel genre de problème cela doit causer.

Enfin, en regardant à nouveau votre sortie, il semble que le fil de journalisation bloque à peu près le système. Un système de fichiers non journalisé peut temporairement résoudre le problème, mais il est au mieux prophylactique et ne résout pas le problème au pire.

Avery Payne
la source
Salut, merci pour votre réponse. (1) Il s'agit d'un lecteur SATA et son connecté à l'aide d'un câble SATA mince à l'interface SATA sur la carte mère. (2) J'ai essayé le premier test et les performances ont diminué de 90,93 Mo / sec à 52,50 Mo / sec. Les performances de lecture brutes ne semblent pas être le problème (90 Mo sont ce que j'attends de ce lecteur), c'est juste que certaines opérations mineures gèlent le système
Grzenio
Le deuxième test n'a vraiment rien amélioré non plus. Dans le premier cas et dans le second, la plupart des paramètres ne sont pas définis: hdparm -d 1 -X mdma2 / dev / sda / dev / sda: le réglage using_dma sur 1 (on) HDIO_SET_DMA a échoué: ioctl inapproprié pour le réglage du périphérique xfermode sur 34 (mode DMA multi-mots2) HDIO_DRIVE_CMD (setxfermode) a échoué: échange non valide HDIO_GET_DMA a échoué: ioctl inapproprié pour le périphérique
Grzenio
J'ai installé smartmontools hier, mais je ne sais pas comment les utiliser. Pourriez-vous donner un peu plus de détails?
Grzenio
Aie. Un nouveau disque dur serait donc une bonne idée.
Warren P
1

C'est enfin résolu! Comme l'a souligné @Rachel, le problème était en effet lié à l'alignement sur les secteurs de 4 Ko, mais malheureusement l'article lié était incorrect :(

La manière correcte d'aligner les partitions est ici: http://www.linuxconfig.org/linux-wd-ears-advanced-format

Et cet article donne un assez bon point de référence pour que vous puissiez vérifier si votre table de partition est correcte: http://article.gmane.org/gmane.linux.utilities.util-linux-ng/2955

Sur une note latérale, si vous avez ce lecteur et utilisez Linux, vous DEVRIEZ également augmenter l'un des temporisateurs inactifs comme décrit ici: http://wdc.custhelp.com/cgi-bin/wdc.cfg/php/enduser/std_adp .php? p_faqid = 5357 & p_created = 1266947046 & p_sid = Os7DQL2k & p_accessibility = 0 & p_redirect = & p_srch = 1 & p_lva = & p_sp = cF9zcmNoPTEmcF9zb3J0X2J5PSZwX2dyaWRzb3J0PSZwX3Jvd19jbnQ9NTEsNTEmcF9wcm9kcz0yMjcsMjk0JnBfY2F0cz0xMzAmcF9wdj0yLjI5NCZwX2N2PTEuMTMwJnBfcGFnZT0x & p_li = & p_topview = 1

Grzenio
la source
2ème lien ne fonctionne pas de remplacement?
xliiv