Performans verilerini toplayın

Watchdog yerel hizmeti, sistemin başlatılması sırasında erken başlatmadan bu yana G/Ç performans verilerini kaydeder. Yerel hizmet, toplanan performans verilerini hata raporuna döker. Satıcılar, toplanan verileri boşaltmak veya hata ayıklama için özel bir toplama oturumu başlatmak için yerel hizmeti dumpsys aracılığıyla sorgulayabilir.

Veri toplama sıklığı

Performans verilerinin toplanma sıklığı yapı türüne göre değişir.

  • Kullanıcı hata ayıklama veya eng derlemelerinde Watchdog, sistem önyüklemesi sırasında her bir (1) saniyede bir ve önyükleme tamamlandıktan sonra her bir (1) dakikada bir performans verilerini toplar.
  • Kullanıcı yapılarında Watchdog, sistem önyüklemesi sırasında her 20 saniyede bir ve önyükleme tamamlandıktan sonra her iki (2) dakikada bir performans verilerini toplar.

Performans verilerini dökümü

Bir hata raporu yakalandığında Watchdog yerel hizmeti, toplanan performans verilerini hata raporuna döker. Satıcılar, toplanan performans verilerini boşaltmak için aşağıdaki dumpsys komutu aracılığıyla yerel hizmeti sorgulayabilir. Raporla ilgili ayrıntılar için Performans verileri raporunu anlama bölümüne bakın.

$ adb shell dumpsys android.automotive.watchdog.ICarWatchdog/default > /tmp/carwatchdog_dump.txt

Hata ayıklama için performans verilerini toplayın

Satıcılar, hata ayıklama amacıyla performans verilerini özel olarak toplamak için Watchdog yerel hizmetini kullanabilir. Örneğin, bir uygulamanın veya hizmetin G/Ç kullanımını anlamak için satıcılar, belirli bir paket listesinin veya tüm sistemin G/Ç kullanımının profilini çıkaran özel bir performans verisi toplama işlemi gerçekleştirebilir.

Özel koleksiyon oturumunu başlat

Aşağıda özel bir performans veri toplama oturumu başlatma komutu gösterilmektedir:

$ adb shell dumpsys android.automotive.watchdog.ICarWatchdog/default --start_perf [--interval <seconds>] [--max_duration <seconds>] [--filter_packages <package_name>,<package_name>,...]
  • --start_perf . Özel bir performans veri toplama oturumu başlatır.
  • --interval <seconds> . Profil oluşturma aralığını belirtir. Varsayılan olarak aralık 30 saniyedir.
  • --max_duration <seconds> . Özel performans veri toplama oturumunun maksimum süresini belirtir. Oturum manuel olarak durdurulmazsa bu süre sonunda oturum durdurulur ve toplanan veriler atılır. Varsayılan olarak maksimum süre 30 dakikadır.
  • --filter_packages <package_name>,<package_name>,... . Profile eklenecek paket adlarının virgülle ayrılmış bir listesini belirtir. Sağlandığında performans verilerinin toplanması bu paketlerle sınırlıdır. Aksi takdirde sistemdeki tüm paketler için performans verisi toplama işlemi yapılır.

Örneğin, aşağıdaki komut, profil oluşturma aralığı 10 seconds , maksimum toplama süresi 1 hour olan özel bir performans verisi toplama işlemini başlatır ve profil oluşturmayı com.google.android.car.kitchensink ve com.google.android.apps.maps ile sınırlandırır. com.google.android.apps.maps paketleri.

$ adb shell dumpsys android.automotive.watchdog.ICarWatchdog/default --start_perf --interval 10 --max_duration 3600 --filter_packages com.google.android.car.kitchensink,com.google.android.apps.maps

Özel koleksiyon oturumunu durdurun ve boşaltın

İlgili bir uygulamanın veya hizmetin G/Ç kullanımını kaydettikten sonra satıcılar, toplanan verileri boşaltmak için özel performans veri toplama oturumunu durdurmalıdır.

