FSTRIMが実行されるべきですか? -- cyanogenmod フィールド と file-system フィールド と lagging フィールド と maintenance フィールド android 関連 問題

When should fstrim run?












4
vote

問題

日本語

これに基づいて cyanogenmodフォーラムスレッド、試してみました実行中のアプリケーションの遅延に対処し、FSTRIMを手動で実行することで、CyanogenModを駆使してCyanogenModを実行しているMy Galaxy Nexusのアプリケーション間で切り替えるには。

<事前> <コード> 9988776655443330

これは遅延問題を大幅に修正しました。たとえば、ホーム画面に戻る遅延は、約4秒から1秒未満に減少しました。このパフォーマンス上昇に基づいて、遅延が非効率的に実行されているファイルシステムによって引き起こされたことを期待しています。

Android OSはそれ自身で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 's答えは少し古くなっています。 <コード> IdleMaintenanceService はロリポップで削除され、物事が変わりました。 PIE、スケジュール<コード> MountService1 は<コード> 99887766544332 ( 1 to 9988766655444333 ( 2 )

デバイスが midnight + idle で生存している場合、fstrimは次の 充電+アイドル 時間

*( 3 ) Mount Serviceコール<コード> 99887766544335 <コード> 9988766654336

を実行する 9988776655444334

スケジュールがミスされていない場合は、条件が満たされていないため、<コード> 99887766544337 は、Last 9988776666544338 ( 4 )は、デバイスの起動時にデバイスの起動時に強制されます。 <コード> SystemServer (https://android.googlesource.com/platform/frameworks/base / +/refs/tags/android-9.0.0_r42/services/java/com / android/server/systemserver.java##1027 "rel =" nofollow noreferrer "> 5 、<コード> 9988777666554433310 ( 6 、<コード> 9988777666554433311 ( 7 )および<コード> MountService312 ( 8 )が関与しています。

それぞれの場合、ファイル<コード> 9988766554433313 ( 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 )、そのタイムスタンプをチェックする(に必要なが必要です) fstrim4 が最後に実行されたときに調べる。

<コード> fstrim5 を手動で実行したい場合は、Androidのコマンドラインツール <コード>を使用してください。 998876655443317 を必要とします) 。以前は<コード> 998877665543318 でしたが、OREO ( 11 ) 998877655443319 ( 12 )。

選択したファイルシステムにのみ送信するには、<コード> 998877666655443320 Toolを使用してください( root が必要です)。ビジーボックスアプレット。


