प्रदर्शन डेटा एकत्र करें

वॉचडॉग मूल सेवा सिस्टम बूट अप के दौरान शुरुआती-इनिट से I/O प्रदर्शन डेटा रिकॉर्ड करती है। मूल सेवा एकत्रित प्रदर्शन डेटा को बग रिपोर्ट में डंप कर देती है। विक्रेता एकत्रित डेटा को डंप करने या डिबगिंग के लिए एक कस्टम संग्रह सत्र शुरू करने के लिए डंपसिस के माध्यम से मूल सेवा से पूछताछ कर सकते हैं।

डेटा संग्रह आवृत्ति

प्रदर्शन डेटा संग्रह की आवृत्ति बिल्ड प्रकार के अनुसार भिन्न होती है।

  • यूजरडीबग या ईएनजी बिल्ड पर, वॉचडॉग सिस्टम बूट अप के दौरान हर एक (1) सेकंड में एक बार और बूट पूरा होने के बाद हर एक (1) मिनट में एक बार प्रदर्शन डेटा एकत्र करता है।
  • उपयोगकर्ता बिल्ड पर, वॉचडॉग सिस्टम बूट अप के दौरान हर 20 सेकंड में एक बार और बूट पूरा होने के बाद हर दो (2) मिनट में एक बार प्रदर्शन डेटा एकत्र करता है।

प्रदर्शन डेटा डंप करें

जब एक बगरेपोर्ट कैप्चर किया जाता है, तो वॉचडॉग मूल सेवा बग रिपोर्ट में एकत्रित प्रदर्शन डेटा को डंप कर देती है। एकत्रित प्रदर्शन डेटा को डंप करने के लिए विक्रेता नीचे दिए गए डंपसिस कमांड के माध्यम से मूल सेवा से पूछताछ कर सकते हैं। रिपोर्ट के बारे में विवरण के लिए प्रदर्शन डेटा रिपोर्ट को समझना अनुभाग देखें।

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

डिबगिंग के लिए प्रदर्शन डेटा एकत्र करें

विक्रेता डिबगिंग उद्देश्यों के लिए प्रदर्शन डेटा को कस्टम रूप से एकत्रित करने के लिए वॉचडॉग मूल सेवा का उपयोग कर सकते हैं। उदाहरण के लिए, किसी ऐप या सेवा के I/O उपयोग को समझने के लिए, विक्रेता एक कस्टम प्रदर्शन डेटा संग्रह कर सकते हैं जो पैकेजों की एक विशिष्ट सूची या संपूर्ण सिस्टम के I/O उपयोग को प्रोफाइल करता है।

कस्टम संग्रह सत्र प्रारंभ करें

कस्टम प्रदर्शन डेटा संग्रह सत्र शुरू करने का आदेश नीचे दिखाया गया है:

$ adb shell dumpsys android.automotive.watchdog.ICarWatchdog/default --start_perf [--interval <seconds>] [--max_duration <seconds>] [--filter_packages <package_name>,<package_name>,...]
  • --start_perf . एक कस्टम प्रदर्शन डेटा संग्रह सत्र प्रारंभ करता है।
  • --interval <seconds> . प्रोफ़ाइलिंग अंतराल निर्दिष्ट करता है. डिफ़ॉल्ट रूप से, अंतराल 30 सेकंड है.
  • --max_duration <seconds> . कस्टम प्रदर्शन डेटा संग्रह सत्र की अधिकतम अवधि निर्दिष्ट करता है। यदि सत्र को मैन्युअल रूप से नहीं रोका जाता है, तो सत्र रोक दिया जाता है और इस अवधि के बाद एकत्रित डेटा को छोड़ दिया जाता है। डिफ़ॉल्ट रूप से, अधिकतम अवधि 30 मिनट है.
  • --filter_packages <package_name>,<package_name>,... . प्रोफ़ाइल में पैकेज नामों की अल्पविराम से अलग की गई सूची निर्दिष्ट करता है। प्रदान किए जाने पर, प्रदर्शन डेटा संग्रह इन पैकेजों तक सीमित है। अन्यथा, सिस्टम में सभी पैकेजों के लिए प्रदर्शन डेटा संग्रह किया जाता है।

उदाहरण के लिए, नीचे दिया गया आदेश 10 seconds के प्रोफाइलिंग अंतराल, 1 hour की अधिकतम संग्रह अवधि के साथ एक कस्टम प्रदर्शन डेटा संग्रह शुरू करता है, और प्रोफाइलिंग को com.google.android.car.kitchensink और com.google.android.apps.maps तक सीमित करता है। com.google.android.apps.maps पैकेज।

$ 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

कस्टम संग्रह सत्र रोकें और डंप करें

किसी ऐप या रुचि की सेवा के I/O उपयोग को रिकॉर्ड करने के बाद, विक्रेताओं को एकत्रित डेटा को डंप करने के लिए कस्टम प्रदर्शन डेटा संग्रह सत्र को रोकना चाहिए।

निम्न आदेश कस्टम प्रदर्शन डेटा संग्रह को रोकता है और एकत्रित डेटा को /tmp/carwatchdog_dump.txt पर डंप कर देता है:

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

डंपसिस मदद करते हैं

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

प्रदर्शन डेटा रिपोर्ट को समझें

