Android 8 已新增對 storaged
的支援,這個 Android 原生 Daemon
收集與發布 Android 裝置上的儲存空間指標
- 針對每日磁碟 stats,
storaged
定期剖析/sys/block/mmcblk0/stat
(eMMC 儲存裝置) 或/sys/block/sda/stat
(非 eMMC 裝置)。 - 如果是 eMMC 生命週期,
storaged
會剖析/d/mmc0/mmc0:001/ext_csd
(如果 可用)。 - 針對應用程式 I/O 運算,
storaged
會定期週遊/proc/uid_io/stats
並維護已剖析的資料,包括資料 (不只是執行中的應用程式)。「dumpsys
」可以 呼叫storaged
,將應用程式的 I/O 用量記錄在錯誤報告中。
Diskstat (包括 stalleddiskstats) 和 eMMC 資訊會記錄在 Android 事件記錄,平台登記服務會收集這些記錄。
storaged
作業會自動執行,並完全由 Android 處理
因此您不必進行任何導入作業這個頁面
說明瞭 storaged
的設計 (包括新介面),以及如何使用此介面
從核心取得 I/O 狀態
儲存體設計
為保障會計和權限的靈活彈性,storaged
是以核心的形式實作
這個模組會傳回個別 I/O 資訊 (而不是使用標準
proc/PID/io
)。系統將繼續提供每個 I/O 要求的原始 I/O 資料
且核心會保留在核心 task_struct
中,而核心會保留
追蹤程序結束的時間,這樣就不會遺漏
上一次storaged
輪詢事件。
模組會讀取原始資料,並只在架構收到通知時處理原始資料
uid 前景/背景切換,或 storaged
Daemon 要求傳送
報表。屆時,模組會從核心匯出檔案節點
與架構和 storaged
Daemon 通訊
storaged
導入 /proc/uid_io/stats
介面,
系統中每個 UID 的 I/O 統計資料清單。格式如下:
<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>
- 讀取/寫入位元組是儲存裝置中的 I/O 事件。
- 讀取/寫入字元 (也以位元組為單位) 是讀取/寫入要求的資料 syscalls
從核心取得 I/O 狀態
如要從核心轉儲 I/O 用量,請使用 storaged
指令,並加上
-u
選項。
指令:storaged -u
指令輸出格式:name/uid fg_rchar fg_wchar fg_rbytes fg_wbytes
bg_rchar bg_wchar bg_rbytes bg_wbytes fg_fsync bg_fsync
注意:輸出的輸出內容類似
proc/uid_io/stats
。這是因為「storaged
」會處理下列來源的資料:
/proc/uid_io/stats
並產生自己的資料。
輸出內容範例:
com.google.android.backuptransport 2269 60 0 0 1719845663 143912573 149065728 184180736 com.android.vending 2170 60 0 0 219904796 38693092 174436352 18944000