Si j'utilise "top", je peux voir quel CPU est occupé et quel processus utilise tout mon CPU.
Si j'utilise "iostat -x", je peux voir quel lecteur est occupé.
Mais comment voir quel processus utilise tout le débit du disque?
linux
io
performance
system-administration
iostat
Matthew Crumley
la source
la source
Réponses:
Vous recherchez
iotop
(en supposant que vous ayez un noyau> 2.6.20 et Python 2.5). À défaut, vous cherchez à vous connecter au système de fichiers. Je recommande l'ancien.la source
iotop
semble indiquer la bande passante d'E / S plutôt que le nombre d'IOPS consommées par les processus. Ce n'est pas super pertinent. Un processus faisant beaucoup de petites écritures + synchronisation va consommer plus de la capacité d'E / S du disque qu'un processus écrivant un grand lot contigu de données à grande vitesse.[jdb2/nvme0n1p1]
dans iotop, mais j'ai eu de la chance en activant / proc / sys / vm / block_dump et en comparant la sortie à un système sain / stable lxadm.com/Simple_filesystem_read/write_tracing_with_/proc/sys/ ... Cela a aidé à trouver un conteneur docker qui engendrait continuellement des requêtes kubectl, épuisant les crédits de rafale d'un volume EBS avec des entrées dans/home/spinnaker/.kube/cache/discovery/.../serverresources.json
. Une fois que vous avez réduit les choses à un nom d'utilisateur / processus, quelque chose commeiotop -atku systemd-network | grep kubectl
peut également aiderPour savoir quels processus à l'état 'D' (en attente de réponse du disque) sont en cours d'exécution:
while true; do date; ps aux | awk '{if($8=="D") print $0;}'; sleep 1; done
ou
watch -n1 -d "ps axu | awk '{if (\$8==\"D\") {print \$0}}'"
Comme vous pouvez le voir dans le résultat, le jdb2 / dm-0-8 (processus de journal ext4) et kdmflush bloquent constamment votre Linux.
Pour plus de détails, cette URL pourrait être utile: Linux Wait-IO Problem
la source
atop fonctionne également bien et s'installe facilement même sur les anciens systèmes CentOS 5.x qui ne peuvent pas exécuter iotop. Appuyez sur
d
pour afficher les détails du disque,?
pour obtenir de l'aide.Cela montre clairement que java pid 9862 est le coupable.
la source
TL; DR
Si vous pouvez utiliser
iotop
, faites-le. Sinon, cela pourrait aider.Utilisez
top
, puis utilisez ces raccourcis:Cela doit afficher les valeurs
> 1.0 wa
d'au moins un cœur - s'il n'y a pas d'attente de disque, il n'y a simplement pas de charge d'E / S et il n'est pas nécessaire de chercher plus loin. Des charges importantes commencent généralement> 15.0 wa
.Choisissez «S», la colonne d'état du processus. Inversez l'ordre de tri pour que les processus «R» (en cours d'exécution) soient affichés en haut. Si vous pouvez repérer les processus «D» (en attente de disque), vous avez un indicateur de votre coupable.
la source
Pour les utilisateurs de KDE, vous pouvez utiliser «ctrl-esc» pour appeler un moniteur d'activité du système et il y a des graphiques d'activités d'E / S avec l'identifiant et le nom du processus.
Je n'ai pas les autorisations pour télécharger l'image, en raison du «statut du nouvel utilisateur», mais vous pouvez consulter l'image ci-dessous. Il a une colonne pour la lecture et l'écriture d'E / S.
la source
Avez-vous envisagé
lsof
(lister les fichiers ouverts)?la source
iotop avec l'indicateur -a:
la source