47 votes

Mesurer le nombre total d'octets écrits sous Linux

Nous sommes très intéressés par l'exploration de la possibilité d'utiliser des disques SSD dans un environnement de serveur. Cependant, une chose que nous devons établir est la longévité attendue du disque. Selon cet article, les fabricants rapportent la durabilité du disque en termes de 'total des octets écrits' (TBW). Par exemple, d'après cet article, un SSD Crucial C400 est évalué à 72TB TBW. Existe-t-il des scripts / outils sous l'écosystème Linux pour nous aider à mesurer le TBW? (et ainsi prendre une décision plus éclairée sur la faisabilité de l'utilisation de disques SSD)

36voto

Kasper Holdum Points 4173

Une autre possibilité est de regarder /proc/diskstats. Il n'est pas persistant à travers les redémarrages, mais il contient des données pour chaque périphérique de bloc. Probablement ce qui vous intéresse le plus est 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 pourriez exécuter

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

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

sda 728.759
sda1 79.0908
sda2 649.668

28voto

J'ai été confronté au même problème sur mon ordinateur portable, mais comme je le redémarre pratiquement tous les jours, la réponse acceptée n'était pas 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 octets.

Ainsi, la commande suivante me donne le total de TB écrits 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 que cela devrait fonctionner sur pratiquement tous les disques durs modernes.

24voto

Kasper Holdum Points 4173

Vous pouvez voir la quantité de données écrites sur un système de fichiers ext4 en regardant dans /sys/fs/ext4/$DEVICE/lifetime_write_kbytes.

3voto

inteq Points 21

Pour mon KINGSTON SEDC400S37480G, sous Ubuntu Server 14.04, j'utilise le script suivant pour surveiller le TBW. Je le lance depuis cron une fois par jour. Le script produit une sortie vers un fichier journal.

Vous avez besoin de calcul 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 écrit sur sda1: >> /scripts/tbw/log.txt | calc $tbw / $TB >> /scripts/tbw/log.txt

Produira:

*** Thu, 20 Jul 2017 03:02:51 +0300 ***
TB écrit sur sda1:
    3.062138442

2voto

Khaled Points 35208

Vous pouvez essayer iostat. Il vous donne des statistiques relatives à l'utilisation de l'E/S et du CPU. Jetez un œil au manuel man iostat.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X