GNU/Linux >> Linux の 問題 >  >> Linux

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

解決策 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

Linux
  1. Linux でパイプをレート制限する方法は?

  2. Linux で webm ビデオに参加する

  3. Linux での ZFS は動作しますか?

  1. Linux で再起動をスケジュールするにはどうすればよいですか?

  2. Linux - 助けてください、inode が不足しています!

  3. Linux サーバー構成を文書化する方法は?

  1. Linuxでユーザーアクティビティを監視する方法

  2. Linuxでドライブをマウントするさまざまな方法?

  3. Linux から Windows への RDP