回答:
別の可能性は、/ proc / diskstatsを調べることです。再起動後も永続的ではありませんが、すべてのブロックデバイスのデータがあります。おそらく最も興味深いのは、書き込まれたセクターの総数を含むフィールド10です。512バイトのセクターサイズのscsiディスクを搭載したシステムでは、次を実行できます。
awk '/sd/ {print $3"\t"$10 / 2 / 1024}' /proc/diskstats
各デバイスに書き込まれたメガバイト数を確認します。出力は次のようになります
sda 728.759
sda1 79.0908
sda2 649.668
hw_sector_size
(少なくとも2.4シリーズ以降)。block/cfq-iosched.c
特に参照してくださいcfqg_stats_update_dispatch()
。
私は自分のノートブックで同じ問題に苦労していましたが、毎日ほとんどリブートしたので、受け入れられた答えは役に立ちませんでした。Samsung mSATA SSDがあり、たまたまSMART属性#241 Total_LBAs_Writtenがあります。公式文書によると、
合計サイズ(バイト単位)を計算するには、この属性の生の値に512Bを掛けます。
したがって、次のコマンドは、SSDディスク(sdb)に書き込まれた合計TBを提供します
sudo smartctl -A /dev/sdb | awk '/^241/ { print "TBW: "($10 * 512) * 1.0e-12, "TB" } '
私のHDDでも動作するので、ほとんどすべての最新のハードディスクで動作するはずです。
sudo smartctl -A /dev/sda1 | awk '/^241/ { print "TBW: "($10 * 512) * 1.0e-12, "TB" }'
。
Host_Writes_32MiB
ます。また、属性249がありNAND_Writes_1GiB
ます。したがって、各SSDでこれは異なるように見えることに注意してください(たとえば、私のmSATA Intel SSDにはこれらの属性がありません)
Total_LBAs_Written
では、GBで指定されています!低い4714
スマートが示していたことを理解できませんでした。しかし、WindowsのIntel SSD Toolboxを見ると、GB単位であることがわかりました。
/ sys / fs / ext4 / $ DEVICE / lifetime_write_kbytesを調べると、ext4ファイルシステムに書き込まれたデータの量を確認できます。
KINGSTON SEDC400S37480GのUbuntu Server 14.04では、次のスクリプトを使用してTBWを監視しています。cronから毎日1回実行します。スクリプトはログファイルに出力します。
動作するにはcalcが必要です。次を使用してcalcをインストールします。
apt-get install apcalc
スクリプトの内容:
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
出力されます:
*** Thu, 20 Jul 2017 03:02:51 +0300 ***
TB written to sda1:
3.062138442