नीचे एक नमूना प्रदर्शन डेटा रिपोर्ट दिखाई गई है:

$ 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%

बगरेपोर्ट कैप्चर करते समय, बिना किसी तर्क के वॉचडॉग डंपसिस कमांड चलाने या कस्टम संग्रह सत्र को रोकने पर, वॉचडॉग मूल सेवा उपरोक्त रिपोर्ट के समान एक प्रदर्शन डेटा रिपोर्ट डंप करती है।

रिपोर्ट में सिस्टम बूट अप के दौरान और रिपोर्ट जेनरेशन से पहले अंतिम एन मिनट में एकत्र किया गया डेटा शामिल है।

  • Boot-time collection information । बूट-टाइम प्रदर्शन डेटा संग्रह सत्र के बारे में जानकारी प्रदान करता है।
  • Periodic collection information . बूट-पूर्ण होने के बाद शुरू होने वाले आवधिक प्रदर्शन संग्रह सत्र के बारे में जानकारी प्रदान करता है।
  • Boot-time I/O performance report । इसमें सिस्टम बूट-अप के दौरान एकत्र किया गया प्रदर्शन डेटा शामिल है। सिस्टम बंद होने तक यह डेटा लगातार मेमोरी में रहता है, इसलिए डेटा को सभी रिपोर्टों पर डंप कर दिया जाता है।
  • Last N minutes I/O performance report । इसमें रिपोर्ट निर्माण से पहले अंतिम एन मिनट के दौरान एकत्र किया गया प्रदर्शन डेटा (आवधिक संग्रह सत्र द्वारा) शामिल है।
  • Collection duration . प्रदर्शन डेटा संग्रह की कुल अवधि.
  • Number of collections . एक रिपोर्ट में रिपोर्ट किए गए संग्रहों की कुल संख्या।

रिपोर्ट में बताए गए प्रत्येक संग्रह में नीचे दिए गए सभी या कुछ अनुभाग शामिल हो सकते हैं। प्रत्येक संग्रह में रिपोर्ट किए गए आँकड़े पिछले संग्रह के बाद से डेल्टा हैं, उन आँकड़ों को छोड़कर जो तात्कालिक हैं (उदाहरण के लिए, सिस्टम बूट-अप के बाद से एकत्र नहीं किए गए)।

  • CPU I/O wait time/percent । अंतिम संग्रह के बाद से I/O संचालन के कारण संदर्भ स्विचिंग या प्रतीक्षा पर खर्च किए गए कुल CPU समय और कुल CPU समय का प्रतिशत।
  • Number of I/O blocked processes/percent । पिछले संग्रह के बाद से I/O की प्रतीक्षा में अवरुद्ध प्रक्रियाओं की कुल संख्या और I/O की प्रतीक्षा में अवरुद्ध प्रक्रियाओं का प्रतिशत।
  • Top N Reads । शीर्ष एन पैकेज जो पिछले संग्रह के बाद से डिस्क से अधिकांश डेटा पढ़ते हैं।
    • प्रत्येक पंक्ति में उपयोगकर्ता आईडी, पैकेज का नाम, अग्रभूमि मोड बनाम पृष्ठभूमि मोड में पढ़े गए बाइट्स की कुल संख्या, सिस्टम में सभी अग्रभूमि मोड बनाम पृष्ठभूमि मोड में पढ़े गए बाइट्स का प्रतिशत, अग्रभूमि मोड बनाम पृष्ठभूमि मोड में किए गए fsync कॉल की कुल संख्या शामिल है। और सिस्टम में किए गए सभी अग्रभूमि मोड बनाम पृष्ठभूमि मोड fsync कॉल में fsync कॉल का प्रतिशत।
  • Top N Writes । शीर्ष एन पैकेज जिन्होंने पिछले संग्रह के बाद से डिस्क पर सबसे अधिक डेटा लिखा है।
    • प्रत्येक पंक्ति में Top N Reads के समान फ़ील्ड शामिल हैं।
  • Top NI/O waiting UIDs । सर्वाधिक I/O प्रतीक्षा कार्यों वाले शीर्ष एन पैकेज।
    • प्रत्येक शीर्ष-स्तरीय पंक्ति में उपयोगकर्ता आईडी, पैकेज नाम, संख्या और I/O की प्रतीक्षा कर रहे पैकेज के स्वामित्व वाले कार्यों का प्रतिशत शामिल है।
    • आंतरिक स्तर की पंक्तियों में पैकेज के स्वामित्व वाली शीर्ष प्रक्रियाओं के लिए I/O प्रतीक्षा जानकारी होती है।
  • Top N major page faults । पिछले संग्रह के बाद से सबसे प्रमुख पृष्ठ दोषों वाले शीर्ष एन पैकेज।
    • प्रत्येक शीर्ष-स्तरीय पंक्ति में उपयोगकर्ता आईडी, पैकेज नाम, संख्या और पैकेज से संबंधित प्रमुख पृष्ठ दोषों का प्रतिशत शामिल होता है।
    • आंतरिक-स्तरीय पंक्तियों में पैकेज के स्वामित्व वाली शीर्ष प्रक्रियाओं के लिए प्रमुख पृष्ठ दोषों की जानकारी होती है।
  • Number of major page faults since last collection
  • Percentage of change in major page faults since last collection