Comment diagnostiquer les pics de processeur Ubuntu / attente d'E / S?


19

J'utilise Ubuntu et toutes les deux minutes, il ne répond pas pendant une demi-seconde à une seconde complète, ce qui n'est normalement pas un problème, mais cela rend la programmation extrêmement frustrante lorsque vous essayez de revenir en arrière ou de naviguer dans le code et rien ne se passe. Le problème est que les blocages sont si brefs que top n'a pas le temps de me montrer ce qui alimente le CPU (en supposant que quelque chose l'est, mais je ne sais pas quoi d'autre pourrait provoquer cela).

Quelqu'un sait-il comment résoudre ce problème de performances?

Edit: J'ai essayé de me connecter avec Gnome Classic (No Effects) au lieu de Unity mais il se fige toujours de temps en temps.

Edit: Le graphique du CPU ne semble pas montrer de pics réels, il semble donc que vous ayez raison et mon diagnostic d'origine des pics du CPU était incorrect, je soupçonne maintenant IO wait. Je ne me souviens pas que cela se soit produit pendant les brèves semaines pendant lesquelles Windows 7 Starter était exécuté, ce qui m'amène à croire que ce n'est pas (juste?) Le matériel .. y a-t-il quelque chose que je puisse modifier pour améliorer cela? J'utilise un Acer Aspire One D257, avec Ubuntu 11.10.

Edit: La sortie de dmesgest sur http://paste.ubuntu.com/1060054/ et kern.log est sur http://paste.ubuntu.com/1060055/


Cette question est intéressante à la fois dans le cas général et dans votre cas particulier.
Rafał Cieślak

1
En activant un graphique du processeur, vous pouvez savoir avec certitude s'il s'agit d'un pic de processeur qui provoque le ralentissement. Les E / S peuvent être un autre coupable, ou un retard de réseau dans certains cas. Cela arrive-t-il quel que soit le programme que vous utilisez activement à l'époque?
David Oneill

Excellent point David, je vais le faire. Je n'utilise que Vim et Firefox sur cette machine, ils sont toujours ouverts et cela arrive peu importe ce qui est au premier plan. Au début, je pensais que c'était la génération automatique de ctag à partir de Vim, mais après avoir commenté cette section et effacé tout mon fichier vimrc, le problème se produit toujours. Je vais essayer le graphique pour voir s'il s'agit bien d'un pic de CPU ou d'une attente d'E / S.
Jeff Welling

Comment ne répond-il pas? Le pointeur de votre souris arrête-t-il la mise à jour?
AdamKG

Désolé pour la réponse retardée, je pense que cela gèle également le pointeur, mais cela ne s'est plus produit ou je ne l'ai pas remarqué récemment. Fait intéressant, j'ai également eu mon lecteur de sauvegarde USB crypté branché et monté la plupart du temps récemment, ce qui me demande si cela pourrait être lié. J'essaie de faire plus de tests avec et sans le lecteur branché pour déterminer si A) il est lié et B) le pointeur cesse de répondre pendant ces blocages.
Jeff Welling

Réponses:


12

Il existe deux outils supplémentaires que vous voudrez peut-être consulter:

Si vous n'obtenez pas ce que vous voulez de ces deux outils, vous devrez peut-être utiliser des outils de développement tels que OProfile ou Sysprof .

Tous les outils répertoriés sont disponibles à partir des référentiels ubuntu

En ce qui concerne votre observation avec USB, d'après ce que j'ai entendu, certains contrôleurs USB se comportent un peu de façon floconneuse avec certains matériels qui peuvent provoquer des interruptions, cela pourrait provoquer ce que vous décrivez. Essayez de rechercher tempête d'interruption usb et vous obtiendrez pas mal de hits.


Hm, je vais certainement examiner les tempêtes d'interruption, mais le problème a continué de se produire même après avoir cessé d'utiliser régulièrement des périphériques USB sur ce système. La plupart du temps, je vais programmer sur le chemin du travail (transport en commun) et c'est là que je le remarquerai.
Jeff Welling

5

J'ai utilisé htop pendant des années et j'ai finalement trouvé comment obtenir l'utilisation du processeur par des nombres et des pourcentages, je suis surpris d'avoir manqué cela.

htop iowait image

Appuyez sur F2

Flèche vers "Mètres disponibles"

Mettre en évidence la moyenne du processeur

F5 ou F6 à ajouter à la colonne

Flèche vers l'élément "CPU [Bar]"

Appuyez sur F4 jusqu'à ce que vous obteniez "CPU [Texte]"

Vous pouvez également obtenir des IORates

F2-> Colonnes-> Disponible

Ajouter IO_RATE, IO_READ_RATE, IO_WRITE_RATE


2

La meilleure façon de voir cela est d'utiliser une application en ligne de commande comme topou htop Installer htop .

Haut
Haut

htop
htop

Vous devrez cependant le regarder pendant un certain temps jusqu'à ce que vous voyiez ce qui cause le pic (s'il s'agit en effet d'un pic dans l'utilisation du processeur et non dans l'attente des E / S, ce qui peut ne pas être détecté dans tous les cas).


1
Je connais top mais pas htop, htop indique-t-il que IO wait / comment interpréter cette partie de sa sortie? J'ai vérifié la FAQ sur le site Web de htop mais il n'a pas mentionné IO wait.
Jeff Welling

@JefWelling: ce n'est pas afaik. Les deux l'afficheront cependant comme une utilisation du processeur.
RolandiXor

Il existe un moniteur supplémentaire pour les activités d'E / S. Cela s'appelle iotop (voir la réponse de danjo133).
FuzzyQ

2

Un nouvel outil très utile est cpustat. Il possède une interface graphique qui vous permet de surveiller plusieurs pids au fil du temps.

entrez la description de l'image ici

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.