在 Linux 下测量“写入的总字节数”

在 Linux 下测量“写入的总字节数”

我们非常有兴趣探索在服务器环境中使用 SSD 驱动器的可能性。但是,我们需要确定的一件事是预期的驱动器寿命。根据本文制造商以“总写入字节数”(TBW)来报告驱动器耐久性。例如,根据该文章,Crucial C400 SSD 的额定容量为 72TB TBW。Linux 生态系统下是否存在任何脚本/工具可以帮助我们测量 TBW?(然后就使用 SSD 驱动器的可行性做出更明智的决定)

答案1

另一种可能性是看看/proc/磁盘统计信息。它在重启后不会持久,但它包含每个块设备的数据。您可能最感兴趣的是字段 10,它包含写入的扇区总数。在具有扇区大小为 512 字节的 scsi 磁盘的系统上,您可以运行

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

查看每个设备写入了多少兆字节。输出将如下所示

sda 728.759
sda1 79.0908
sda2 649.668

答案2

我在笔记本电脑上遇到了同样的问题,但由于我几乎每天都要重启它,所以接受的答案没有帮助。我有一块三星 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" } '

由于它也可以在了我的硬盘上运行,因此我认为它应该可以在几乎所有现代硬盘上运行。

答案3

您可以通过查看 /sys/fs/ext4/$DEVICE/lifetime_write_kbytes 来了解已写入 ext4 文件系统的数据量。

答案4

你可以试试iostat。它会给你提供与 IO 和 CPU 使用率相关的统计信息。看看手册man iostat

相关内容