我们非常有兴趣探索在服务器环境中使用SSD驱动器的可能性。 但是,我们需要build立的一件事是预计延长寿命。 根据这篇文章,制造商正在报告“总字节数”(TBW)方面的驱动器耐久性。 例如,从这篇文章中,Crucial C400固态硬盘的额定容量为TBT 72TB。 Linux生态系统下是否存在任何脚本/工具来帮助我们测量TBW? (然后就使用SSD驱动器的可行性做出更有教育的决定)
另一种可能性是查看/ proc / diskstats 。 它在重新启动时不是持续的,但它有每个块设备的数据。 可能最有意思的是第10栏,其中包含了所写扇区的总数。 在具有扇区大小为512字节的scsi磁盘的系统上,您可以运行
awk '/sd/ {print $3"\t"$10 / 2 / 1024}' /proc/diskstats
看看有多less兆字节写入每个设备。 输出看起来像
sda 728.759
sda1 79.0908
sda2 649.668
我在笔记本电脑上遇到了同样的问题,但由于每天都重启,接受的答案没有帮助。 我有一个三星mSATA固态硬盘,恰好有SMART属性#241 Total_LBAs_Written。 根据官方文件 ,
要计算总大小(以字节为单位),请将此属性的原始值乘以512B。
所以下面的命令给我写在我的SSD磁盘上的总TB(sdb)
sudo smartctl -A /dev/sdb | awk '/^241/ { print "TBW: "($10 * 512) * 1.0e-12, "TB" } '
因为它也适用于我的硬盘,所以我认为它几乎适用于所有现代硬盘。
通过查看/ sys / fs / ext4 / $ DEVICE / lifetime_write_kbytes,可以看到有多less数据已写入ext4文件系统。
你可以试试iostat 。 它提供了有关IO和CPU使用情况的统计信息。 看看手动man iostat 。
对于我的KINGSTON SEDC400S37480G,在Ubuntu Server 14.04下,我使用下面的脚本来监控TBW。 我每天从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