41

I have Samsung SSDs on my own laptop and on some servers.

When I do:

smartctl -a /dev/sda | grep 177

I get results that I cannot understand. Here are some examples:

# my laptop Samsung SSD 850 EVO 500GB (new)
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
177 Wear_Leveling_Count     0x0013   100   100   000    Pre-fail  Always       -       0

# server 256 GB, SAMSUNG MZ7TE256HMHP-00000
177 Wear_Leveling_Count     0x0013   095   095   000    Pre-fail  Always       -       95

# server 512 GB, SAMSUNG MZ7TE512HMHP-00000 (1 year old)
177 Wear_Leveling_Count     0x0013   099   099   000    Pre-fail  Always       -       99

# server 512 GB, SAMSUNG MZ7TE512HMHP-00000 (suppose to be new)
177 Wear_Leveling_Count     0x0013   099   099   000    Pre-fail  Always       -       99

# server 480 GB, SAMSUNG MZ7KM480HAHP-0E005
177 Wear_Leveling_Count     0x0013   099   099   005    Pre-fail  Always       -       3

# server 240 GB, SAMSUNG MZ7KM240HAGR-0E005
177 Wear_Leveling_Count     0x0013   099   099   005    Pre-fail  Always       -       11

Any idea how to read Wear_Leveling_Count?

Some values are at the minimum, some are at the maximum.

If consider "laptop" Samsung SSD 850 EVO 500GB, it is 0 and probably will go to 100, then will fail.

If consider first "server" 256 GB, SAMSUNG MZ7TE256HMHP-00000, it is already at the maximum? Will it go down to zero?

54

Kingston describe this SMART attribute as follows:

Number of erase/program cycles per block on average. This attribute is intended to be an indicator of imminent wear-out. Normalized Equation: 100 – ( 100 * Average Erase Count / NAND max rated number of erase cycles)

Ignore the Raw Data in these instances (They can be manipulated by manufacturers to work in different ways), and look at the Current Value column.

This source from Anandtech gives us a good indication of how to use this figure:

The Wear Leveling Count (WLC) SMART value gives us all the data we need. The current value stands for the remaining endurance of the drive in percentage, meaning that it starts from 100 and decreases linearly as the drive is written to. The raw WLC value counts the consumed P/E cycles, so if these two values are monitored while writing to the drive, sooner than later we will find the spot where the normalized value drops by one.

All of your drives are at between 95 and 100, and will eventually drop to 0. This is an estimation of how many write, erase, rewrite etc. cycles each block can go through before failing, and at the moment, one of your drives is estimated to have used 5% of it's current expected life span. Again, the key word here is estimated.

Note also that your drives may use different NAND technology, hence the differences in perceived life. Some NAND technology expects blocks to last for around 1000 PE cycles each, others can be rated for as much as 30,000.

17
  • 1
    I attached the table "header". What is "current" value? is it "VALUE" column? – Nick Feb 9 '16 at 17:36
  • 2
    @Nick Yes, exactly. – Jonno Feb 9 '16 at 17:42
  • 1
    That's the exact opposite of my experience. My new drives (Samsung 850 Pro, Samsung 840 Pro) had started at a Raw Value of 0 and went up from there. In fact my current 840 Pro was at 97 about a month ago, and it's now at 99. (This is from looking at SMART data through the Samsung Magician software.) – Granger Jan 9 '17 at 15:13
  • 4
    @Granger Do you have a 'Value' or 'Current' column? Raw values are typically up to the OEM to decide what they do with, and aren't necessarily legible data. Notice in the example the OP provided, the 'VALUE' is 100, and 'RAW_VALUE' is 0 for their 850 EVO. – Jonno Jan 9 '17 at 16:24
  • 2
    Ah. That makes more sense if I completely ignore the "Raw Value" column. – Granger Jan 9 '17 at 18:21
3

SMART reports a PREFAILED condition for my Samsung SM951 (AHCI) 128GB, reported in Linux as SAMSUNG MZHPV128HDGM-00000 (BXW2500Q).

But in my case I think it's a firmware bug of the drive,

  • because the total-bytes-written property is reported as 1.1TB while the drive has a specified Total Bytes Written (TBW) of 75TB! Which probably is on the (very) save side, because similar (MLC NAND) drives all reached a multitude of that (600TB) in a real endurance test,
  • and apart from the wear_level_count warning no other prefail or oldage errors or warnings are reported,
  • while the reallocated-sector-count, which according to that test is good pre-fail indicator, is still 0.

So my advise would be to examine those values for your drive/system and base your conclusions on that.

I prefer the low level utility skdump which is supplied with libatasmart, the same library that is used by Gnome Disks.

Use the following command, replacing /dev/sdc with the path to your block device:

sudo skdump /dev/sdc

1
  • 3
    Note that if a row is listed as "PREFAIL" that does not mean the attribute has "pre-failed", but rather that it serves as a potential pre-failure metric (so if it is in a poor state, e.g. low normalized VALUE, your drive is likely to fail soon). – Doktor J Apr 30 '20 at 14:05
2

Short note on Samsung EVO and PRO SSD:

smartctl -a /dev/sda

smartctl 6.4 2014-10-07 r4002 [x86_64-linux-4.9.0-0.bpo.6-amd64] (local build)
Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     Samsung SSD 860 PRO 1TB
Serial Number:    S42NNF0K000000
LU WWN Device Id: 5 002538 e405145c6
Firmware Version: RVM01B6Q
User Capacity:    1,024,209,543,168 bytes [1.02 TB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      2.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   Unknown(0x09fc) (unknown minor revision code: 0x005e)
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Fri Jan  8 11:53:56 2021 EET
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:  (0x00) 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:        (    0) seconds.
Offline data collection
capabilities:            (0x53) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    No Offline surface scan supported.
                    Self-test supported.
                    No Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   2) minutes.
Extended self-test routine
recommended polling time:    (  85) minutes.
SCT capabilities:          (0x003d) SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0032   097   097   000    Old_age   Always       -       14689
 12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       122
177 Wear_Leveling_Count     0x0013   098   098   000    Pre-fail  Always       -       25
179 Used_Rsvd_Blk_Cnt_Tot   0x0013   100   100   010    Pre-fail  Always       -       0
181 Program_Fail_Cnt_Total  0x0032   100   100   010    Old_age   Always       -       0
182 Erase_Fail_Count_Total  0x0032   100   100   010    Old_age   Always       -       0
183 Runtime_Bad_Block       0x0013   100   100   010    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0032   067   056   000    Old_age   Always       -       33
195 Hardware_ECC_Recovered  0x001a   200   200   000    Old_age   Always       -       0
199 UDMA_CRC_Error_Count    0x003e   099   099   000    Old_age   Always       -       23
235 Unknown_Attribute       0x0012   099   099   000    Old_age   Always       -       58
241 Total_LBAs_Written      0x0032   099   099   000    Old_age   Always       -       29068641040

So most interesting part of lifetime indicator is:

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
177 Wear_Leveling_Count     0x0013   098   098   000    Pre-fail  Always       -       25

25 for RAW value??? Does that mean, I have 25 percent of lifetime depleted?

Really no. Please see what Samsung wrote:

SMART attribute 177 (Wear Leveling Count)

This attribute represents the number of media program and erase operations (the number of times a block has been erased). This value is directly related to the lifetime of the SSD. The raw value of this attribute shows the total count of P/E Cycles.

This means, that in my particular SSD VALUE 98 shows still 98 percent of lifetime is remaining, but average Program/Erase cycles per block is 25 times.

One more interesting thing:

241 Total_LBAs_Written      0x0032   099   099   000    Old_age   Always       -       29068641040

What is that size in GB? TB?

Very simple. Take SMART information to get Sector size:

Sector Size:      **512** bytes logical/physical

Total Gigabytes or Terabytes Written:

29068641040/2/1024/1024/1024 = 13847 GB / 1024 = 13.52 TB

Explanation: divide LBA count by 2, because 1 KB consists from 2 512B sectors. Then divide by 1024 to get KB, MB, GB and TB.

Hope it helps.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.