Sur mon Lenovo T400 et Ubuntu, le voyant d'écriture sur le disque dur continue de clignoter. Je me demandais si sous Linux, il est possible de savoir quels processus font des E/S sur le disque dur? Tout comme par top
, vous pouvez découvrir quels processus utilisent le plus de CPU et de mémoire.
Iotop est un bon outil pour ce que vous voulez. Il permet également d'afficher la quantité cumulée d'E/S sur l'un des disques DISK READ, DISK WRITE, SWAPIN et IO (pourcentage global). C'est à travers une interface astucieuse:
Comme top
, la présentation est plutôt occupé. Une autre chose est qu'il n'a pas les innombrables options que top
a (par exemple, je ne peux pas choisir de masquer colonnes qui ne m'intéressent pas), mais l'outil est plus que suffisant pour son objectif spécifique.
Vous pouvez utiliser lsof
( man lsof ). Ce qui suit renverra une liste de tous les fichiers ouverts en écriture:
lsof | grep -e "[[:digit:]]\+w"
Utilisez strace
.
Surtout pour une faible activité du disque, il est nécessaire d'utiliser iotop en mode batch, pour éviter que les lignes d'accès courtes ne disparaissent rapidement. La réponse par Comment enregistrer le système de fichiers en lecture/écriture par nom de fichier sous Linux? montre comment procéder.
Jusqu'à présent,
iotop
est la meilleure solution globale. La commande suivante vous donne une sortie en temps réel de tous les processus utilisant le disque.
iotop -bktoqqq -d .5
where: -b is batch mode
-k is kilobytes/s
-t adds timestamp
-o only show processes or threads actually doing I/O
-qqq removes output headers
-d .5 updates every .5 seconds
Une fois que vous avez l'ID de processus, vous pouvez également trouver les fichiers avec
lsof -p $PID