rootがない場合はどうですか? そして、スケジュールされた StorageManagerService2 が3日以降の再起動中、<コード> 998876655443323 が強制されます(Lollipop 5.1 (この回答


トリムをどのくらいの頻度で実行されるべきか?

フラッシュメモリ(SSDS、EMMCS、SDカード、USBスティックなどを含む)は、ダイの前に限られたプログラム/消去サイクルが限られています。しかし、HDDとは異なり、データはフラッシュメモリに上書きすることはできません。最初に消去する必要があります。これは<コード> 99887766665443324 。

今すぐ<コード> 99887766665443325 を行う場合、これはバックグラウンドの貴重な登録版の消費率の頻度が頻繁に発生し、寿命を軽減します。 998877665544327 をまったくしない場合は、不要なGC(すでに削除されたデータの)が発生する可能性があります。 9988776665443328 では、時間がかかり過ぎることができます。データを上書きする前に実行されるため、<コード> 998877666665433329

と比較して非常に高い待ち時間があります。

だから私たちは両方の間のバランスが必要です。

他の要因もあります。 EMMCコントローラが<コード> 9988877665443330 をサポートするかどうか、バックグラウンドGCスケジューリング、WEARレベル化、および書き込み増幅の管理などの効果的です。

SO携帯電話のEMMCのデータシートをお持ちでない限り、あなたが何をしているのか確実なものはよく、<コード> 99887766544331 をOSに残すことです。 PCS '( 14 )

FSTRIMを頻繁に実行するか、<コード> 99887766654333332 を使用しても、質の低いSSDデバイスの寿命に悪影響を及ぼす可能性があります。ほとんどのデスクトップおよびサーバーシステムでは、十分なトリミング周波数が

です。

しかし、これは状況によって異なるかもしれません。

関連:

  • 暗号化された "/ 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
ベストアンサー
 

unforgetTableIdのコメントには、 anandtechの記事 fstrimが実行されることになっている条件を記述する:

Android 4.3がファイルシステムをトリミングすると、以前に完全にはっきりしないように、基礎となる条件についてもう少し学びました。 Androidフレームワークは、MountServiceがListens Listens forを聴取してからVoldを起動し、その後、いくつかの条件が満たされたときにvoldを呼び出すイベントを送信します。デバイスは1時間以上タッチされていません。アイドルメンテナンスはありません。ウィンドウイベントは24時間で送信され、デバイスは80%のバッテリを持つオフチャージャー、または30%のバッテリーを持つ充電器のいずれかです。目標は、毎晩充電するためにデバイスを差し込む習慣であれば、24時間に1回FSTRIMが約1回走ることです。

 

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による回答は、<コード> 998876665544330 を実行する条件を示します。その後のAndroidバージョンで行動が変化した場合は認識していませんが、 99887766544331 を使用するアプリケーションに出会いました。根拠が必要です。この情報をLinux Savvyでない人にとって有用な場合があります(私のように:)

SSD Boost

Android 4.3以降はネイティブでトリミングをサポートしているため、ファイルを削除した後のオペレーティングシステムがNANDコントローラにTRIMコマンドを送信することを意味します。使用するファイルをブロックするファイルは、次回消去せずに迅速に書き込めるときにコントローラが消去できるようにします。 。

しかし、ユーザーはこのプロセスを制御することはできず、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

 
 
 
 

関連する質問

2  暗号化された "/ data"パーティションではトリムがサポートされていないのはなぜですか?  ( Why is trim not supported on encrypted data partition ) 
私は根の<コード> 99887665544330 を持っています。 <コード> 99887766544331 を使用してパーティションをトリミングします。以前は 99887766554432 でうまく機能していましたが、私の電話を暗号化した後はそうではありませ...

1  Androidデバイスでトリムを強制する方法  ( How to force trim on android device ) 
4.3のトリムのサポートを有効にします(最初のJB以降に存在していたことを読み取っています)。私は私が私のデバイスでトリムを強制する方法があるかどうか疑問に思いましたか?私が傍観することができるアプリはそれがそれを発行することができますか? 4.2.2 Je...

3  Windows上でのようなパフォーマンスレベルを維持するために、アンインストール/クリーナーをAndroidで実行する必要がありますか?  ( Do you need to run uninstallers cleaners on android to maintain performance leve ) 
私がWindowsと一緒にAndroid / Linuxの内部働きを慣れていないので、私を許す必要があります。 より良い用語の欠如、メンテナンスの欠如のために、Androidデバイスでパフォーマンスが低下することに興味があります。たくさんのアプリを試すと、それ...

1  このアプリはrootなしで "fstrim"を実行することを約束しますが、それがうまくいかないかどうかわからない  ( This app promises to run fstrim without root but i am not sure if it works ) 
このアプリ働きます。誰かが私を助けてもらえますか?私の電話は新しく、その保証期間中であるので、まだ根付くことはできません。私はこのアプリを試してみましたが、実際に何かをしたかどうかはわかりません。 998877666544330 のPlayStoreの他の...

1  定期的なファイルシステムの一貫性チェックはおそらく良い考えです。現在のAndroidデバイスを実行することはできますか?  ( Periodic filesystem consistency checks are probably a good idea do current andr ) 
あなたにいくつかの一般的な背景情報を与えることによって私を始めましょう。私の実際の質問はこの投稿の一番下にあります。 背景、パート1:ジャーナルリプレイと整合性チェック。 あなたのAndroidデバイスは内部ストレージのext4ファイルシステムを使用し、その...

5  アプリによって作成された未使用のフォルダを削除する方法  ( How to remove unused folders created by apps ) 
新鮮なSDカードから始めたときは、その中にはフォルダはほんの少ししかありませんでした。私がたくさんのアプリを試したときに経時的に、私は私のSDカードのフォルダリストを見ることができました。 アプリがアンインストールされている間に、それはそれがいくつかのファイ...

3  従来のROMから古いアプリケーションフォルダをクリーンアップする方法?  ( How to clean up old application folders from prior rom ) 
私は私のGS2にCM10をインストールしました。私は、これらの古いアプリフォルダをすべてクリーンアップできるようにするためにである「SD Maid」というアプリを認識していましたが、機能していないようです。誰もが私がこれらすべてのフォルダを片付ける方法を知って...

4  FSTRIMが実行されるべきですか?  ( When should fstrim run ) 
これに基づいて cyanogenmodフォーラムスレッド、試してみました実行中のアプリケーションの遅延に対処し、FSTRIMを手動で実行することで、CyanogenModを駆使してCyanogenModを実行しているMy Galaxy Nexusのアプリケーシ...

4  私の取り外し可能なmicroSカードの整合性チェックを実行する必要がありますか?  ( When should i run a consistency check on my removable microsd card ) 
私は取り外し可能なmicroDカードを備えたAndroidデバイスを所有しています。カードはFAT32またはEXFATテクノロジのいずれかを使用します。これらは「ジャーナリング以外のファイルシステム」テクノロジであるため、特定の場合にはカードのデータが破損する...

3  Androidデバイスをデクッタグするにはどうすればいいですか?  ( How do i defrag my android device ) 
オンラインでいくつかのアプリを見ましたが、合法的なようです。私が見たものから、彼らは運転が最適化されている間に何が起こっているのかを示すようです。だから私はGoogle Play Storeのデフラジャーから離れたままにしたいと判断しました。 私の携帯電話のS...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有