GNU/Linux >> Tutoriels Linux >  >> Linux

Mesurer le "nombre total d'octets écrits" sous Linux

Solution 1 :

Une autre possibilité est de regarder /proc/diskstats. Il n'est pas persistant lors des redémarrages, mais il contient des données pour chaque périphérique de bloc. Le plus intéressant pour vous est probablement le champ 10, qui contient le nombre total de secteurs écrits. Sur un système avec des disques scsi avec une taille de secteur de 512 octets, vous pouvez exécuter

awk '/sd/ {print $3"\t"$10 / 2 / 1024}' /proc/diskstats

pour voir combien de mégaoctets ont été écrits sur chaque appareil. La sortie ressemblera à

sda 728.759
sda1 79.0908
sda2 649.668

Solution 2 :

Je me débattais avec le même problème sur mon ordinateur portable, mais comme je le redémarre presque quotidiennement, la réponse acceptée n'a pas été utile. J'ai un SSD Samsung mSATA, qui a l'attribut SMART #241 Total_LBAs_Written. Selon la documentation officielle,

Pour calculer la taille totale (en octets), multipliez la valeur brute de cet attribut par 512 B.

Donc la commande suivante me donne le To total écrit sur mon disque SSD (sdb)

sudo smartctl -A /dev/sdb | awk '/^241/ { print "TBW: "($10 * 512) * 1.0e-12, "TB" } '

Comme cela fonctionne également sur mon disque dur, je suppose qu'il devrait fonctionner sur à peu près tous les disques durs modernes.

Solution 3 :

Vous pouvez voir combien de données ont été écrites sur un système de fichiers ext4 en consultant /sys/fs/ext4/$DEVICE/lifetime_write_kbytes.

Solution 4 :

Vous pouvez essayer iostat . Il vous donne des statistiques liées à l'utilisation des E/S et du processeur. Consultez le manuel man iostat .

Solution 5 :

Pour mon KINGSTON SEDC400S37480G, sous Ubuntu Server 14.04, j'utilise le script suivant pour surveiller TBW. Je l'exécute à partir de cron une fois par jour. Le script est généré dans un fichier journal.

Vous avez besoin de calc pour que cela fonctionne.Installez calc en utilisant :

apt-get install apcalc

Contenu du script :

echo "*** $(date -R) ***" >> /scripts/tbw/log.txt
tbw=$(cat /sys/fs/ext4/sda1/lifetime_write_kbytes)
TB=1000000000
echo TB written to sda1: >> /scripts/tbw/log.txt | calc $tbw / $TB >> /scripts/tbw/log.txt

Affichera :

*** Thu, 20 Jul 2017 03:02:51 +0300 ***
TB written to sda1:
    3.062138442

Linux
  1. Exécutables signés sous Linux

  2. Emulation CP/M sous Linux

  3. Limites de longueur de nom de fichier sous Linux ?

  4. Comment programmer un redémarrage sous Linux ?

  5. Linux - Au secours, je n'ai plus d'inodes !

Redox OS :un système d'exploitation écrit en Rust

Comment trouver la taille totale d'un répertoire sous Linux

Étapes d'installation de jEdit sur Ubuntu Linux

Rejoindre des vidéos webm sous Linux

ZFS sous Linux, ça marche ?

RDP de Linux à Windows