Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Implementando almacenado

Android O agrega soporte para storaged , un demonio nativo de Android que recopila y publica métricas de almacenamiento en dispositivos Android.

  • Para diskstats diarias, storaged periódicamente análisis sintácticos /sys/block/mmcblk0/stat (dispositivos de almacenamiento eMMC) o /sys/block/sda/stat (dispositivos no eMMC).
  • Para eMMC vida, storaged análisis sintácticos /d/mmc0/mmc0:001/ext_csd (si está disponible).
  • Para culpar a las E / S de las aplicaciones, storaged periódicamente atraviesa /proc/uid_io/stats y mantiene los datos analizados, que incluyen datos de todas las aplicaciones (no solo las aplicaciones en ejecución). dumpsys puede llamar storaged para registrar el uso de las aplicaciones de E / S en un informe de error.

Diskstat (incluidas las estadísticas de disco estancadas) y la información de eMMC se registra en el registro de eventos de Android, donde un servicio de registro de la plataforma recopila los registros.

storaged operaciones storaged ocurren automáticamente y son manejadas completamente por el marco de Android, por lo que no necesita realizar ningún trabajo de implementación. Esta página describe el diseño de storaged (incluidas las nuevas interfaces) y cómo usarlo para obtener el estado de E / S del kernel.

diseño almacenado

Para flexibilidad de contabilidad y permisos, storaged se implementa como un módulo del kernel que devuelve información de E / S per-uid (en lugar de utilizar proc/PID/io estándar). Los datos de E / S sin procesar para cada solicitud de E / S continúan task_struct y actualizándose en el kernel task_struct , y el kernel realiza un seguimiento de cuándo sale un proceso para no perder el uso de E / S que se produce desde el último evento de sondeo storaged .

El módulo lee datos sin procesar y los procesa solo cuando el marco le notifica de un cambio de primer plano / fondo de uid o cuando el demonio storaged solicita un informe. En ese momento, el módulo exporta un nodo de archivo del kernel para la comunicación con el marco y el demonio storaged .

storaged presenta la interfaz /proc/uid_io/stats , que devuelve una lista de estadísticas de E / S para cada UID del sistema. El formato es:

<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>
  • Los bytes de lectura / escritura son eventos de E / S de un dispositivo de almacenamiento.
  • Los caracteres de lectura / escritura (también en bytes) son datos solicitados por llamadas al sistema de lectura / escritura.

Obtener el estado de E / S del kernel

Para volcar el uso de E / S del kernel, use el comando storaged con la opción -u .

Comando: storaged -u

Formato de salida del comando: name/uid fg_rchar fg_wchar fg_rbytes fg_wbytes bg_rchar bg_wchar bg_rbytes bg_wbytes fg_fsync bg_fsync

Nota: Esta salida es similar a la salida de proc/uid_io/stats . Esto se debe a que storaged procesa datos de /proc/uid_io/stats y genera sus propios datos.

Salida de ejemplo:

com.google.android.backuptransport  2269  60  0  0  1719845663  143912573  149065728  184180736
com.android.vending  2170  60  0  0  219904796  38693092  174436352  18944000