Depolama alanını uygula

Android 8, Android'in yerleşik arka plan programı olan storaged için destek ekledi. Android cihazlarda depolama alanı metriklerini toplayıp yayınlar.

  • Günlük disk istatistikleri için storaged, periyodik olarak ayrıştırır /sys/block/mmcblk0/stat (eMMC depolama cihazları) veya /sys/block/sda/stat (eMMC olmayan cihazlar).
  • eMMC ömrü için storaged, /d/mmc0/mmc0:001/ext_csd öğesini ayrıştırır ( kullanılabilir).
  • Uygulama G/Ç'yi suçlamak için storaged, periyodik olarak geçiş yapıyor /proc/uid_io/stats ve ayrıştırılmış verileri (veriler dahil) korur tüm uygulamalardan (yalnızca çalışan uygulamalardan değil) dumpsys şunları yapabilir: uygulama G/Ç kullanımını bir hata raporuna kaydetmek için storaged yöntemini çağırın.

Diskstat (durmuş disk istatistikleri dahil) ve eMMC bilgileri Bir platform giriş hizmetinin günlükleri topladığı Android olay günlüğü.

storaged işlemleri otomatik olarak gerçekleşir ve tamamen Android tarafından yürütülür çerçeve içindedir, dolayısıyla uygulama çalışmanız da gerekmez. Bu sayfa yeni arayüzler dahil olmak üzere storaged ürününün tasarımını ve G/Ç durumunu çekirdekten al.

depolama alanında tasarım

Muhasebe ve izin esnekliği için storaged, çekirdek olarak uygulanır. kullanıcı kimliği başına G/Ç bilgisi döndüren modül (standart proc/PID/io) tıklayın. Her G/Ç isteği için ham G/Ç verileri task_struct çekirdeğinde saklanıp güncellenir. Ayrıca çekirdek, işlemi izlemesi için izleme kodundan kaynaklanan G/Ç kullanımını kaçırmamasını sağlar. son storaged anket etkinliği.

Modül ham verileri okur ve yalnızca çerçeve tarafından bildirimde bulunduğunda işler kullanıcı kimliği ön plan/arka plan anahtarının veya storaged arka plan programının bir rapordur. Bu sırada modül çekirdekten bir dosya düğümünü storaged arka plan programıyla iletişim kurmanın bir yoludur.

storaged, /proc/uid_io/stats arayüzünü sunar ve sistemdeki her UID için G/Ç istatistiklerinin listesi. Biçimi şöyledir:

<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>
  • Okuma/yazma baytı, depolama cihazındaki G/Ç etkinlikleridir.
  • okuma/yazma karakterleri (bayt cinsinden de) okuma/yazma işlemi tarafından istenen verilerdir syscall'lar.

G/Ç durumunu çekirdekten alma

Çekirdekten G/Ç kullanımını döküm için storaged komutunu -u seçeneği.

Komut: storaged -u

Komut çıkış biçimi: name/uid fg_rchar fg_wchar fg_rbytes fg_wbytes bg_rchar bg_wchar bg_rbytes bg_wbytes fg_fsync bg_fsync

Not: Bu çıkış, şunun çıkışına benzer: proc/uid_io/stats. Bunun nedeni, storaged ürününün /proc/uid_io/stats ve kendi verilerini oluşturur.

Örnek çıkış:

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