logo

Which Android app is killing the flash storage?


What?

There are two types of memory in Android devices like in PCs. RAM is fast but volatile memory. While the hard drives, SSDs, SD cards, eMMC and UFS are all examples of persistent storage which has slower read and write operations as compared to RAM. Apps can temporarily hold small amount of data in RAM as long as they are running and the device is not switched off. But to save large amount of data permanently, it has to be written to storage in the form of files.

Why?

Modern PCs and mobile devices usually have flash storage which is faster than the traditional magnetic storage (hard drives) but also has shorter life span. Every write operation (or to be more specific, Erase / Program cycle) wears out the cells of underlying flash storage. So it's a good idea to find out if a misbehaving app (or other process) is unnecessarily killing the storage.

Related: How to know the flash storage wear level information of an Android phone?

How?

We can use Linux taskstats or /proc/[pid]/io interface to get the I/O usage of running processes. Using WhatsRunning you can get the complete list of processes and sort the list by "I/O" to find the apps / processes with high I/O usage easily:

Android app I/O usage

The screenshot shows the amount of data which this app has:

  1. Read from the storage
  2. Written to the storage

To include the I/O of dead child processes and threads, enable "Get total I/O of process" in "Advanced Settings".

To track the I/O usage of an app or process which is frequently killed and restarted, the app offers Process Watcher feature.


Note:

Comments