स्टोरेज लागू करें

Android 8 पर, storaged का इस्तेमाल किया जा सकता है. यह Android का एक नेटिव डीमन है Android डिवाइसों पर स्टोरेज से जुड़ी मेट्रिक इकट्ठा करता है और उन्हें पब्लिश करता है.

  • हर दिन के डिस्कस्टेट के लिए, storaged समय-समय पर पार्स करता है /sys/block/mmcblk0/stat (eMMC स्टोरेज डिवाइस) या /sys/block/sda/stat (नॉन-ईएमएमसी डिवाइस).
  • eMMC लाइफ़टाइम के लिए storaged, /d/mmc0/mmc0:001/ext_csd को पार्स करता है (अगर उपलब्ध है).
  • ऐप्लिकेशन I/O के लिए आरोप लगाने के लिए, storaged समय-समय पर रुक जाता है /proc/uid_io/stats और पार्स किया गया डेटा बनाए रखता है, जिसमें डेटा शामिल है से मिलने वाली सूचनाएं देखी जा सकती हैं (सिर्फ़ चल रहे ऐप्लिकेशन ही नहीं). dumpsys यह कर सकते हैं गड़बड़ी की रिपोर्ट में, ऐप्लिकेशन I/O के इस्तेमाल की जानकारी लॉग करने के लिए storaged को कॉल करें.

डिस्कस्टेट (ठहरे गए डिस्कस्टेट सहित) और eMMC जानकारी इस पर लॉग की जाती है: Android इवेंट का लॉग, जहां प्लैटफ़ॉर्म की जांच करने वाली सेवा से लॉग इकट्ठा करती है.

storaged कार्रवाइयां अपने-आप होती हैं और इन्हें पूरी तरह से Android मैनेज करता है आपको कुछ भी करने की ज़रूरत नहीं है. यह पेज storaged के डिज़ाइन के बारे में बताता है. इसमें नए इंटरफ़ेस भी शामिल हैं. साथ ही, यह भी बताया गया है कि इन कामों के लिए इसे कैसे इस्तेमाल किया जा सकता है कर्नेल से I/O स्थिति पाएं.

स्टोरेज वाला डिज़ाइन

अकाउंटिंग और अनुमतियों की सुविधा के लिए, storaged को कर्नेल के तौर पर लागू किया गया है वह मॉड्यूल जो प्रति-uid I/O जानकारी देता है (मानक का उपयोग करने के बजाय proc/PID/io). हर I/O अनुरोध का रॉ I/O डेटा इतना बना रहेगा कर्नेल task_struct में सेव और अपडेट किया जाता है, और कर्नेल यह ट्रैक कर सकता है कि कोई प्रोसेस कब बंद होती है, ताकि वह पिछला storaged पोलिंग इवेंट.

मॉड्यूल रॉ डेटा को पढ़ता है और उसे सिर्फ़ तब प्रोसेस करता है, जब फ़्रेमवर्क उसे सूचना देता है यूआईडी के फ़ोरग्राउंड/बैकग्राउंड स्विच का इस्तेमाल किया जा सकता है या जब storaged डीमन रिपोर्ट. इस समय, मॉड्यूल कर्नेल से एक फ़ाइल नोड को फ़्रेमवर्क और storaged डीमन की मदद से बातचीत करना.

storaged, /proc/uid_io/stats इंटरफ़ेस दिखाता है. इससे ये नतीजे दिखाए जाते हैं सिस्टम में मौजूद हर यूआईडी के लिए, I/O से जुड़े आंकड़ों की सूची. फ़ॉर्मैट:

<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>
  • रीड/राइट बाइट, किसी स्टोरेज डिवाइस से होने वाले I/O इवेंट होते हैं.
  • पढ़ें/लिखें वर्ण (बाइट में भी) वे डेटा होते हैं जिनका अनुरोध पढ़ने/लिखने के लिए किया जाता है syscalls.

कर्नेल से I/O स्थिति पाएं

कर्नेल से I/O इस्तेमाल डंप करने के लिए, storaged निर्देश का इस्तेमाल इसके साथ करें -u विकल्प.

निर्देश: storaged -u

कमांड आउटपुट फ़ॉर्मैट: name/uid fg_rchar fg_wchar fg_rbytes fg_wbytes bg_rchar bg_wchar bg_rbytes bg_wbytes fg_fsync bg_fsync

ध्यान दें: यह आउटपुट, proc/uid_io/stats. ऐसा इसलिए है क्योंकि storaged आपका डेटा प्रोसेस करता है /proc/uid_io/stats और अपना डेटा जनरेट करता है.

आउटपुट का उदाहरण:

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