সঞ্চয় বাস্তবায়ন

Android O storaged জন্য সমর্থন যোগ করে, একটি অ্যান্ড্রয়েড নেটিভ ডেমন যা অ্যান্ড্রয়েড ডিভাইসে স্টোরেজ মেট্রিক্স সংগ্রহ ও প্রকাশ করে।

  • দৈনিক ডিস্কস্ট্যাটের জন্য, storaged পর্যায়ক্রমে /sys/block/mmcblk0/stat (eMMC স্টোরেজ ডিভাইস) অথবা /sys/block/sda/stat (নন-eMMC ডিভাইস) পার্স করে।
  • eMMC আজীবনের জন্য, storaged পার্স /d/mmc0/mmc0:001/ext_csd (যদি পাওয়া যায়)।
  • I/O ব্লেমিং অ্যাপ্লিকেশনের জন্য, storaged পর্যায়ক্রমে /proc/uid_io/stats অতিক্রম করে এবং পার্স করা ডেটা রক্ষণাবেক্ষণ করে, যার মধ্যে সমস্ত অ্যাপ্লিকেশনের ডেটা অন্তর্ভুক্ত থাকে (শুধু চলমান অ্যাপ্লিকেশন নয়)। dumpsys একটি বাগ রিপোর্টে অ্যাপ্লিকেশন I/O ব্যবহার লগ করার জন্য storaged কল করতে পারে।

ডিস্কস্ট্যাট (স্টলড ডিস্কস্ট্যাট সহ) এবং eMMC তথ্য Android ইভেন্ট লগে লগ করা হয়, যেখানে একটি প্ল্যাটফর্ম চেকইন পরিষেবা লগগুলি সংগ্রহ করে।

storaged ক্রিয়াকলাপগুলি স্বয়ংক্রিয়ভাবে ঘটে এবং সম্পূর্ণরূপে অ্যান্ড্রয়েড ফ্রেমওয়ার্ক দ্বারা পরিচালিত হয়, তাই আপনাকে কোন বাস্তবায়ন কাজ করতে হবে না। এই পৃষ্ঠায় 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 ইভেন্ট।
  • রিড/রাইট অক্ষর (বাইটেও) রিড/রাইট সিস্কাল দ্বারা অনুরোধ করা ডেটা।

কার্নেল থেকে 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