4 votes

Si je réinitialise mon téléphone, est-ce que cela va également NETTOYER la mémoire eMMC fragmentée ?

Je sais qu'Android prend en charge fstrim mais cela fonctionne uniquement si le téléphone est inactif pendant longtemps tout en étant en charge. Je pense que mon téléphone est trop fragmenté et manque de performance donc je veux le réinitialiser mais je ne suis pas sûr si TRIM s'exécutera également si je le fais. Étant donné que TRIM est important pour améliorer la vitesse du SSD, j'aimerais vraiment exécuter TRIM sur mon téléphone.

0 votes

Si votre téléphone ne "performe pas bien" dans 99,99999% des cas, la fragmentation de la mémoire flash n'est pas le problème. Sur la mémoire flash, l'effet de la fragmentation sur les performances est pratiquement inexistant.

0 votes

Oh je ne savais pas ça. Mais la réinitialisation exécutera-t-elle Trim pour autant?

0 votes

Le plus probablement, oui.

6voto

Irfan Latif Points 16863

Android prend en charge fstrim mais cela ne fonctionne que si le téléphone est inactif pendant longtemps tout en étant en charge

Non, sur les versions plus récentes, Android exécute fstrim selon un calendrier quotidien, à condition que les conditions soient remplies. Ou il devrait s'exécuter au redémarrage s'il n'est pas exécuté depuis plus de 3 jours. Voir cette réponse pour plus de détails et comment vous pouvez exécuter fstrim manuellement.

FRAGMENTATION DE LA MÉMOIRE FLASH :

Je pense que mon téléphone est trop fragmenté et manque de performance

Non, la fragmentation n'existe pas sur la mémoire flash, ou du moins n'affecte pas les performances. En fait, c'est le système de fichiers qui se fragmente (c'est pourquoi un système de fichiers nouvellement formaté a 0 % de fragmentation), transférant la même chose au stockage physique sous-jacent. Cependant, le support sous-jacent gère cela différemment.

Commençons d'abord par une brève mise en perspective de la relation entre le système de fichiers et le support de stockage. Le système de fichiers interagit avec les adresses de bloc logique (LBAs), qui ne sont que des nombres représentant une unité de mémoire. La correspondance du système de fichiers aux LBAs est indépendante du fait que le support de stockage sous-jacent soit un HDD ou un SSD.

Sur les HDD, la correspondance des LBAs aux adresses de cylindre-tête-secteurs (CHS ; disques magnétiques rotatifs) (1:1 / séquentielle / linéaire) (1) est créée lors du formatage de bas niveau du disque dur lors de la fabrication, ce qui ne change jamais sauf si un secteur est marqué comme défectueux par le firmware du contrôleur du disque (dans la liste g de la table de défauts du disque) et remappé à un autre secteur de secours. Le système d'exploitation peut également marquer des secteurs comme défectueux dans le système de fichiers pour les exclure de toute utilisation future, comme le fait CHKDSK sous Windows lors d'un formatage complet et e2fsck/badblocks sous Linux. Ainsi, le système d'exploitation est conscient de la géométrie physique du disque, qui est proportionnelle à la géométrie des LBAs.

Sur la mémoire flash (y compris les SSD, les eMMC, les cartes SD et les clés USB, etc.), la correspondance des LBAs aux adresses de bloc physique (PBAs ; cellules de silicium) est entièrement contrôlée par la couche de traduction de flash (FTL) ; une partie du firmware du contrôleur de mémoire. Le système d'exploitation n'en sait rien, il ne peut voir qu'au maximum les LBAs, pas ce qui se passe en dessous, pas même le ECC des cellules de mémoire défectueuses (tout comme les secteurs défectueux sur les HDD), et c'est pourquoi nous ne réalisons pas la mauvaise santé de l'eMMC tant qu'il ne tombe pas en panne. Comme une page de mémoire ne peut pas être simplement écrasée contrairement aux HDD, elle doit être effacée avant d'être programmée (écrite). Un effet secondaire est qu'un certain nombre de pages sont effacées/réécrites et la correspondance physique change même si un petit fichier est édité. Sur les HDD, les fichiers ne sont pas remplacés physiquement sauf s'ils sont raccourcis ou prolongés. Le système d'exploitation est conscient de ces changements physiques sur les HDD, mais pas sur la mémoire flash.