Aşağıdaki komut, özel performans verilerinin toplanmasını durdurur ve toplanan verileri /tmp/carwatchdog_dump.txt dosyasına aktarır:

$ adb shell dumpsys android.automotive.watchdog.ICarWatchdog/default --stop-perf > /tmp/carwatchdog_custom_dump.txt

Dumpsys yardımı

$ adb shell dumpsys android.automotive.watchdog.ICarWatchdog/default --help

Performans verileri raporunu anlama

Aşağıda örnek bir performans veri raporu gösterilmektedir:

$ adb shell dumpsys android.automotive.watchdog.ICarWatchdog/default

------------------------------
WatchdogPerfService report:
------------------------------
Boot-time collection information:
==========================
Event interval: 1 second

Periodic collection information:
=========================
Event interval: 60 seconds
--------------------------------
Boot-time I/O performance report:
============================
Collection duration: 1637609138 seconds
Number of collections: 12

Collection 0: <Fri Jan  7 19:53:53 2022 GMT>
===================================
CPU I/O wait time/percent: 18 / 0.63%
Number of I/O blocked processes/percent: 0 / 0.00%

Top N Reads:
-------------
Android User ID, Package Name, Foreground Bytes, Foreground Bytes %, Foreground Fsync, Foreground Fsync %, Background Bytes, Background Bytes %, Background Fsync, Background Fsync %
0, root, 56123392, 81.95%, 1, 100.00%, 0, 0.00%, 0, 0.00%
0, system, 12333056, 18.01%, 0, 0.00%, 0, 0.00%, 0, 0.00%

Top N Writes:
-------------
Android User ID, Package Name, Foreground Bytes, Foreground Bytes %, Foreground Fsync, Foreground Fsync %, Background Bytes, Background Bytes %, Background Fsync, Background Fsync %
0, root, 53248, 100.00%, 1, 100.00%, 0, 0.00%, 0, 0.00%

Top N I/O waiting UIDs:
-----------------------
Android User ID, Package Name, Number of owned tasks waiting for I/O, Percentage of owned tasks waiting for I/O
        Command, Number of I/O waiting tasks, Percentage of UID's tasks waiting for I/O
0, root, 2, 0.59%
        kworker/7:2+events, 1, 50.00%
        kworker/4:2+events, 1, 50.00%
0, system, 2, 7.14%
        ais_server, 2, 100.00%

Top N major page faults:
------------------------
Android User ID, Package Name, Number of major page faults, Percentage of total major page faults
        Command, Number of major page faults, Percentage of UID's major page faults
0, system, 48, 53.33%
        ais_server, 13, 27.08%
        audiod, 10, 20.83%
0, root, 41, 45.56%
        init, 39, 95.12%
        ueventd, 1, 2.44%
0, media, 1, 1.11%
        init.qti.media., 1, 100.00%
Number of major page faults since last collection: 90
Percentage of change in major page faults since last collection: 0.00%

Collection 1: <Fri Jan  7 19:53:54 2022 GMT>
===================================
 … Collection data …

Collection 2: <Fri Jan  7 19:53:55 2022 GMT>
===================================
 … Collection data …
 … Repeated collection data until boot-complete …

-----------------------------------------
Last N minutes I/O performance report:
================================
Collection duration: 10797 seconds
Number of collections: 181

Collection 0: <Tue Jan 11 19:43:05 2022 GMT>
====================================
CPU I/O wait time/percent: 18 / 0.04%
Number of I/O blocked processes/percent: 0 / 0.00%

Top N Writes:
-------------
Android User ID, Package Name, Foreground Bytes, Foreground Bytes %, Foreground Fsync, Foreground Fsync %, Background Bytes, Background Bytes %, Background Fsync, Background Fsync %
0, system, 33697792, 92.41%, 0, 0.00%, 0, 0.00%, 0, 0.00%
0, gps, 2420736, 6.64%, 0, 0.00%, 0, 0.00%, 0, 0.00%

