Android 8-এ storaged-এর জন্য সহায়তা যোগ করা হয়েছে, এটি একটি Android নেটিভ ডেমোন যা
Android ডিভাইসে স্টোরেজ মেট্রিক্স সংগ্রহ ও প্রকাশ করে।
- প্রতিদিনের diskstats-এর জন্য,
storagedমাঝে মাঝে পার্স করে/sys/block/mmcblk0/stat(eMMC স্টোরেজ ডিভাইস) অথবা/sys/block/sda/stat(নন-eMMC ডিভাইস)। - eMMC লাইফটাইমের জন্য,
storagedপার্স করে/d/mmc0/mmc0:001/ext_csd(if উপলভ্য)। - অ্যাপ I/O সংক্রান্ত সমস্যার জন্য,
storagedমাঝে মাঝে ট্রাভার্স করে/proc/uid_io/statsএবং পার্স করা ডেটা বজায় রাখে, যার মধ্যে সব অ্যাপের (শুধু রানিং অ্যাপ নয়) ডেটা অন্তর্ভুক্ত।dumpsysঅ্যাপের I/O ব্যবহার সংক্রান্ত তথ্য বাগ রিপোর্টে লগ করতেstoraged-কে কল করতে পারে।
Diskstat (স্টল করা diskstats সহ) এবং eMMC তথ্য Android ইভেন্ট লগে লগ করা হয়, যেখানে একটি প্ল্যাটফর্ম চেক-ইন পরিষেবা লগ সংগ্রহ করে।
storaged অপারেশন অটোমেটিক হয় এবং সম্পূর্ণভাবে Android
ফ্রেমওয়ার্ক দ্বারা পরিচালিত হয়, তাই আপনাকে কোনও ইমপ্লিমেন্টেশন কাজ করতে হবে না। এই পৃষ্ঠায়
storaged-এর ডিজাইন (নতুন ইন্টারফেস সহ) এবং কীভাবে এটি ব্যবহার করে
কার্নেল থেকে I/O স্ট্যাটাস পেতে হয় তা বর্ণনা করা হয়েছে।
স্টোরেজ ডিজাইন
অ্যাকাউন্টিং ও অনুমতির ক্ষেত্রে নমনীয়তার জন্য, storaged কার্নেল মডিউল হিসেবে
প্রয়োগ করা হয় যা প্রতি-uid I/O তথ্য (স্ট্যান্ডার্ড proc/PID/io ব্যবহার করার পরিবর্তে)
ফেরত পাঠায়। প্রতিটি I/O অনুরোধের জন্য কাঁচা I/O ডেটা কার্নেল task_struct-এ
স্টোর ও আপডেট করা হয় এবং কার্নেল ট্র্যাক করে যে কখন কোনও প্রসেস বন্ধ হয়ে যায়, যাতে এটি শেষ storaged পোলিং ইভেন্ট থেকে হওয়া I/O ব্যবহার মিস না করে।
ফ্রেমওয়ার্ক যখন uid ফোরগ্রাউন্ড/ব্যাকগ্রাউন্ড সুইচ সম্পর্কে এটিকে বিজ্ঞপ্তি দেয় অথবা storaged ডেমন যখন কোনও রিপোর্টের অনুরোধ করে, শুধুমাত্র তখনই মডিউলটি কাঁচা ডেটা পড়ে এবং প্রসেস করে। সেই সময়, মডিউলটি ফ্রেমওয়ার্ক ও storaged ডেমনের সাথে
যোগাযোগ করার জন্য কার্নেল থেকে একটি ফাইল নোড এক্সপোর্ট করে।
storaged /proc/uid_io/stats ইন্টারফেস চালু করে, যা সিস্টেমের প্রতিটি UID-এর জন্য
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 ইভেন্ট।
- read/write chars (বাইট হিসেবেও) হল read/write syscalls-এর মাধ্যমে অনুরোধ করা ডেটা।
কার্নেল থেকে I/O স্ট্যাটাস পাওয়া
কার্নেল থেকে I/O ব্যবহার সংক্রান্ত ডেটা ডাম্প করতে, -u বিকল্পের সাথে storaged কমান্ড ব্যবহার করুন।
কমান্ড: 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