Ainsi, sur les HDD, le système d'exploitation est conscient de la fragmentation physique qui est la même que la fragmentation du système de fichiers (LBAs), et la défragmentation (comme celle effectuée par Windows régulièrement) se produit au niveau physique. Mais sur la mémoire flash, vous ne pouvez pas simplement faire de la défragmentation en réalité, plutôt de bons contrôleurs de mémoire flash fragmentent délibérément en tant que stratégie de nivellement de l'usure. Le système d'exploitation n'a aucun contrôle sur la fragmentation réelle au niveau physique (à moins d'avoir des outils avancés pour communiquer avec le contrôleur de flash). Cependant, le système d'exploitation est conscient de la fragmentation dans le système de fichiers. Mais si vous défragmentez le système de fichiers, cela ne défragmentera pas la mémoire flash.

Comme @Robert l'a mentionné dans un commentaire, il n'y a aucun effet de la fragmentation physique sur les performances de la mémoire flash car il n'y a pas de composants mécaniques dans la mémoire flash, c'est-à-dire pas de latence de recherche due au déplacement de la tête sur différentes pistes comme dans les HDD. Les experts pensent que la fragmentation du système de fichiers peut avoir un certain impact en raison du nombre accru de requêtes d'E/S que le système d'exploitation doit effectuer pour lire/écrire des données dispersées.


En résumé, les lignes ci-dessus :

  • Sur les HDD, c'est le système d'exploitation/le système de fichiers qui contrôle où les données sont réellement enregistrées sur la mémoire physique, donc il peut la défragmenter.
  • Sur les supports de stockage flash, le système d'exploitation/le système de fichiers ne sait pas où les données sont réellement enregistrées sur la mémoire physique, donc il ne peut pas les défragmenter.

Comme TRIM est important pour améliorer la vitesse du SSD, j'aimerais vraiment exécuter TRIM sur mon téléphone

Lorsqu'un système d'exploitation demande à un système de fichiers d'envoyer TRIM à l'eMMC, il demande en fait au contrôleur de mémoire flash d'effectuer une collection des déchets - effacer les PBAs qui correspondent aux LBAs appartenant à des fichiers supprimés. Ainsi, le contrôleur de l'eMMC mappe ces LBAs à des blocs déjà/nouvellement effacés (PBAs). Cela ne fera pas de défragmentation. Consultez la réponse mentionnée ci-dessus pour savoir à quelle fréquence fstrim devrait être exécuté.

EST-CE QUE LA RÉINITIALISATION D'USINE EFFECTUE TRIM ?

Je veux le réinitialiser mais je ne suis pas sûr que TRIM s'exécutera également si je le fais

La réinitialisation d'usine sur les appareils Android formate les partitions /data et /cache (2). La question est donc de savoir si le formatage est accompagné de TRIM ou non.

Eh bien, cela ne peut pas être standardisé. Le formatage et TRIM sont des choses différentes, donc cela dépend de l'utilitaire de formatage s'il envoie ou non la commande TRIM à l'eMMC. Le formatage peut impliquer une partition mais dans la plupart des cas (en particulier sur Android), c'est juste le formatage de haut niveau c'est-à-dire pour créer des structures de données (par exemple, super-blocs, tables de fichiers, répertoires, bitmaps d'inode/bloc, journaux, etc.) utilisées par le système d'exploitation pour identifier le contenu de la partition.

Si nous examinons les lignes du code source de la restauration standard qui gère le formatage des partitions lors de la réinitialisation d'usine, nous ne voyons aucune notion de TRIM il effectue wipe_block_device (3) qui appelle BLKDISCARD ou BLKSECDISCARD à condition qu'ils soient pris en charge (4). Les deux ioctls sont essentiellement du TRIM au niveau du périphérique de bloc (pas au niveau du système de fichiers). fstrim n'est exécuté que par vold à l'intérieur du système d'exploitation principal Android. De plus, l'un des outils utilisés pour créer le système de fichiers mke2fs_static tente d'effacer le périphérique avant la création du système de fichiers (5), mais pas l'autre outil e2fsdroid_static. Il y a donc des chances que l'eMMC reçoive une demande de TRIM/discard pendant la réinitialisation d'usine, mais méfiez-vous du passé : les téléphones Android ne suppriment pas complètement les données lorsqu'ils exécutent leur option de réinitialisation d'usine.

4 votes

Merci beaucoup. Cette réponse a été grandement appréciée. Elle répond pratiquement à tout sans laisser place à la confusion. Merci.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X