解決策 1:
もう 1 つの可能性は、/proc/diskstats を確認することです。再起動しても永続的ではありませんが、すべてのブロック デバイスのデータがあります。おそらく最も興味深いのは、書き込まれたセクターの総数を含むフィールド 10 です。セクター サイズが 512 バイトの SCSI ディスクを備えたシステムでは、次のコマンドを実行できます
awk '/sd/ {print $3"\t"$10 / 2 / 1024}' /proc/diskstats
各デバイスに書き込まれたメガバイト数を確認します。出力は次のようになります
<ブロック引用>
sda 728.759
sda1 79.0908
sda2 649.668
解決策 2:
私は自分のノートブックで同じ問題に苦しんでいましたが、ほぼ毎日再起動しているので、受け入れられた回答は役に立ちませんでした.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 でも動作するので、最近のほぼすべてのハードディスクで動作するはずです。
解決策 3:
/sys/fs/ext4/$DEVICE/lifetime_write_kbytes を見ると、ext4 ファイルシステムに書き込まれたデータの量がわかります。
解決策 4:
iostat
を試すことができます . IO および CPU 使用率に関連する統計を提供します。マニュアル man iostat
を見てください。 .
解決策 5:
私の KINGSTON SEDC400S37480G では、Ubuntu Server 14.04 で、次のスクリプトを使用して TBW を監視します。毎日 1 回 cron から実行します。スクリプトはログ ファイルに出力します。
動作させるには 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