« Vérifier si TRIM fonctionne sur votre SSD (trimcheck) » : différence entre les versions

De Linux Server Wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
 
(5 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :
[[category:serveur]]
[[category:serveur]]
[[category:Linux]]
[[category:Linux]]
=Support matériel=
Vérifiez que la commande suivante à des valeurs > 0 aux colomnes <code>DISC-GRAN</code> et <code>DISC-MAX</code>
<pre>lsblk --discard</pre>
Alternativement, vous pouvez aussi vérifier avec hdparm : <code>hdparm -I /dev/sda | grep TRIM</code>
=Vérification de si trim fonctionne bien=
<pre># yes | dd iflag=fullblock bs=1M count=1 of=trim.test</pre>
<pre># yes | dd iflag=fullblock bs=1M count=1 of=trim.test</pre>


<pre>
# filefrag -s -v trim.test
# filefrag -s -v trim.test
Filesystem type is: ef53
Filesystem type is: ef53
File size of trim.test is 1048576 ('''256''' blocks of '''4096''' bytes)
File size of trim.test is 1048576 (256 blocks of 4096 bytes)
  ext:    logical_offset:        physical_offset: length:  expected: flags:
ext:    logical_offset:        physical_offset: length:  expected: flags:
    0:        0..    255:  '''21459456'''..  21459711:    256:            last,eof
  0:        0..    255:  21459456..  21459711:    256:            last,eof
</pre>


<pre>
# df trim.test
# df trim.test
Filesystem    1K-blocks    Used Available Use% Mounted on
Filesystem    1K-blocks    Used Available Use% Mounted on
'''/dev/sda1'''     120621792 60572328  53879096  53% /
/dev/sda1      120621792 60572328  53879096  53% /
</pre>


On a donc un fichier <code>trim.test</code> rempli du pattern yes (<code>y</code>) sur la partition <code>/dev/sda1</code> à l'adresse 21459456 avec une longueur de 256 blocs de 4096 bytes.
On a donc un fichier <code>trim.test</code> rempli du pattern yes (<code>y</code>) sur la partition '''/dev/sda1''' à l'adresse '''21459456''' avec une longueur de '''256''' blocs de '''4096''' bytes.


si on lit ce fichier :
si on lit ce fichier :
<pre>
# dd bs='''4096''' skip='''21459456''' count='''256''' if=/dev/sda1 | hexdump -C
# dd bs=4096 skip=21459456 count=256 if=/dev/sda1 | hexdump -C
00000000  79 0a 79 0a 79 0a 79 0a  79 0a 79 0a 79 0a 79 0a  |'''y.y.y.y.y.y.y.y.'''|
00000000  79 0a 79 0a 79 0a 79 0a  79 0a 79 0a 79 0a 79 0a  |y.y.y.y.y.y.y.y.|
*
*
256+0 records in
256+0 records in
256+0 records out
256+0 records out
1048576 bytes (1,0 MB, 1,0 MiB) copied, 0,00340137 s, 308 MB/s
1048576 bytes (1,0 MB, 1,0 MiB) copied, 0,00340137 s, 308 MB/s
00100000
00100000
</pre>


Si TRIM fonctionne, le pattern yes doit changer après suppression du fichier, vidage du cache :
Si TRIM fonctionne, le pattern yes doit changer après suppression du fichier, vidage du cache :


<pre>
# rm trim.test
# rm trim.test
# sync
# sync
# fstrim -v /
# fstrim -v /mount/point/
# echo 1 > /proc/sys/vm/drop_caches
# echo 1 > /proc/sys/vm/drop_caches
# dd bs=4096 skip=21459456 count=256 if=/dev/sda1 | hexdump -C
# dd bs=4096 skip=21459456 count=256 if=/dev/sda1 | hexdump -C
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |'''................'''|
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
*
256+0 records in
256+0 records in
256+0 records out
256+0 records out
1048576 bytes (1,0 MB, 1,0 MiB) copied, 0,0029884 s, 351 MB/s
1048576 bytes (1,0 MB, 1,0 MiB) copied, 0,0029884 s, 351 MB/s
00100000
00100000
</pre>


Si votre SSD utilise une méthode de chiffrement hardware, vous devriez voir un pattern aléatoire au lieu de <code>|................|</code>
Si votre SSD utilise une méthode de chiffrement hardware, vous devriez voir un pattern aléatoire au lieu de '''................'''

Dernière version du 3 juillet 2022 à 12:58


Support matériel

Vérifiez que la commande suivante à des valeurs > 0 aux colomnes DISC-GRAN et DISC-MAX

lsblk --discard

Alternativement, vous pouvez aussi vérifier avec hdparm : hdparm -I /dev/sda | grep TRIM

Vérification de si trim fonctionne bien

# yes | dd iflag=fullblock bs=1M count=1 of=trim.test
# filefrag -s -v trim.test
Filesystem type is: ef53
File size of trim.test is 1048576 (256 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..     255:   21459456..  21459711:    256:             last,eof
# df trim.test
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1      120621792 60572328  53879096  53% /

On a donc un fichier trim.test rempli du pattern yes (y) sur la partition /dev/sda1 à l'adresse 21459456 avec une longueur de 256 blocs de 4096 bytes.

si on lit ce fichier :

# dd bs=4096 skip=21459456 count=256 if=/dev/sda1 | hexdump -C
00000000  79 0a 79 0a 79 0a 79 0a  79 0a 79 0a 79 0a 79 0a  |y.y.y.y.y.y.y.y.|
*
256+0 records in
256+0 records out
1048576 bytes (1,0 MB, 1,0 MiB) copied, 0,00340137 s, 308 MB/s
00100000

Si TRIM fonctionne, le pattern yes doit changer après suppression du fichier, vidage du cache :

# rm trim.test
# sync
# fstrim -v /
# echo 1 > /proc/sys/vm/drop_caches
# dd bs=4096 skip=21459456 count=256 if=/dev/sda1 | hexdump -C
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
256+0 records in
256+0 records out
1048576 bytes (1,0 MB, 1,0 MiB) copied, 0,0029884 s, 351 MB/s
00100000

Si votre SSD utilise une méthode de chiffrement hardware, vous devriez voir un pattern aléatoire au lieu de ................