Quand faut-il courir FRim? -- cyanogenmod domaine et file-system domaine et lagging domaine et maintenance domain android en relation problème

When should fstrim run?



4
vote

problème

français

basé sur ce thread de forum cyanogenmod , j'ai essayé Pour résoudre le retard dans la mise en marche des applications et la commutation entre les applications de mon Galaxy Nexus exécutant cyanogenmod avec Android 4.4.4 en exécutant manuellement Fstrim.

root@maguro:/ # fstrim -v /data /data: 11649122304 bytes trimmed root@maguro:/ # fstrim -v /cache /cache: 436121600 bytes trimmed root@maguro:/ # fstrim -v /system /system: 80490496 bytes trimmed root@maguro:/ # exit

Cela a largement réparé les problèmes de retard. Le délai de retour à l'écran d'accueil, par exemple, a été réduit d'environ 4 secondes à moins de 1 seconde. Sur la base de cette performance Boost, je m'attends à ce que le retard ait été causé par le système de fichiers fonctionnant inefficacement.

L'Android OS n'est-il pas censé exécuter Fstrim seul? Quand est-ce censé arriver?

langue Anglaise

Based on this cyanogenmod forum thread, I tried to address the delay in running applications and switching between applications on my Galaxy Nexus running cyanogenmod with Android 4.4.4 by running fstrim manually.

root@maguro:/ # fstrim -v /data                                                           /data: 11649122304 bytes trimmed                                                          root@maguro:/ # fstrim -v /cache                                                          /cache: 436121600 bytes trimmed                                                           root@maguro:/ # fstrim -v /system                                                         /system: 80490496 bytes trimmed root@maguro:/ # exit 

This has largely fixed the delay issues. The delay to return to the home screen, for example, has reduced from about 4 seconds to less than 1 second. Based on this performance boost, I expect the delay was caused by the filesystem running inefficiently.

Isn't the Android OS supposed to run fstrim on its own? When is this supposed to happen?

           
   
   

Liste de réponses

5
 
vote

the Article < / a> référencé dans @ La réponse de Mattm est un peu obsolète. IdleMaintenanceService a été supprimé en lollipop, les choses ont changé. Sur la tarte, planifié fstrim est déclenché à partir de StorageManagerService ( 1 ) to MountService ( 2 ) :

Si l'appareil est vivant à minuit + oisif , FRim est exécuté à la prochaine version disponible chargement + oisif temps

* ( 3 )
Montez les appels de service StorageManager Qui appelle à tour Vold pour faire fstrim .

.

Si l'horaire est manqué car les conditions ne se rencontrent pas et fstrim n'a pas fonctionné pour le dernier 9988777668 ( 4 ) , il sera forcé pendant le démarrage du périphérique si l'appareil est redémarré. SystemServer ( 5 ) , fstrim0 ( 6 ) , fstrim1 ( 7 ) et fstrim2 ( 8 ) sont impliqués.

Dans chaque cas, le fichier fstrim3 ( 9 ) (puisque sucette) est mis à jour (< Un href = "https://androïd.googlesource.com/platform/frameworks/base/+/refs/tags/android-9.0.0_R42/services/core/java/com/andrroid/server/storagemanagserservice.java#581" rel = "nfollow noreferrer"> 10 ) , vous pouvez donc vérifier son horodatage ( nécessite la racine ) pour savoir quand fstrim4 était la dernière fois .

Si vous voulez faire fstrim5 manuellement, utilisez l'outil Commandline d'Android fstrim6 (nécessite une racine ou fstrim7 ) . Auparavant, c'était fstrim8 mais ajouté à Storage Manager dans OREO ( 11 ) et retiré de fstrim9 dans la tarte ( 12 ) .

Pour envoyer 99887776620 à sélectionner des systèmes de fichiers uniquement, utilisez StorageManagerService1 outil ( nécessite une racine ); une applet Bushbox.

Et si vous n'avez pas la racine?
Et vous soupçonnez que le fichier StorageManagerService2 est utilisé pendant 3 jours et plus de jours, le périphérique de redémarrage, 99887776623 sera forcé (puisque Lollipop 5.1 ( 13 ) ). Simple.

Les applications ne peuvent pas couper sans root; Voir Cette réponse .

Combien de fois la finition doit être exécutée?

La mémoire flash (y compris les SSD, les EMMC, les cartes SD, les bâtons USB, etc.) ont un nombre limité de cycles de programme / effacement avant qu'il ne décède. Mais contrairement aux disques durs, les données ne peuvent pas être simplement écrasées sur la mémoire flash, elle doit d'abord être effacée, qui est obtenue via StorageManagerService4

.

.

Maintenant si nous faisons trop de StorageManagerService5 , cela provoquera une GC fréquente dans l'arrière-plan Construction précieux 99887776626 des cycles et réduisant ainsi la vie. Si nous ne faisons pas StorageManagerService7 du tout, il pourrait y avoir une GC inutile (de données déjà supprimées), plus les opérations d'écriture seront trop lentes avec le temps car StorageManagerService8 aura à effectuer avant de remplacer les données, qui a une latence très plus élevée par rapport à StorageManagerService9 opération.

Nous avons donc besoin d'un équilibre entre les deux.

Il existe également d'autres facteurs. Si EMMC Controller prend en charge MountService0 , quelle efficacité est-il efficace dans la planification de la GC de fond, le nivellement et la gestion de l'amplification d'écriture, etc.

Donc, à moins que vous ayez la fiche technique de l'EMMC de votre téléphone et que vous êtes sûr de ce que vous faites, il est préférable de quitter le 99887776631 au système d'exploitation. Sur PCS ' ( 14 ) :

exécutant fréquemment FRIM, ou même en utilisant 99887776632 , pourrait affecter négativement la durée de vie des périphériques SSD de mauvaise qualité. Pour la plupart des systèmes de bureau et de serveur, une fréquence de coupe suffisante est une fois par semaine .

Mais cela peut varier avec des situations.

lié:

  • CODING POUR SSDS
  • Pourquoi la garniture n'est-elle pas prise en charge sur la partition "/ données" cryptée?

 

The article referenced in @mattm's answer is a bit outdated. IdleMaintenanceService was removed in Lollipop, things have changed. On Pie, scheduled fstrim is triggered from StorageManagerService (1) to MountService (2):

if the device is alive at midnight + idle, fstrim gets run at the next available charging + idle time

* (3)
Mount service calls StorageManager which in turn calls Vold to do fstrim.

If the schedule is being missed because the conditions don't meet and fstrim has not run for last 3 days (4), it will be forced during device startup if the device is restarted. SystemServer (5), PackageManager (6), StorageManager (7) and Vold (8) are involved.

In each case, the file /data/system/last-fstrim (9) (since Lollipop) gets updated (10), so you can check its timestamp (requires root) to find out when fstrim was last run.

If you want to do TRIM manually, use Android's commandline tool sm fstrim (requires root or adb shell). Previously this was vdc fstrim dotrim but added to Storage Manager in Oreo (11) and removed from vold in Pie (12).

In order to send FITRIM ioctl to selected filesystem(s) only, use fstrim tool (requires root); a busybox applet.


What if you don't have root?
And you suspect that the scheduled fstrim is being missed for 3+ days, restart device, fstrim will be forced (since Lollipop 5.1 (13)). Simple.

Apps can't TRIM without root; see this answer.


HOW OFTEN TRIM SHOULD BE RUN?

Flash memory (including SSDs, eMMCs, SD Cards, USB sticks etc.) has limited number of Program/Erase cycles before it dies. But unlike HDDs, data can't be just overwritten on flash memory, it has to be Erased first, which is achieved through Garbage Collection.

Now if we do too much fstrim, this will cause frequent GC in background consuming precious P/E cycles and hence reducing life. If we don't do fstrim at all, there could be unnecessary GC (of already deleted data), plus the write operations will get too slow with time because Erase will have to be performed before overwriting data, which has very higher latency as compared to Program operation.

So we need a balance between both.

Also there are other factors e.g. whether eMMC controller supports over provisioning, how effective it is in background GC scheduling, wear-leveling and managing write amplification etc.

So unless you have the data sheet of your phone's eMMC and you are sure what you are doing, better is to leave the fstrim to OS. On PCs' (14):

Running fstrim frequently, or even using mount -o discard, might negatively affect the lifetime of poor-quality SSD devices. For most desktop and server systems a sufficient trimming frequency is once a week.

But this may vary with situations.

RELATED:

  • Coding for SSDs
  • Why is TRIM not supported on encrypted xe2x80x9c/dataxe2x80x9d partition?
 
 
4
 
vote
vote
Meilleure réponse
 

Le commentaire de manière inoublietable comprenait un Anandtech Article qui décrit les conditions dans lesquelles FRim est censé exécuter:

J'ai appris un peu plus sur les conditions sous-jacentes lorsque Android 4.3 éliminera les systèmes de fichiers, car il n'était pas complètement clair avant. Le framework Android envoie une "fenêtre de maintenance inactive de début" que la montevice écoute, puis invoque Vold to Fstrim Systèmes de fichiers lorsque quelques conditions ont été remplies - l'appareil n'a pas été touché pendant plus d'une heure, pas de maintenance inactive L'événement de la fenêtre a été envoyé en 24 heures et l'appareil est soit un chargeur hors chargeur à 80% de batterie ou de chargeur à 30% de batterie. L'objectif est de faire courir Ftrim environ une fois toutes les 24 heures si vous avez l'habitude de brancher l'appareil pour charger toutes les nuits.

 

Unforgettableid's comment included an AnandTech article that describes the conditions under which fstrim is supposed to run:

Ixe2x80x99ve learned a bit more on the conditions underlying when Android 4.3 will TRIM filesystems, as it wasnxe2x80x99t completely clear before. The Android framework will send out a xe2x80x9cstart idle maintenance windowxe2x80x9d event that the MountService listens for, and then invokes vold to fstrim filesystems when a few conditions have been met xe2x80x93 the device hasnxe2x80x99t been touched for over an hour, no idle maintenance window event has been sent in 24 hours, and the device is either off-charger with 80% battery or on-charger with 30% battery. The goal is to have fstrim run roughly once every 24 hours if youxe2x80x99re in the habit of plugging the device in to charge every night.

 
 
1
 
vote

Réponse de Mattm Indique les conditions dans lesquelles, fstrim devrait exécuter. Je ne suis pas au courant si le comportement a changé dans des versions androides ultérieures, mais je suis tombé sur une application qui fait fstrim sur demande, aussi sur le redémarrage . Root nécessaire. Partage de ces informations car il peut être utile à ceux qui ne sont pas Savvie Linux (comme moi:)

SSD Boost

Android 4.3+ Supporte les supports de manière nativement, cela signifie que le système d'exploitation après avoir supprimé un fichier envoie une commande de trim afin que le contrôleur NAND signification des blocs de sorcière Le fichier utilisé, le contrôleur les effacera quand il peut écrire rapidement sans effacer sans effacer sans effacer la prochaine fois .

Mais les utilisateurs n'ont aucun contrôle sur ce processus et Android ne coupe pas le stockage pendant une très longue période.

'SSD Boost' vous aide à exécuter manuellement votre appareil manuellement si vous estimez qu'il est devenu laggy et de toute façon, il vous coupe pour vous sur chaque redémarrage.

Je sais que cela ne répond pas directement à la question, mais a estimé que c'était la meilleure question sur place pour partager cette

 

Answer by mattm indicates conditions under which, fstrim should run. I am not aware if the behaviour has changed in subsequent Android versions, but I came across an app that does fstrim on demand as also on reboot . Root needed. Sharing this information as it may be useful to those who are not Linux savvy ( like me :)

SSD Boost

Android 4.3+ supports trim natively, it means that operating system after deleting a file will sends a trim command to nand controller notifying witch blocks the file used, the controller will erase them when idle so it can write fast without erasing next time.

But users have no control over this process and Android doesn't trim the storage for a very long time.

'SSD Boost' helps you to run trim on your device manually if you feel it has become laggy and anyway it does trim for you on every reboot.

I know this directly doesn't answer the question, but felt this was the best question on site to share this

 
 
 
 

Questions connexes

3  Comment nettoyer les anciens dossiers d'application de la ROM antérieure?  ( How to clean up old application folders from prior rom ) 
J'ai installé CM10 sur mon GS2 et, pendant le processus, je n'ai pas formé le système de fichiers car je souhaitais conserver mes photos et ma musique sur l'a...

1  Cette application promet de gérer "fstrim" sans root mais je ne suis pas sûr que cela fonctionne  ( This app promises to run fstrim without root but i am not sure if it works ) 
Je ne suis pas sûr si Cette application travaux. Quelqu'un peut-il m'aider s'il vous plaît? Mon téléphone est nouveau et dans sa période de garantie, donc j...

1  Les contrôles de cohérence des systèmes de fichiers périodiques sont probablement une bonne idée. Les appareils Android actuels les font-ils jamais?  ( Periodic filesystem consistency checks are probably a good idea do current andr ) 
Permettez-moi de commencer en vous donnant des informations générales de base. Ma question réelle est au fond de ce post. Arrière-plan, Partie 1: Journal R...

3  Comment défragrer mon appareil Android?  ( How do i defrag my android device ) 
J'ai vu quelques applications en ligne, mais elles ne semblent pas légitimes. D'après ce que j'ai vu, ils ne semblent pas montrer ce qui se passe pendant que ...

5  Comment supprimer des dossiers non utilisés créés par des applications?  ( How to remove unused folders created by apps ) 
Quand j'ai commencé avec une carte SD fraîche, il n'y avait que très peu de dossiers dedans. Au fil du temps, lorsque j'ai essayé de nombreuses applications, ...

1  Comment forcer la réduction sur l'appareil Android?  ( How to force trim on android device ) 
avec 4.3 Activation du support pour la garniture (bien que je lis que c'était présent depuis le premier JB). Je me demandais s'il y a un moyen pour moi de for...

4  Quand faut-il courir FRim?  ( When should fstrim run ) 
basé sur ce thread de forum cyanogenmod , j'ai essayé Pour résoudre le retard dans la mise en marche des applications et la commutation entre les application...

2  Pourquoi la garniture n'est-elle pas prise en charge sur la partition cryptée "/ données"?  ( Why is trim not supported on encrypted data partition ) 
J'ai un Lenovo A369i . J'utilise LagFix (fstrim) pour couper les partitions. Auparavant, il fonctionnait bien avec 9988777662 mais après avoir cruté mon ...

4  Quand devrais-je exécuter une vérification de la cohérence sur ma carte microSD amovible?  ( When should i run a consistency check on my removable microsd card ) 
Je possède un appareil Android avec une carte microSD amovible. La carte utilise la technologie FAT32 ou EXFAT. Ce sont des technologies "Systèmes de fichiers...

3  Avez-vous besoin d'exécuter des désinstallateurs / nettoyeurs sur Android pour maintenir des performances comme sur Windows?  ( Do you need to run uninstallers cleaners on android to maintain performance leve ) 
Vous devrez me pardonner car je ne suis pas aussi familier avec le fonctionnement interne de Android / Linux, car je suis avec Windows. Je suis curieux de l...




© 2022 www.demandez.top All Rights Reserved. Questions et réponses Accueil Tous les droits sont réservés