আমি কি একটি `সিঙ্ক` অপারেশনটির অগ্রগতি দেখতে পারি?


103

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

আমি বুঝতে পারি যে এটি ধীর হতে চলেছে, তবে এমন কোনও জায়গা আছে যেখানে আমি কাউন্টারকে দেখতে দেখতে শূন্যের নীচে যেতে পারি? ওয়াচিং buffersমধ্যে topসাহায্য করে না।


আরও তথ্যের জন্য দেখুন: lwn.net/Articles/572911
lanoxx

উত্তর:


162

সমস্ত ডেটা স্পোল আউট হওয়ার সাথে সাথে /proc/meminfoএই Dirtyসংখ্যাটি সংকুচিত হতে দেখবে ; এটির কিছুটাও ছড়িয়ে পড়তে পারে Writeback। এটি সমস্ত ডিভাইসের বিপরীতে সংক্ষিপ্তসার হবে, তবে সিস্টেমে থাকা একটি ডিভাইস বাকীগুলির থেকে অনেক ধীর গতির ক্ষেত্রে আপনি সাধারণত যেখানে শেষ হয়ে যান যেখানে এই সারিতে থাকা সমস্ত কিছুই এর সাথে সম্পর্কিত। আপনি শুরু করার সময় সম্ভবত সম্ভবত Dirtyবৃহত্তর সংখ্যাটি দেখতে পাবেন এবং এটি syncসমাপ্ত হওয়ার সময় 0 সমাপ্তির সময় শেষ হবে an একটি ইন্টারেক্টিভ ডিসপ্লে পেতে এটি চেষ্টা করুন:

watch -d grep -e Dirty: -e Writeback: /proc/meminfo

নিয়মিত ডিস্কের সাহায্যে আমি সাধারণত উপেক্ষা করতে পারি Writeback, তবে আমি নিশ্চিত নই যে এটি ইউএসবি স্থানান্তর পথে আরও বেশি সময় জড়িত কিনা। যদি এটির স্পষ্ট প্রবণতা ছাড়াই কেবল উপরে ও নিচে উঠে আসে, আপনি সম্ভবত কেবলমাত্র Dirtyসংখ্যাটি দেখতে পারেন।


4
আমার সিস্টেমে রাইটব্যাকটি ডান ফাঁকা থাকার পরে ডানদিকের শেষে, কিছুটা মেসে থাকে, কোন সময়ে এটি খুব নীচে যেতে শুরু করে।
mattdm

24

আপনি /sys/block/<device>/statসিঙ্ক করার সময় আপনি উপযুক্ত ডিভাইসের জন্য ফাইলটি দেখতে পারেন । 9 তম কলামটি ডিভাইসে ফ্লাইটের অনুরোধগুলির সংখ্যা নির্দেশ করবে, যা সিঙ্ক হয়ে গেলে শূন্যে চলে যেতে হবে।
এটি বেশ কয়েকটি বাইটে অনুবাদ করার কোনও উপায় জানেন না তবে এটি "স্টাফ" কতটা মুলতুবি রয়েছে তার একটি মোটামুটি ধারণা দেওয়া উচিত।

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


3
কেবল সহজ রেফারেন্সের জন্য, অন্য উত্তর থেকে একটি ধারণা একত্রিত করে:watch -t -n1 'awk "{ print \$9 }" /sys/block/sdd/stat'
ম্যাটডেম

4
আমার ইউএসবি স্টিকের জন্য, অনুলিপি অপারেশন এবং syncতারপরে পুরো সময়কালে এটি প্রায় 150 এর আশেপাশে ঘোরাফেরা করে । এটি 0 এ যায়, তবে কেবল খুব শেষে। অধৈর্য হয়ে অগ্রগতি দেখার জন্য এটি অন্য উত্তরকে আরও দরকারী করে তোলে।
mattdm

1
(যদিও তত্ত্ব আমি বরং Systemwide তথ্য চেয়ে মাত্র উপযুক্ত ডিভাইস এ খুঁজছেন মত।)
mattdm

বাইটের লিখিত পরিমাণ (সিঙ্ক করা, ফ্লাইটে ফ্লাশ করা হয়নি) বা ড্রাইভে লেখার জন্য ক্যাশে দেওয়ার কী উপায় আছে? আমার কাছে যদি ড্রাইভে একটি লিখন-ক্যাশে আকার থাকে তবে আমি ড্রাইভের সাথে duসিঙ্ক হওয়া প্রকৃত ডেটা গণনা করতে এটি ব্যবহার করতে পারি ।
আনফা

10

গ্রেগের উত্তরটি ব্যবহার করে, আপনি syncস্মৃতিতে ডার্টি ব্লকের স্থিতি প্রদর্শন করার সময় পটভূমিতে ছুটে যেতে পারেন ।

এটি অর্জন করতে, কেবল এই আদেশটি চালান:

sync & watch -n 1 grep -e Dirty: /proc/meminfo

এটি সামনে syncচালিত watchহওয়ার সময় পটভূমিতে কল করবে । যখন syncকমান্ড শেষ করেছি পাবেন (প্রায় যখন ডার্টি ব্লকের মাপ 0 পৌঁছেছে), আপনি একটি আউটপুট যে ভালো দেখায় হবে:

1]  + 27260 done        sync

এর অর্থ হ'ল কমান্ডটি শেষ হয়ে গেছে এবং আপনি + watchদিয়ে কমান্ডটি হত্যা করতে পারবেন ।CtrlC


বিটিডাব্লু: আমি জানি এটি একটি পুরানো প্রশ্ন, তবে গুগলে যখন এটি সন্ধান করা হয় তখন এটিই প্রথম, এবং আমি যে সমাধানটি পেয়েছি তা যুক্ত করতে চেয়েছিলাম।
jflemieux

1
খুব খারাপ সিঙ্ক / umount কার্নেল থেকে আপডেটগুলি পায় নি এবং যদি বলা হয় তবে এই ধরণের জিনিসটি সরাসরি মুদ্রণ করতে পারে।
এমসিআর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.