Ext4lazyinit এর অগ্রগতি পরিমাপ করার একটি উপায় আছে?


17

আমি এখানে ext4lazyinit সম্পর্কে একটি প্রশ্ন জিজ্ঞাসা করেছি । আমি যা পড়েছি এবং বুঝতে পেরেছি তা থেকে আপনার ফাইল সিস্টেমের জন্য সমস্ত ইনোড তৈরি না করেই আপনি কেবল এইচডিডি ব্যবহার শুরু করতে পারবেন।

আপনি জানেন বা পরিমাপ করতে পারেন একমাত্র উপায় নিরীক্ষণ ext4lazyinitহয় iotop। শতাংশ হিসাবে তার অগ্রগতি পাওয়ার উপায় আছে?


2
পরীক্ষা এই প্যাচ আলোচনা
Krzysztof Stasiak

আপনি কি বার [1] বা পিভি [2] ইউটিলিটিগুলি ব্যবহার করে দেখেছেন? [1]: [ archlinux.org/packages/community/any/bar/] [2]: [ archlinux.org/packages/community/x86_64/pv/]
mattia.b89

@ mattia.b89 ext4lazyinit কোনও ইউজারস্পেস প্রোগ্রাম নয়, এটি একটি ব্যাকগ্রাউন্ড কার্নেল প্রক্রিয়া। তথ্যের জন্য এই সম্পর্কে শিরিশের মূল প্রশ্নের দিকে ইঙ্গিত করে প্রশ্নের লিঙ্কটি দেখুন।
অস্টিন হেমেলগারন

এছাড়াও, আমি ক্র্যাজিজটফস্টাসিয়াক লিঙ্কযুক্ত প্যাচ আলোচনায় টেড টিসোর মূল্যায়নের সাথে একমত হতে চাই, আপনি যদি এমন পরিস্থিতিতে থাকেন যেখানে আপনাকে এটি শেষ করার জন্য অপেক্ষা করতে হবে, আপনার সম্ভবত এটি ব্যবহার করা উচিত নয়।
অস্টিন হেমেলগার্ন

@ ক্রিজিসটফস্টাসিয়াক আপনি কি এটির উত্তর দিতে পারতেন, আমি মনে করি এটিই উত্তরটি আমি কাছে পেতে পারব, এফডাব্লুআইডাব্লু টেড টিএসও এক্স এর সমার্থক শব্দ, সুতরাং তাঁর বিশ্বাস যা-ই হোক না কেন, সেগুলি গুরুত্বপূর্ণ।
শিরিশ

উত্তর:


1

এই প্যাচ আলোচনা পরীক্ষা করুন । আপনি অলসতা ছাড়াই সিস্টেমটি সূচনা করতে পারেন, তবে এটি পরিমাপ করতে পারবেন না। আপনার অপেক্ষা করার সময় থাকলে কেবল অপেক্ষা করুন। আপনি আলোচনা থেকে প্যাচ চেষ্টা করতে পারেন, তবে প্যাচওয়ার্ক অনুসারে এটি "প্রত্যাখ্যান" হয়েছে state


1

আমি ext4lazyinit এর অগ্রগতি আনুমানিক একটি উপায় খুঁজে পেয়েছি বলে মনে হচ্ছে।

টিএল; ডিআর: নীচে স্ক্রিপ্ট দেখুন।

এই পদ্ধতিটি ধরে নিয়েছে যে প্রথম থেকেই পার্টিশনটি মাউন্ট হওয়ার পরে ডিস্কটি কখনও সংযোগ বিচ্ছিন্ন হয়নি (না সিস্টেমটি পুনরায় চালু করা হয়নি) এবং আপনি পার্টিশনটিতে যেমন ব্যবহার করছেন তেমন তথ্য লিখেছেন (সুতরাং মুছে ফেলা হবে না) বা ফাইল পরিবর্তন)।

পদক্ষেপ 1 : fdisk এ পার্টিশনের আকারের (কিবি রূপান্তরিত) ডিএফ-তে প্রদর্শিত 1 কে-ব্লকের সংখ্যার সাথে তুলনা করুন। (ইনোড টেবিলের আনুমানিক আকার) পেতে (কিবিতে পার্টিশনের আকার) থেকে বিয়োগ করুন (1 কে-ব্লকের সংখ্যা) t

সম্পাদনা: উদাহরণ, fdisk:

Sector size (logical/physical): 512 bytes / 4096 bytes
(...omitted...)
Device     Start         End     Sectors  Size Type
/dev/sdd1   2048 11720978398 11720976351  5.5T Linux filesystem

ডিএফ:

Filesystem              1K-blocks       Used  Available Use% Mounted on
/dev/mapper/workbackup 5813233164 1217095176 4596121604  21% /mnt/backup_work

