web-dev-qa-db-ja.com

Linuxで「書き込まれた総バイト数」を測定する

私たちはサーバー環境でSSDドライブを使用する可能性を探求することに非常に興味があります。ただし、確立する必要がある1つのことは、予測されるドライブの寿命です。 この記事 によると、メーカーはドライブの耐久性を「書き込まれた総バイト数」(TBW)で報告しています。例えば。その記事から、Crucial C400 SSDは72TB TBWと評価されています。 TBWの測定に役立つスクリプト/ツールがLinuxエコシステムの下に存在しますか? (そして、SSDドライブの使用の実現可能性について、より知識のある決定を下します)

37
badnews

別の可能性は / proc/diskstats を調べることです。再起動後も持続しませんが、すべてのブロックデバイスのデータがあります。おそらくあなたにとって最も興味深いのは、書き込まれたセクターの総数を含むフィールド10です。 512バイトのセクターサイズのSCSIディスクを搭載したシステムでは、次のコマンドを実行できます。

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

各デバイスに書き込まれたメガバイト数を確認します。出力は次のようになります

sda 728.759
sda1 79.0908
sda2 649.668

31
sciurus

私は自分のノートブックで同じ問題に苦労していましたが、日常的にほとんど再起動しているので、受け入れられた答えは役に立ちませんでした。私はサムソン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でも動作するので、ほとんどすべての最新のハードディスクで動作するはずです。

/ sys/fs/ext4/$ DEVICE/lifetime_write_kbytesを見ると、ext4ファイルシステムに書き込まれたデータの量を確認できます。

17
sciurus

私のキングストンSEDC400S37480Gの場合、Ubuntu Server 14.04で、次のスクリプトを使用してTBWを監視します。私はcronから毎日1回実行します。スクリプトはログファイルに出力します。

あなたはそれが機能するために計算が必要です。次を使用して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
2
inteq

iostatを試すことができます。これは、IOおよびCPU使用率に関連する統計を提供します。マニュアルを参照してくださいman iostat

2
Khaled