2 votes

J'ai lu aujourd'hui que les performances d'écriture des flashs diminuent avec l'usage. Je suis un gros utilisateur. Dois-je changer mon comportement ?

Mon téléphone

Je possède un téléphone avec des gigaoctets de mémoire flash intégrée. Mon téléphone comprend également un emplacement physique pour carte MicroSD. Je ne possède pas de carte MicroSD à insérer dans le logement, et je n'ai jamais pris la peine d'en acheter une, mais je ne suis pas opposé à l'idée d'en acheter une.

J'utilise peut-être plus la mémoire flash de mon téléphone que la plupart des gens.

  • Je cours une application gratuite de suivi du sommeil la plupart des nuits, toute la nuit. Il a de nombreuses caractéristiques. Celle qui demande le plus d'espace de stockage ? Il enregistre le son pendant au moins une partie de chaque nuit.

  • J'ai également installé Debian Linux sur mon téléphone (même si le téléphone n'est pas enraciné). Je lance Debian quand je le souhaite en utilisant une application nommée GNURoot Debian . Debian Linux est normalement stocké sur un SSD conçu pour gérer un nombre énorme de cycles d'écriture, ou sur un disque dur qui peut également gérer de nombreux cycles d'écriture - pas sur une puce de mémoire flash de smartphone.

  • J'ai peut-être une centaine d'applications installées, et le magasin Google Play met automatiquement à jour certaines d'entre elles de temps en temps.

  • Je fais un usage intensif d'un jeu qui a été conçu pour être utilisé sur Windows et Linux, mais qui a été porté sur Android. Chaque fois que je me déplace d'un étage à l'autre de l'univers du jeu, le jeu enregistre certaines informations sur le disque. Je soupçonne que, dans la pratique, il réécrit au moins une partie du fichier de sauvegarde du jeu.

Le problème

David Cary a plus de 10 000 points de réputation sur Electrical Engineering Stack Exchange. Dans un poste ici M. Cary écrit :

La mémoire flash a des temps de lecture relativement rapides mais des temps d'écriture beaucoup plus longs. Par exemple, avec une flash série Numonyx M25P80-VMW6G 75MHz 8 Mbit, la lecture d'un secteur de données (à 75 MHz) nécessite 7 millisecondes, tandis que l'effacement et l'écriture de nouvelles données dans un secteur prennent généralement 0,6 seconde (3 secondes maximum).

