如何测量 Linux 中对 SSD 执行的总写入次数?

如何测量 Linux 中对 SSD 执行的总写入次数?

我在网上搜索了一个工具/实用程序,它可以告诉我对 SSD(或普通磁盘)执行的总写入次数。输出应该如下所示:

SSD Intel 320S :- 
Total data written until now -- 2Tb
Total data read until now -- 4Tb
power on Hours -- 1234 Hrs
etc.

但是我还没找到。有人知道有这样的工具吗?

我知道 Windows 上的 SSDLife 工具可以做到这一点,但我特别想在 Linux 上做到这一点。


我查找了Selivanov 建议的smartctl命令smartmontools。他的帖子很有帮助。我将在这里添加更多信息,这些信息是我在搜索互联网后发现的。

我发现 的gsmartcontrol(GUI 版本smartctrl)特别有用。有关此类工具的更多信息,请查看Smartmontools -- Ubuntu 社区文档。此链接有 的示例smartctl

要了解每个 SMART 属性的含义,请查看此英特尔 SMART 属性。这些属性是 Intel SSD 所特有的,但仍然可以让我们了解 SMART 属性传达了什么样的信息。不同 SSD 之间的某些特定参数可能有所不同。LBA 大小是其中之一吗?我不知道。

另一个极好的信息来源是如何确定 Linux 下 SSD 的写入周期数或预期寿命? - 代码日志。这里,最佳答案表示SMART Attribute Id 225到目前为止对 SSD 执行的 32MiB 大小的总写入 I/O。但是,这适用于 Intel X25-M。其他 SSD 可能使用其他 SMART 属性来传达写入磁盘的总数据。

尤其是三星 840 Pro(可能也适用于其他三星 SSD?)SMART Attribute Id 241 -- Total LBAs Written传达了此信息。我猜测 LBA 大小是 512 字节,但我不确定?我通过将一定数量的数据写入 SSD 并测量此属性的值来进行了一些实验,结果表明它是 512 字节。

答案1

这些值保持聪明的属性。您可以使用smartctl来自智能工具来获取它们。

更新型多巴胺 smartctl -A /dev/sda | grep -i 'media_wearout_indicator' | tr -s ' ' | cut -d' ' -f4-5将输出 Media_Wearout_Indicator 的 VALUE、WORST 和 THRESHOLD。注意:对于您的设备,该属性可能具有不同的名称和阈值,或者可能根本不可用。取决于设备供应商。

答案2

为了比其他的更具体一些,您可以从参数中获取此smartctl信息-l devstat

示例输出:

Device Statistics (GP Log 0x04)
Page Offset Size         Value  Description
  1  =====  =                =  == General Statistics (rev 1) ==
  1  0x008  4              288  Lifetime Power-On Resets
  1  0x018  6     348307315343  Logical Sectors Written
  1  0x020  6         34309409  Number of Write Commands
  1  0x028  6       3434309403  Logical Sectors Read
  1  0x030  6         34954859  Number of Read Commands
  4  =====  =                =  == General Errors Statistics (rev 1) ==
  4  0x008  4                0  Number of Reported Uncorrectable Errors
  4  0x010  4                0  Resets Between Cmd Acceptance and Completion
  5  =====  =                =  == Temperature Statistics (rev 1) ==
  5  0x008  1               13  Current Temperature
  5  0x010  1               16  Average Short Term Temperature
  5  0x018  1               25  Average Long Term Temperature
  5  0x020  1               34  Highest Temperature
  5  0x028  1               12  Lowest Temperature
  5  0x030  1               35  Highest Average Short Term Temperature
  5  0x038  1               16  Lowest Average Short Term Temperature
  5  0x040  1               26  Highest Average Long Term Temperature
  5  0x048  1               21  Lowest Average Long Term Temperature
  5  0x050  4                0  Time in Over-Temperature
  5  0x058  1               55  Specified Maximum Operating Temperature
  5  0x060  4                0  Time in Under-Temperature
  5  0x068  1                0  Specified Minimum Operating Temperature
  6  =====  =                =  == Transport Statistics (rev 1) ==
  6  0x008  4           224211  Number of Hardware Resets
  6  0x010  4              463  Number of ASR Events
  6  0x018  4                0  Number of Interface CRC Errors
  7  =====  =                =  == Solid State Device Statistics (rev 1) ==
  7  0x008  1                3  Percentage Used Endurance Indicator

