[gull] Write Amplification on SSD

Cédric cedric.dufour at ced-network.net
Thu Feb 11 14:35:44 CET 2016


Re, sur les disques Samsung (et peut-être ceux d'autres fabricants), un
champ intéressant est le "Wear Leveling Count":

# smartctl -a /dev/sda
Device Model:     Samsung SSD 850 PRO 128GB
[...]
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE     
UPDATED  WHEN_FAILED RAW_VALUE
[...]
  9 Power_On_Hours          0x0032   097   097   000    Old_age  
Always       -       14882
177 Wear_Leveling_Count     0x0013   099   099   000    Pre-fail 
Always       -       48

Le champs "VALUE" et à 100 (%) sur un disque neuf et décroît au fur et à
mesure que les cellules voient s'épuiser leur quota d'opération
d'écritures. À zero, le disque est très certainement mort. L'avenir dira
s'il "vit" jusqu'à zéro ou mourra bien avant.

En comparant le champ "VALUE" et le champ "RAW_VALUE", on obtient une
indication du nombre - absolu - d'opération d'écritures à priori
supportées par chaque cellule. Dans le cas ci-dessus, 48 opérations
d'écritures (RAW_VALUE) correspondant à 1-1.9...% (100%-VALUE) d'usure,
on obtient une quantité d'opérations d'écriture - anticipées par le
fabricant - de l'ordre de 2400 à 4800. Bien entendu le firmware s'occupe
de répartir les opérations d'écritures de manière à "user"
harmonieusement la totalité des cellules disponibles.

Il est intéressant aussi de voir qu'en 14882 heures (620 jours)
d'utilisation - OS + cache/journal ZFS d'un "serveur" HTPC/stockage/mail
- seul 1-1.9% de la capacité du SSD a été utilisé.
Intéressant également de comparer ces chiffres aux données de Blaise
(174 jours en ligne, 5% d' "usure"); chacun son "use case"! :-)

Je me demande par contre ce que signifie le champs
"Media_Wearout_Indicator" (présent chez Blaise mais pas chez moi).

Cédric

On 11/02/16 14:18, Blaise Vogel wrote:
> Bonjour,
>
> Merci pour l'info, mais il semblerait que ce champ ne soit pas toujours renseigné:
>
> root at A006T440:~# sed 's/^.*[Rr]ealloc.*\([sS]ector\|[bB]locks\).* \([0-9]\+\) *$/\2/p;d' <(smartctl -a /dev/sda)
> root at A006T440:~# smartctl -a /dev/sda
>
> === START OF INFORMATION SECTION ===
> Device Model:     SAMSUNG MZ7TD256HAFV-000L9
> Serial Number:    S17LNSADA00826
> LU WWN Device Id: 5 002538 500000000
> Firmware Version: DXT02L5Q
> User Capacity:    256'060'514'304 bytes [256 GB]
> Sector Size:      512 bytes logical/physical
> Rotation Rate:    Solid State Device
> Device is:        Not in smartctl database [for details use: -P showall]
> ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 4c
> SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
> Local Time is:    Thu Feb 11 13:37:04 2016 CET
> SMART support is: Available - device has SMART capability.
> SMART support is: Enabled
>
> ...
> Vendor Specific SMART Attributes with Thresholds:
> ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
>   9 Power_On_Hours          0x0032   099   099   000    Old_age   Always       -       4180
>  12 Power_Cycle_Count       0x0032   096   096   000    Old_age   Always       -       3135
> 175 Program_Fail_Count_Chip 0x0032   100   100   010    Old_age   Always       -       0
> 176 Erase_Fail_Count_Chip   0x0032   100   100   010    Old_age   Always       -       0
> 177 Wear_Leveling_Count     0x0013   096   096   005    Pre-fail  Always       -       46
> 178 Used_Rsvd_Blk_Cnt_Chip  0x0013   100   100   010    Pre-fail  Always       -       0
> 179 Used_Rsvd_Blk_Cnt_Tot   0x0013   100   100   010    Pre-fail  Always       -       0
> 180 Unused_Rsvd_Blk_Cnt_Tot 0x0013   100   100   010    Pre-fail  Always       -       6240
> 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
> 184 End-to-End_Error        0x0033   100   100   097    Pre-fail  Always       -       0
> 187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
> 190 Airflow_Temperature_Cel 0x0032   070   059   000    Old_age   Always       -       30
> 195 Hardware_ECC_Recovered  0x001a   200   200   000    Old_age   Always       -       0
> 198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
> 199 UDMA_CRC_Error_Count    0x003e   253   253   000    Old_age   Always       -       0
> 233 Media_Wearout_Indicator 0x003a   199   199   000    Old_age   Always       -       364366
> 234 Unknown_Attribute       0x0012   100   100   000    Old_age   Always       -       0
> 235 Unknown_Attribute       0x0012   099   099   000    Old_age   Always       -       43
> 236 Unknown_Attribute       0x0012   099   099   000    Old_age   Always       -       14
> 237 Unknown_Attribute       0x0012   099   099   000    Old_age   Always       -       46
> 238 Unknown_Attribute       0x0012   100   100   000    Old_age   Always       -       0
>
> SMART Error Log Version: 1
> No Errors Logged
> ...
>
> l'ID 5 est manquant !
> Par contre le champ 180 Unused_Rsvd_Blk_Cnt_Tot pourrait être significatif, en cas de diminution. 
> Pas documenté chez smartmoontools:
> https://www.smartmontools.org/wiki/TocDoc#SMARTAttributes
>
> Par contre ici:
> http://opentsdb.net/docs/build/html/user_guide/utilities/tcollector.html
>
> Donc pour les Samsung, à monitorer ;-)
>
> Blaise Vogel
>
> _______________________________________________
> gull mailing list
> gull at forum.linux-gull.ch
> http://forum.linux-gull.ch/mailman/listinfo/gull


More information about the gull mailing list