কর্মক্ষমতা তথ্য সংগ্রহ করুন

ওয়াচডগ নেটিভ সার্ভিস সিস্টেম বুট আপের সময় প্রারম্ভিক-ইনিট থেকে I/O কর্মক্ষমতা ডেটা রেকর্ড করে। নেটিভ সার্ভিস বাগ রিপোর্টে সংগৃহীত কর্মক্ষমতা ডেটা ডাম্প করে। সংগৃহীত ডেটা ডাম্প করতে বা ডিবাগিংয়ের জন্য একটি কাস্টম সংগ্রহ সেশন শুরু করতে বিক্রেতারা ডাম্পসির মাধ্যমে নেটিভ পরিষেবাটি জিজ্ঞাসা করতে পারে।

ডেটা সংগ্রহের ফ্রিকোয়েন্সি

পারফরম্যান্স ডেটা সংগ্রহের ফ্রিকোয়েন্সি বিল্ডের ধরন অনুসারে পরিবর্তিত হয়।

  • Userdebug বা eng বিল্ডে, ওয়াচডগ সিস্টেম বুট আপের সময় প্রতি এক (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%

একটি বাগ রিপোর্ট ক্যাপচার করার সময়, কোনো যুক্তি ছাড়াই একটি ওয়াচডগ ডাম্পসিস কমান্ড চালানো বা একটি কাস্টম সংগ্রহ সেশন বন্ধ করার সময়, ওয়াচডগ নেটিভ পরিষেবা উপরের রিপোর্টের মতো একটি কর্মক্ষমতা ডেটা রিপোর্ট ডাম্প করে।

রিপোর্টে সিস্টেম বুট আপের সময় এবং রিপোর্ট তৈরির আগে শেষ N মিনিটের তথ্য রয়েছে।

  • Boot-time collection information । বুট-টাইম কর্মক্ষমতা ডেটা সংগ্রহ সেশন সম্পর্কে তথ্য প্রদান করে।
  • Periodic collection information । পর্যায়ক্রমিক কর্মক্ষমতা সংগ্রহ সেশন সম্পর্কে তথ্য প্রদান করে যা বুট-সম্পূর্ণ হওয়ার পরে শুরু হয়।
  • Boot-time I/O performance report । সিস্টেম বুট-আপের সময় সংগ্রহ করা কর্মক্ষমতা ডেটা ধারণ করে। সিস্টেম শাটডাউন না হওয়া পর্যন্ত এই ডেটা মেমরিতে স্থায়ী থাকে, তাই সমস্ত রিপোর্টে ডেটা ডাম্প করা হয়।
  • Last N minutes I/O performance report । প্রতিবেদন তৈরির আগে শেষ N মিনিটের সময় (পর্যায়ক্রমিক সংগ্রহের সেশন দ্বারা) সংগ্রহ করা কর্মক্ষমতা ডেটা রয়েছে।
  • 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 অপেক্ষার কাজ সহ শীর্ষ N প্যাকেজ।
    • প্রতিটি শীর্ষ-স্তরের লাইনে ব্যবহারকারী আইডি, প্যাকেজের নাম, সংখ্যা এবং প্যাকেজের মালিকানাধীন কাজের শতাংশ রয়েছে যা I/O-এর জন্য অপেক্ষা করছে।
    • অভ্যন্তরীণ-স্তরের লাইনগুলিতে প্যাকেজের মালিকানাধীন শীর্ষ প্রক্রিয়াগুলির জন্য I/O অপেক্ষার তথ্য রয়েছে।
  • Top N major page faults । শেষ সংগ্রহের পর থেকে সবচেয়ে বড় পৃষ্ঠার ত্রুটি সহ শীর্ষ N প্যাকেজ।
    • প্রতিটি শীর্ষ-স্তরের লাইনে ব্যবহারকারীর আইডি, প্যাকেজের নাম, সংখ্যা এবং প্যাকেজের জন্য দায়ী প্রধান পৃষ্ঠার ত্রুটিগুলির শতাংশ রয়েছে।
    • প্যাকেজের মালিকানাধীন শীর্ষ প্রক্রিয়াগুলির জন্য অভ্যন্তরীণ-স্তরের লাইনগুলিতে প্রধান পৃষ্ঠার ত্রুটির তথ্য রয়েছে।
  • Number of major page faults since last collection
  • Percentage of change in major page faults since last collection