[smartmontools-support] Write amplification using NVMe Endurance Group Log (Log Identifier 09h)

Franc Zabkar fzabkar at internode.on.net
Sat Feb 4 18:40:09 CET 2023


Could someone tell me whether GSmartControl (Windows) or smartctl 
(Linux) or any other SMART tool reports the Endurance Group Log (Log 
Identifier 09h) for NVMe SSDs? I don't have an NVMe SSD to enable me to 
perform this check.

According to the NVMe standard ...

Bytes 79 - 64:

Data Units Written:

Contains the total number of data bytes that have been written to the 
Endurance Group. This value does not include controller writes due to 
internal operations such as garbage collection. This value is reported 
in billions (i.e., a value of 1 corresponds to 1,000,000,000 bytes 
written) and is rounded up (e.g., one indicates the number of bytes 
written is from 1 to 1,000,000,000, three indicates the number of bytes 
written is from 2,000,000,001 to 3,000,000,000).

A value of 0h indicates that the controller does not report the number 
of Data Units Written.

Bytes 95 - 80:

Media Units Written:

Contains the total number of data bytes that have been written to the 
Endurance Group including both host and controller writes (e.g., garbage 
collection). This value is reported in billions (i.e., a value of 1 
corresponds to 1,000,000,000 bytes written) and is rounded up (e.g., one 
indicates the number of bytes written is from 1 to 1,000,000,000, three 
indicates the number of bytes written is from 2,000,000,001 to 
3,000,000,000).

A value of 0h indicates that controller does not report the number of 
Media Units Written.

ISTM that these two parameters would allow us to calculate the write 
amplification.

WA = (Media Units Written) / (Data Units Written)


More information about the Smartmontools-support mailing list