0

According to the only documentation that I could find on the Internet regarding the Seek Error Rate SMART attribute of Seagate HDDs, we have to perform the following calculations in order to get the SER normalized value:

  1. Get the raw 48-bit hexadecimal value of SER (based on the given example, 0x052E0E3000EC)

  2. Split it into 4 uppermost and 8 lowermost nibbles:

    Seek errors = 0x052E (1326)

    Seeks = 0x0E3000EC (238026988)

  3. Apply the formula:

    -10 log (Seek errors / Seeks)

And we get a result of 52.54. Indeed, according to the example this is what's being reported by the SMART utility (as a rounded number):

Attribute        ID Threshold Value Worst Raw 
======================================================
Seek Error Rate  7  30        53    38    052E0E3000EC

The problem is that I can't understand how this normalized SER value is correlated with the table given by the above link:

90 — <= 1 error per 1000 million seeks
80 — <= 1 error per 100 million
70 — <= 1 error per 10 million
60 — <= 1 error per million
50 — 10 errors per million
40 — 100 errors per million
30 — 1000 errors per million
20 — 10 errors per thousand

We can deduce that the reported value of 53 corresponds to 7,3 errors per million seeks (starting from 10 errors per million at value 50, subtract 0,90 errors for each consecutive value until we reach 60).

However the raw value reported by the SMART utility gives 238026988 number of seeks, i.e. approximately 238 million. So if there are 7,3 errors per million seeks:

238 * 7,3 = 1737,4 errors in total

Which seems to be incorrect because the reported number of errors is 1326 and the closest normalized value for that number would be 55 (5,5 errors per million seeks) instead of 53.

Is my reasoning wrong or the example?

3
  • "Is my reasoning wrong ..." -- Yes. "We can deduce that the reported value of 53 corresponds to 7,3 errors per million seeks ..." -- You're using linear interpolation, but the scale is logarithmic and inverted, hence the discrepancies. What is the context of this issue? You have the calculated error rate. Magnitude wise, that value fits in the table. While it's commendable that you're trying to delve into HDD statistics, what is your goal?
    – sawdust
    Sep 8, 2021 at 23:33
  • @sawdust I'm building a custom script which probes all disks currently connected to my system and reports their SMART data in one-for-all table. I'm using smartmontools to get the SMART information. The script is made in such a way so that instead of reporting the SER raw or normalized value of a Seagate drive, it performs the above calculations and reports the actual rate of seek errors, e.g. "1 in 1000000". I was just trying to verify that the calculations are indeed correct when I made the above observation, but based on what you're saying my reasoning is wrong.
    – AndroidX
    Sep 9, 2021 at 0:14
  • I still can't wrap my head around it though... If a normalized value of 50 means "10 errors per million" and 60 means "1 error per million" then what exactly is the meaning of a value of 53? It has to be somewhere in between?
    – AndroidX
    Sep 9, 2021 at 0:15

1 Answer 1

1

Is my reasoning wrong or the example?

Yes, your reasoning is incorrect.
You're using linear interpolation, but the scale is logarithmic and inverted, hence the discrepancies.

Split it into 4 uppermost and 8 lowermost nibbles:

Seek errors = 0x052E (1326)

Seeks = 0x0E3000EC (238026988)

So 1,326 Seek errors in 238,026,988 Seeks is a Seek Error Rate of 5.57 per 1,000,000.

Using the image below from mathsisfun.com, a 5.57 on the (upper) log scale lines up with about 7.5 on the (lower) linear scale.

enter image description here

Since the upper scale is logarithmic, the fractional part of the 5.57 is not midway (50/50) between the 5 and the 6, but rather skewed right, about 70/30 between the 5 and the 6.
In other words you have to imagine another log scale is between the 5 and the 6, rather than a linear scale.

Since the SER normalized value has an inverted log calculation, imagine the linear scale is from 10 to 0 (reading left to right), rather than the existing 0 to 10.
Or we can simply subtract the 7.5 from 10, resulting in 2.5.

Now combine this 2.5 with the magnitude value of 50 (representing 10 errors per million).
The result is 52.5.

Sanity check

60 — <= 1 error per million
50 — 10 errors per million

The result of 52.5 is between 60 and 50.
The error rate it represents is 5.57 errors per million, which between 1 error per million and 10 errors per million.


The formula/calculation seems consistent with the table.
In other words you could imagine that the log scale above is between 1 error per million and 10 errors per million (reading left to right), and the linear scale is from 60 to 50 (reading left to right).

1
  • Thank you. I should've paid more attention in math class...
    – AndroidX
    Sep 9, 2021 at 1:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .