Когда должен бежать Fstrim? -- cyanogenmod поле с участием file-system поле с участием lagging поле с участием maintenance пол android Связанный проблема

When should fstrim run?


4
vote

проблема

русский

На основании этого цианогенмод форум нить , я попробовал Чтобы устранить задержку в запущенных приложениях и переключения между приложениями на моей Galaxy Nexus работает Cyanogenmod с Android 4.4.4, запущенным 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   

Это в значительной степени исправило проблемы задержки. Задержка для возврата на главный экран, например, снизилась с примерно 4 секунд до 1 секунды. Исходя из этого повышения производительности, я ожидаю, что задержка была вызвана файловой системой, работающей неэффективной.

Разве ОС Android не должна работать FSTRIM самостоятельно? Когда это должно произойти?

Английский оригинал

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?

           
   
   

Список ответов

5
 
vote

/ a> На ссылке @ Ответ Mattm немного устарел. <Код> IdleMaintenanceService был удален на леденец на палочке, все изменилось. На пироге запланирован <код> fstrim срабатывает из <код> StorageManagerService ( 1 ) <код> MountService ( 2 ) :

Если устройство живут на midnight + idle , fstrim запускается на следующем доступном зарядки + простуды время

* ( 3 )
Услуги крепления <код> StorageManager который в свою очередь звонит <код> Vold , чтобы сделать <код> fstrim .

Если расписание пропускается, потому что условия не соответствуют и <код> fstrim не запускаются для последнего <код> 3 days ( 4 ) , он будет вынужден во время запуска устройства, если устройство перезапущено. <Код> SystemServer ( 5 ) , <код> fstrim0 ( 6 ) , <код> fstrim1 ( 7 ) и <код> fstrim2 ( 8 ) участвуют.

В каждом случае файл <код> fstrim3 ( 9 ) (поскольку леденца) обновляется (< href = "https://android.googlesource.com/platform/frameworks/base/+/refs/tags/android-9.0.0_r42/services/core/java/com/android/server/storagemanagerservice.java#581" rel = "nofollow noreferrer"> 10 ) , чтобы вы могли проверить его метки времени ( требует root ), чтобы узнать, когда <код> fstrim4 был последним запуском ,

Если вы хотите сделать <код> fstrim5 вручную, используйте командную строку Android fstrim6 (требуется root или <код> fstrim7 ) Отказ Ранее это было <код> fstrim8 но добавлено к менеджеру хранения в OREO ( 11 ) и удален из <код> fstrim9 в пироге ( 12 ) .

Для того, чтобы отправить <Код> StorageManagerService0 Только для выбранной файловой системы, используйте <Код> StorageManagerService1 Инструмент ( требует root ); Апплет Batebox.


Что если у вас нет root?
И вы подозреваете, что запланированные <код> StorageManagerService2 пропускаются за 3+ дня, перезапустить устройство, <код> StorageManagerService3 будет вынужден (поскольку на палочке 5.1 ( 13 ) ). Простой.

Приложения не могут обрезать без корня; Смотрите Этот ответ .


Как часто обрежка должна быть запущена?

Флэш-память (включая SSDS, EMMCS, SD-карты, USB-накопители и т. Д.) Имеет ограниченное количество циклов программы / стирания, прежде чем он умирает. Но в отличие от жестких дисков данных, данные не могут быть просто перезаписаны на флэш-памяти, он должен быть стерта первым, что достигается через <Код> StorageManagerService4 .

Теперь, если мы сделаем слишком много <код> StorageManagerService5 , это приведет к тому, что частый GC в фоновом режиме потребляет драгоценный <код> StorageManagerService6 циклов и, следовательно, уменьшая жизнь. Если мы не будем делать <код> StorageManagerService7 вообще, могут быть ненужным gc (из уже удаленных данных), плюс операции записи будут слишком медленно со временем, потому что <код> StorageManagerService8 будет иметь Для выполнения перед перезагрузочным данными, которая имеет очень высокую задержку по сравнению с <Кодом> StorageManagerService9 операции.

Поэтому нам нужен баланс между обоими.

Также есть и другие факторы, например Поддерживает ли контроллер EMMC Controler MountService0 , насколько это эффективно в фоновом режиме GC планирование, выравнивание и управление усилением записи и т. Д.

Так что, если у вас нет листа данных EMMC вашего телефона, и вы уверены, что вы делаете, лучше - покинуть <код> MountService1 к ОС. На PCS ' ( 14 ) :

Запуск FSTRIM часто или даже с использованием <код> MountService2 , может негативно повлиять на срок службы упорных устройств SSD. Для большинства настольных и серверных систем достаточная частота обрезки является один раз в неделю .

Но это может варьироваться с ситуациями.

Связано:

    .
  • Кодирование для SSDS
  • Почему отделка не поддерживается на зашифрованных "/ data" Раздел?

 

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
Лучший ответ
 

Комментарий underttabledabled включен angle Anandtech Статья , которая описывает условия, при которых FSTRIM должен работать:

Я узнал немного больше на условиях, лежащих в основе, когда Android 4.3 обременяет файловые системы, так как он не был полностью понятен раньше. Android Framework отправит событие «start Whitle Tense Windows», для которого можно заслушать Mountservice, а затем призывает Vold для файловых систем FSTRIM, когда было выполнено несколько условий - устройство не было затронуто в течение часа, бездействующего обслуживания Оконное событие было отправлено через 24 часа, а устройство является либо зарядным устройством с 80% батареей или на зарядном устройстве с 30% батареей. Цель состоит в том, чтобы иметь FSTRIM примерно один раз каждые 24 часа, если вы находитесь в привычке подключать устройство для зарядки каждую ночь.

 

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

Ответ MattM указывает на условия, под которыми требуется <код> fstrim . Я не знаю, если поведение изменилось в последующих версиях Android, но я наткнулся на приложение, которое делает fstrim по требованию, а также на перезагрузке . Root нужен. Распределение этой информации, как это может быть полезно для тех, кто не Linux Savvy (например, я:)

SSD Boost

Android 4.3+ поддерживает отделку, в котором он означает, что операционная система после удаления файла будет отправлять команду обрезки в NAND контроллер уведомления Witch блокирует используемый файл, контроллер будет удалить их, когда он может писать без стирания в следующий раз ,

Но пользователи не имеют контроля над этим процессом, а Android не обрезает хранилище в течение очень длительного времени.

'SSD Boost' поможет вам запустить отделку на своем устройстве вручную, если вы чувствуете, что он стал отставать и в любом случае, он нарезается для вас на каждой перезагрузке.

Я знаю, что это напрямую не отвечает на вопрос, но чувствовал, что это был лучший вопрос на сайте, чтобы поделиться этим

 

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

 
 
 
 

Связанный проблема

0  Как гарантировать удаление приложений?  ( How to ensure apps get uninstalled cleanly ) 
Я использую, чтобы попробовать (установить и удалить) огромное количество приложений, чтобы выбрать те, которые я буду любить. Я боюсь, удаленные приложения м...

3  Что мне делать, прежде чем отправить мой кирпичный телефон для ремонта?  ( What should i do before sending my bricked phone to repair ) 
Здесь есть похожие вопросы, но это о телефоне, который не включается. Я не могу сбросить на завод. Что мне делать? Измените свой пароль Google? Какую информа...

5  Как удалить неиспользуемые папки, созданные приложениями?  ( How to remove unused folders created by apps ) 
Когда я начал со свежей SD-карты, в нем было только очень мало папок. Со временем, когда я попробовал много приложений, я мог видеть список папок в моей SD-ка...

2  Безопасно ли использовать сжатие для нандористов (резервных копий), созданных пользовательским восстановлением?  ( Is it safe to use compression for nandroids backups created by custom recoveri ) 
Многие пользовательские восстановления, такие как TWRP, имеют возможность использовать сжатие при создании резервных копий Nandroid. По умолчанию эта опция об...

4  ОС Android OS беспорядок похожа на настольные OS  ( Does android os clutter similar to desktop os ) 
Что я имею в виду под этим. Ожидается ли ожидаемое сверхурочное время, производительность устройства будет уменьшено, а программное обеспечение будет работать...

1  Galaxy Note становится медленным и менее отзывчивым [дубликат]  ( Galaxy note is getting slower and less responsive ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> Этот вопрос уже есть ответы здесь : ...

3  Как убирать старые папки приложения из PROID ROM?  ( How to clean up old application folders from prior rom ) 
Я установил CM10 на моем GS2, а во время процесса я не отформатировал файловую систему, так как я хотел сохранить свои фотографии и музыку на устройстве. Я зн...

7  Что мне делать, прежде чем попробовать расширенные устранения неполадок  ( What should i do before i try advanced troubleshooting ) 
Есть ли какие-либо шаги по устранению неисправностей и советы по устранению неисправностей , прежде чем I ищу проблему конкретных вариантов устранения непола...

0  Прозрачная телеграмма локальная база данных  ( Clear telegram local database ) 
Как я могу очистить телеграмму локальной базы данных? Ранее я мог бы сделать это, когда я перехожу в настройки данных и хранения приложения, то очистите кэши...

0  Как я могу определить кеш, если я вижу его имя? Одно имя подозрительно  ( How can i identify the cache if i see its name one name is suspicious ) 
Если в SAMSUNG S8 запускается P >. <код> System cache OneNote TopBuzz Фактический вид Видимый в течение примерно 2 секунд: Я знаю, что последний не...

2  Как полностью очистить мое устройство приложений конкретной компании?  ( How to completely clear my device of a particular companys apps ) 
Вследствие недавнего Motley Jool Report Действия Google, относящихся к мобильным приложениям Cheetah, это произошло для меня, что я хотел бы либо удалить, л...

1  Как заставить отделку на устройстве Android?  ( How to force trim on android device ) 
с 4.3 Включение поддержки накладки (хотя я прочитал, что она присутствовала с первого JB). Мне было интересно, если для меня есть способ заставить отделку на ...

1  Это приложение обещает бегать «Fstrim» без рута, но я не уверен, работает ли это  ( This app promises to run fstrim without root but i am not sure if it works ) 
Я не уверен, если Это приложение работает. Может кто-нибудь, пожалуйста, помогите мне? Мой телефон новый и в своем гарантированном периоде, поэтому я еще не...

0  В каком лучшем состоянии оставить устройство Android?  ( What is the best state to leave an android device in ) 
У меня есть телефон Moto E. Я использую его как планшет для запуска приложений, а не как телефон, поэтому мне не всегда нужно оставить его. Это чаще, что ус...

4  Когда должен бежать Fstrim?  ( When should fstrim run ) 
На основании этого цианогенмод форум нить , я попробовал Чтобы устранить задержку в запущенных приложениях и переключения между приложениями на моей Galaxy N...

3  Как обмануть мое устройство Android?  ( How do i defrag my android device ) 
Я видел несколько приложений онлайн, но они не кажутся законными. Из того, что я видел, они, похоже, не показывают, что происходит, пока привод дефрагментиров...

3  Вам нужно запустить удаленные / очистители на Android, чтобы поддерживать уровень производительности, как в Windows?  ( Do you need to run uninstallers cleaners on android to maintain performance leve ) 
Вам придется простить меня, так как я не такой знакомой с внутренней работой Android / Linux, так как я с Windows. Мне интересно, разлагается на производите...

1  Периодические проверки согласованности файловой системы, вероятно, являются хорошей идеей. Текущие устройства Android когда-либо делают их?  ( Periodic filesystem consistency checks are probably a good idea do current andr ) 
Позвольте мне начать, давая вам какую-то общую справочную информацию. Мой реальный вопрос находится в самом нижней части этого поста. фон, часть 1: журнал ...

2  Что оставляет ваше устройство на некоторое время делать?  ( What does leaving your device off for a while do ) 
Эта страница: Что я должен сделать, прежде чем я Попробуйте расширенное устранение неполадок говорит 3) Держите ваше устройство отключено некоторое время...

2  Почему отделка не поддерживается на зашифрованных разделах «/ Data»?  ( Why is trim not supported on encrypted data partition ) 
У меня укоренился <код> Lenovo A369i . Я использую <код> LagFix (fstrim) для обрезки разделов. Ранее он работал хорошо с /data , но после того, как я зашифр...

1  Nexus 5 зависает через несколько минут с выключенным экраном  ( Nexus 5 hangs after few minutes with screen off ) 
Так, недавно я получил несколько сломанных телефонов Nexus 5, чтобы попытаться их починить. Одним из них, однако, уверен мои попытки диагностировать / исправи...

4  Когда я должен запустить проверку согласованности на моей съемной карте microSD?  ( When should i run a consistency check on my removable microsd card ) 
У меня есть устройство Android с съемным картой microSD. Карта использует FAT32, либо Exfat Technology. Это «не журнальные файловые системы» технологии, поэто...

1  Неоперационные таблетки Samsung Galaxy 10.2. Я хочу удалить файлы, задаваясь вопросом, могу ли я сделать это с USB-кабелем, а затем использовать Explorer для поддержания файлов?  ( Have unrooted samsung galaxy 10 2 tablet i want to delete files wondering if i ) 
У неправели планшета, таблетка Samsung Galaxy 10.2. Память становится напряженным на самой планшете, и моя карта - 64 ГБ с большинством доступен. Я видел отве...

2  Это защитник экрана полезен на стеклянном телефоне гориллы?  ( Is a screen protector useful on a gorilla glass phone ) 
Я купил телефон 2-го поколения Moto E Phone. Согласно Эта страница на GSMARENA.com , этот телефон имеет a " Corning Gorilla Glass 3, олеофобное покрытие «Экр...

Связанный проблема

0  Как гарантировать удаление приложений? 
3  Что мне делать, прежде чем отправить мой кирпичный телефон для ремонта? 
5  Как удалить неиспользуемые папки, созданные приложениями? 
2  Безопасно ли использовать сжатие для нандористов (резервных копий), созданных пользовательским восстановлением? 
4  ОС Android OS беспорядок похожа на настольные OS 
1  Galaxy Note становится медленным и менее отзывчивым [дубликат] 
3  Как убирать старые папки приложения из PROID ROM? 
7  Что мне делать, прежде чем попробовать расширенные устранения неполадок 
0  Прозрачная телеграмма локальная база данных 
0  Как я могу определить кеш, если я вижу его имя? Одно имя подозрительно 
2  Как полностью очистить мое устройство приложений конкретной компании? 
1  Как заставить отделку на устройстве Android? 
1  Это приложение обещает бегать «Fstrim» без рута, но я не уверен, работает ли это 
0  В каком лучшем состоянии оставить устройство Android? 
4  Когда должен бежать Fstrim? 
3  Как обмануть мое устройство Android? 
3  Вам нужно запустить удаленные / очистители на Android, чтобы поддерживать уровень производительности, как в Windows? 
1  Периодические проверки согласованности файловой системы, вероятно, являются хорошей идеей. Текущие устройства Android когда-либо делают их? 
2  Что оставляет ваше устройство на некоторое время делать? 
2  Почему отделка не поддерживается на зашифрованных разделах «/ Data»? 
1  Nexus 5 зависает через несколько минут с выключенным экраном 
4  Когда я должен запустить проверку согласованности на моей съемной карте microSD? 
1  Неоперационные таблетки Samsung Galaxy 10.2. Я хочу удалить файлы, задаваясь вопросом, могу ли я сделать это с USB-кабелем, а затем использовать Explorer для поддержания файлов? 
2  Это защитник экрана полезен на стеклянном телефоне гориллы?