答案3

你可以尝试

# smartctl -a /dev/sda

smartctl -a /dev/sda
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-49-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model: INTEL SSDSC2CW180A3
Serial Number: CVCV204408A6180EGN
LU WWN Device Id: 5 001517 bb2824682
Firmware Version: 400i
User Capacity: 180,045,766,656 bytes [180 GB]
Sector Size: 512 bytes logical/physical
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: ACS-2 revision 3
Local Time is: Thu Jul 11 00:55:16 2013 PDT
SMART support is: Available – device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status: (0×00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 2097) seconds.
Offline data collection
capabilities: (0x7f) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Abort Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0×0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0×01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 1) minutes.
Extended self-test routine
recommended polling time: ( 48) minutes.
Conveyance self-test routine
recommended polling time: ( 2) minutes.
SCT capabilities: (0×0021) SCT Status supported.
SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
5 Reallocated_Sector_Ct 0×0032 100 100 000 Old_age Always – 0
9 Power_On_Hours 0×0032 000 000 000 Old_age Always – 46385647693103
12 Power_Cycle_Count 0×0032 100 100 000 Old_age Always – 279
170 Unknown_Attribute 0×0033 100 100 010 Pre-fail Always – 0
171 Unknown_Attribute 0×0032 100 100 000 Old_age Always – 0
172 Unknown_Attribute 0×0032 100 100 000 Old_age Always – 0
174 Unknown_Attribute 0×0032 100 100 000 Old_age Always – 278
184 End-to-End_Error 0×0033 100 100 090 Pre-fail Always – 0
187 Reported_Uncorrect 0×0032 100 100 000 Old_age Always – 0
192 Power-Off_Retract_Count 0×0032 100 100 000 Old_age Always – 278
225 Load_Cycle_Count 0×0032 100 100 000 Old_age Always – 10754
226 Load-in_Time 0×0032 100 100 000 Old_age Always – 65535
227 Torq-amp_Count 0×0032 100 100 000 Old_age Always – 66
228 Power-off_Retract_Count 0×0032 100 100 000 Old_age Always – 65535
232 Available_Reservd_Space 0×0033 100 100 010 Pre-fail Always – 0
233 Media_Wearout_Indicator 0×0032 100 100 000 Old_age Always – 0
241 Total_LBAs_Written 0×0032 100 100 000 Old_age Always – 10754
242 Total_LBAs_Read 0×0032 100 100 000 Old_age Always – 21803
249 Unknown_Attribute 0×0013 100 100 000 Pre-fail Always – 357

SMART Error Log not supported
SMART Self-test Log not supported
Note: selective self-test log revision number (0) not 1 implies that no selective self-test has ever been run
SMART Selective self-test log data structure revision number 0
Note: revision number not 1 implies that no selective self-test has ever been run
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0×0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

http://web.archive.org/web/20131029220335/http://namhuy.net/1024/how-to-check-ssd-life-left.html

答案4

运行sudo smartctl -A /dev/<your disk>并查看以下指标:

  • 读取的数据单元(磁盘生命周期内读取了多少数据)
  • 写入的数据单元(磁盘生命周期内写入了多少数据)
  • 主机读取命令(在磁盘的整个生命周期内向磁盘发出了多少个读取命令)
  • 主机写入命令(磁盘生命周期内向磁盘发出了多少写入命令)

注意:-A打印特定于供应商的 SMART 属性,因此这些属性可能因 SSD 的品牌而异。

当磁盘用作系统磁盘时,看到数据单元读取/写入的值是磁盘大小的很多倍,这并不奇怪(实际上是预料之中的)。

相关内容