11720976351 সেক্টর * 512 বাইট / সেক্টর / 1024 = 5860488175.5 কিবি (প্রায় 5.5 টিবি, যেমন fdisk বলে)। আনুমানিক ইনোড টেবিল আকারের জন্য মাইনাস ডিএফ এর 5813233164 সমান 47255011.5 কিবি (প্রায় 45 জিআইবি)।

পদক্ষেপ 2 : পান (পার্টিশনে লিখিত মোট কিবি):

awk '{ print $3"\t"$10 }' /proc/diskstats

আপনার বিভাজনের জন্য সঠিক লাইনটি চয়ন করুন এবং এটিকে কিবিতে রূপান্তর করুন।

সম্পাদনা: উদাহরণ:

sdb     260040
sdb1    260040
sdd     2530109116
sdd1    2530108940

আমার ক্ষেত্রে sdd1 ব্যবহার করে, মোট কিবি লিখিত = 2530108940 সেক্টর * 512 বাইট / সেক্টর / 1024 = 1265054470 কিবি (প্রায় 1.2 টিআইবি)।

পদক্ষেপ 3 : কেবলমাত্র যদি আপনি ইতিমধ্যে ফাইল সিস্টেমে কোনও ডেটা লিখে থাকেন তবে প্রয়োজন। (আনোড টেবিলের কাছে আনুমানিক কিবি লিখিত) পেতে (পার্টিশনে মোট কিবি লেখা আছে) থেকে বিয়োগ করুন (1K- ব্লকের ইউএসএইডের সংখ্যা, ডিএফ এ দেখানো হয়েছে)

সম্পাদনা: উদাহরণ: আনোড টেবিলে লিখিত আনুমানিক কিবি = 1265054470 (পদক্ষেপ 2 থেকে) - 1217095176 (ধাপ 1 এ ডিএফ আউটপুট দেখুন) = 47959294 কিবি (45.7 জিআইবি)

পদক্ষেপ 4 : ভাগ করুন (আনুমানিক টেবিলের কাছে আনুমানিক কিবি লিখিত) দ্বারা (কিবিতে ইনোড টেবিলের আনুমানিক আকার) এবং শতাংশ হিসাবে অগ্রগতি পেতে 100 দ্বারা গুণিত করুন।

সম্পাদনা: উদাহরণ: আনুমানিক অগ্রগতি = 47959294 / 47255011.5 * 100% = 101.5%

লিপি

অথবা এটি আংশিক স্ক্রিপ্ট হিসাবে লিখতে (যেখানে আমি সুরক্ষার কারণে, fdisk এ কল স্ক্রিপ্ট করতে অস্বীকার করেছি):

let sectorsize=$(cat /sys/block/sda/queue/hw_sector_size)
let partsize=$2*$sectorsize/1024
let fssize=$(df -- "$3" | tail -n -1 | awk '{print $2}')
let approxinodetablesize=$partsize-$fssize
let tkw=$(awk "/$1/"' {print $10}' /proc/diskstats | head -n 1)*$sectorsize/1024
let used=$(df -- "$3" | tail -n -1 | awk '{print $3}')
let tkw_inodetable=$tkw-$used
echo "Approximate progress: $(bc -l <<< "$tkw_inodetable*100.0/$approxinodetablesize") %"

Partition 1 = "পার্টিশনের নাম" (যেমন sdd1), $ 2 = "fdisk অনুসারে পার্টিশনের ক্ষেত্রগুলি", $ 3 = "স্ল্যাশ অনুসরণ না করে মাউন্ট পয়েন্ট" সহ কল ​​করুন

পরীক্ষার ফলাফল

আমি কেবল একবার আমার পদ্ধতি পরীক্ষা করেছি। সেটআপ:

  • 6 টিবি বিভাজন

  • ক্রিপ্টসেটআপ ব্যবহার করে এনক্রিপশন

  • ফাইল-সিস্টেম -m 0 ব্যতীত ডিফল্ট পরামিতিগুলির সাথে তৈরি

  • Ext4lazyinit শেষ হওয়ার আগে পার্টিশনে লিখিত 279 GiB ফাইল।

ফলাফল : সমাপ্তির সময় 99.7% এর পাঠ্য :-)

সম্পাদনা: একই ডিস্ক, এটিতে প্রায় অন্য টিআইবি ডেটা লেখার পরে, এখন 101.5% এর অনুমান পাওয়া যায়। দরকারী হিসাবে যথেষ্ট সঠিক, আমি মনে করি।


এটি একটি উদাহরণ দেওয়া ভাল ছিল, তাই আমরা ঠিক কি খুঁজছেন হবে তা সম্পর্কে আমাদের ধারণা আছে।
শিরিশ

@ শিরীশ আপনার পরামর্শের জন্য আপনাকে ধন্যবাদ।
theaviatrix
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.