Android 8 unterstützt jetzt den nativen Android-Daemon storaged
,
erfasst und veröffentlicht Speichermesswerte auf Android-Geräten.
- Für tägliche Laufwerkstatistiken parst
storaged
regelmäßig/sys/block/mmcblk0/stat
(eMMC-Speichergeräte) oder/sys/block/sda/stat
(Nicht-eMMC-Geräte). - Für die eMMC-Lebensdauer parst
storaged
/d/mmc0/mmc0:001/ext_csd
(wenn verfügbar). - Bei E/A-Blasen für die App durchläuft
storaged
regelmäßig/proc/uid_io/stats
und verwaltet geparste Daten, einschließlich Daten von allen Apps (nicht nur aus ausgeführten Apps).dumpsys
kann Rufestoraged
auf, um die Nutzung der App-E/A in einem Fehlerbericht zu protokollieren.
Diskstat (einschließlich angehaltener diskstats) und eMMC-Informationen werden im Log Android-Ereignisprotokoll, bei dem ein Plattform-Check-in-Dienst die Logs erfasst.
storaged
-Vorgänge werden automatisch ausgeführt und vollständig vom Android-Team abgewickelt
Framework, sodass Sie keine Implementierung vornehmen müssen. Diese Seite
das Design von storaged
(einschließlich neuer Oberflächen) und die Verwendung
E/A-Status vom Kernel abrufen.
gespeichertes Design
Für die Flexibilität von Buchhaltung und Berechtigungen ist storaged
als Kernel implementiert
-Modul, das per UID-E/A-Informationen zurückgibt (anstatt
proc/PID/io
). Die E/A-Rohdaten für jede E/A-Anfrage werden weiterhin
die im Kernel task_struct
gespeichert und aktualisiert werden,
nachzuverfolgen, wann ein Prozess beendet wird, damit er keine E/A-Nutzung
letztes storaged
Umfrageereignis.
Das Modul liest Rohdaten und verarbeitet sie nur, wenn das Framework sie benachrichtigt.
eines UID-Vorder-/Hintergrund-Switch oder wenn der storaged
-Daemon eine
Bericht. Zu diesem Zeitpunkt exportiert das Modul
einen Dateiknoten aus dem Kernel
Kommunikation mit dem Framework und dem storaged
-Daemon.
storaged
führt die /proc/uid_io/stats
-Schnittstelle ein, die Folgendes zurückgibt:
eine Liste von E/A-Statistiken für jede UID im System. Das Format ist:
<uid>: <foreground read bytes> <foreground write bytes> <foreground read chars> <foreground write chars> <background read bytes> <background write bytes> <background read chars> <background write chars>
- Lese-/Schreibbyte sind E/A-Ereignisse von einem Speichergerät.
- Lese-/Schreibzeichen (auch in Byte) sind Daten, die von Lese-/Schreibvorgängen angefordert werden. Systemaufrufe.
E/A-Status aus dem Kernel abrufen
Um die E/A-Nutzung aus dem Kernel zu sichern, verwenden Sie den Befehl storaged
mit
die Option -u
.
Befehl: storaged -u
Ausgabeformat des Befehls: name/uid fg_rchar fg_wchar fg_rbytes fg_wbytes
bg_rchar bg_wchar bg_rbytes bg_wbytes fg_fsync bg_fsync
Hinweis:Diese Ausgabe ähnelt der Ausgabe für
proc/uid_io/stats
Das liegt daran, dass storaged
Daten aus
/proc/uid_io/stats
und generiert eigene Daten.
Beispielausgabe:
com.google.android.backuptransport 2269 60 0 0 1719845663 143912573 149065728 184180736 com.android.vending 2170 60 0 0 219904796 38693092 174436352 18944000