Top N I/O waiting UIDs:
-----------------------
Android User ID, Package Name, Number of owned tasks waiting for I/O, Percentage of owned tasks waiting for I/O
        Command, Number of I/O waiting tasks, Percentage of UID's tasks waiting for I/O
0, root, 1, 0.19%
        crtc_commit:244, 1, 100.00%

Bir hata raporu yakalarken, Watchdog dumpsys komutunu herhangi bir argüman olmadan çalıştırırken veya özel bir toplama oturumunu durdururken, Watchdog yerel hizmeti yukarıdaki rapora benzer bir performans veri raporu döker.

Rapor, sistemin başlatılması sırasında ve rapor oluşturulmadan önceki son N dakika boyunca toplanan verileri içerir.

  • Boot-time collection information . Önyükleme zamanı performansı veri toplama oturumu hakkında bilgi sağlar.
  • Periodic collection information . Önyükleme tamamlandıktan sonra başlayan periyodik performans toplama oturumu hakkında bilgi sağlar.
  • Boot-time I/O performance report . Sistem açılışı sırasında toplanan performans verilerini içerir. Bu veriler sistem kapatılana kadar bellekte kalıcı olduğundan veriler tüm raporlara aktarılır.
  • Last N minutes I/O performance report . Rapor oluşturulmadan önceki son N dakika boyunca (periyodik toplama oturumu tarafından) toplanan performans verilerini içerir.
  • Collection duration . Performans verilerinin toplanmasının toplam süresi.
  • Number of collections . Tek bir raporda raporlanan toplam koleksiyon sayısı.

Raporda rapor edilen her koleksiyon aşağıdaki bölümlerin tamamını veya bir kısmını içerebilir. Her koleksiyonda rapor edilen istatistikler, anlık istatistikler (örneğin, sistem başlatıldığından bu yana toplanmayanlar) hariç, son koleksiyondan bu yana oluşan deltadır.

  • CPU I/O wait time/percent . Mutlak CPU süresi ve son toplamadan bu yana G/Ç işlemleri nedeniyle bağlam değiştirme veya bekleme için harcanan toplam CPU süresinin yüzdesi.
  • Number of I/O blocked processes/percent . Son toplamadan bu yana G/Ç beklerken engellenen işlemlerin toplam sayısı ve G/Ç beklerken engellenen işlemlerin yüzdesi.
  • Top N Reads . Son koleksiyondan bu yana diskten çoğu veriyi okuyan ilk N paket.
    • Her satırda kullanıcı kimliği, paket adı, ön plan modunda ve arka plan modunda okunan toplam bayt sayısı, sistemdeki tüm ön plan modunda ve arka plan modunda okunan baytların yüzdesi, ön plan modunda ve arka plan modunda yapılan fsync çağrılarının toplam sayısı, ve sistemde yapılan tüm ön plan modu ve arka plan modu fsync çağrıları arasındaki fsync çağrılarının yüzdesi.
  • Top N Writes . Son koleksiyondan bu yana diske en çok veri yazan ilk N paket.
    • Her satırda Top N Reads benzer alanlar bulunur.
  • Top NI/O waiting UIDs . En fazla G/Ç bekleme görevine sahip ilk N paketler.
    • Her üst düzey satır, kullanıcı kimliğini, paket adlarını, G/Ç'yi bekleyen paketin sahip olduğu görevlerin sayısını ve yüzdesini içerir.
    • İç düzey satırlar, paketin sahip olduğu üst düzey işlemler için G/Ç bekleme bilgilerini içerir.
  • Top N major page faults . Son koleksiyondan bu yana en büyük sayfa hatalarına sahip ilk N paket.
    • Her üst düzey satır, pakete atfedilen kullanıcı kimliğini, paket adlarını, sayısını ve ana sayfa hatalarının yüzdesini içerir.
    • İç düzey satırlar, paketin sahip olduğu üst düzey işlemlere ilişkin ana sayfa hataları bilgilerini içerir.
  • Number of major page faults since last collection .
  • Percentage of change in major page faults since last collection .