En d'autres termes, l'écriture de cette mémoire flash prend généralement 85 fois plus de temps que la lecture, et dans le pire des cas, l'écriture d'un secteur prend plus de 400 fois plus de temps que la lecture. (Cela ne tient même pas compte de l'inefficacité de la mise à jour partielle des secteurs).

D'après mon expérience, le temps nécessaire pour effacer et réécrire un secteur particulier de la flash continue d'augmenter à chaque cycle d'effacement/réécriture, mais les temps de lecture restent constants.

Je n'y connais pas grand-chose en matériel, mais supposons que l'expérience de M. Cary sera également valable pour mon téléphone.

Ma question

Je n'aime pas dépenser de l'argent inutilement, et il me faut parfois faire de gros efforts pour choisir un téléphone à acheter. Lorsque j'achète un téléphone, j'aime bien le traiter et continuer à l'utiliser pendant cinq à dix ans ou plus - à moins qu'il ne tombe en panne au point que cela devienne absolument impossible.

Certaines opérations sur mon téléphone sont fâcheusement lentes, comme la vérification automatique des mises à jour logicielles de Debian Linux ( apt-get update ) et autres. Je ne sais pas s'ils sont lents à cause du temps qu'il faut pour écrire sur le flash ou pour d'autres raisons.

Quoi qu'il en soit, en supposant que le problème soulevé par M. Cary ci-dessus soit réel, dois-je m'en inquiéter ? Devrais-je changer mon comportement à cause de cela - par exemple, en déplaçant GNURoot Debian de la mémoire flash intégrée du téléphone vers une carte MicroSD insérée dans le bon emplacement ?

Note

J'ai laissé cette question à l'appréciation des appareils. En effet, j'aimerais appliquer ce que j'ai appris à l'appareil que je possède et à tout autre appareil Android que je pourrais acheter à l'avenir.

Related

3voto

mattm Points 4120

En tant qu'utilisateur, et non en tant que développeur, ce n'est pas un effet dont vous devriez vous préoccuper. Pour des opérations telles que la défragmentation du disque ou l'utilisation de la mémoire flash comme mémoire virtuelle, les taux d'écriture élevés et soutenus du disque peuvent user rapidement la mémoire flash. Mais une utilisation "normale" par un être humain ne produira pas suffisamment d'écritures pour créer un problème d'usure.

Prenons l'exemple de l'application de sommeil et estimons le nombre d'écritures qu'elle provoquera sur un disque à niveau d'usure. Supposons que l'application recueille 128 kilobits / seconde d'audio à stocker sans compression et qu'elle fonctionne et recueille de l'audio en permanence pendant 5 ans. (128 kilobits / seconde) * (128 octets / kilobit) * (5 ans) * (365 jours / an) * (24 heures / jour) * (60 minutes / heure) * (60 secondes / minute) ~= 5,17 * 10^11 octets. Sur un disque à niveau d'usure de 1 Go ~= 10^9 octets, cela représente (5,17 * 10^11) / (10^9) ~= 517 cycles sur 5 ans, ce qui est bien inférieur aux 100 000 cycles prévus pour la mémoire flash actuelle.

Notez également que presque tous les disques SSD sont actuellement construits à partir de mémoire flash. Il n'y a donc pas de différence significative entre le stockage de votre téléphone Android et celui d'un disque SSD grand public destiné à un ordinateur portable ou de bureau en termes de problèmes de vieillissement attendus.


EDIT

Si vous êtes vraiment inquiet à ce sujet, j'évaluerais les performances de votre stockage. Je ne pense pas que ce soit une bonne hypothèse que les opérations d'effacement/écriture prennent 0,6 seconde ; votre mémoire flash n'est pas la même que celle utilisée dans les chiffres de l'exemple.

Ce site évaluation empirique de la mémoire flash donne les chiffres réels de la dégradation. L'ampleur de l'effet n'est pas si importante pour des cycles de quelques milliers.

0voto

JonTheNiceGuy Points 376

Je dirais que cela dépend de votre matériel. Par exemple, certains appareils Samsung (par exemple le Note 4) sont connus pour avoir une puce flash eMMC qui a tendance à tomber en panne si trop de données sont écrites pendant la durée de vie du téléphone. J'ai dû remplacer l'eMMC (la carte mère en fait) de mon Samsung S4 Mini LTE parce qu'elle est tombée en panne après avoir subi trop d'écritures au fil du temps.

Cependant, la plupart des téléphones ont un graveur de carte SD trop lent pour votre cas d'utilisation, même si vous obtenez les meilleures cartes de classe A1 (pour plus d'informations sur les cartes A1 et A2 pour l'utilisation d'Android, voir Dois-je acheter une carte Micro SD de type A1 ou A2 pour mon téléphone ? ). Le principal problème que vous rencontrez est l'utilisation de apt dans l'installation Debian. Le site apt est problématique car apt fait tout son possible pour que votre système reste entièrement fonctionnel, même en cas de coupure de courant pendant une mise à jour. Par conséquent, il est vraiment très sync heureux et attendra que le stockage permanent confirme toutes les écritures de temps en temps avant de continuer.

Si vous pouvez accepter la possibilité de perdre votre environnement Debian en raison d'une panne de batterie, vous pouvez monter votre partition Debian. noatime,async,nobarrier et vos performances devraient s'améliorer.

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