ফাইলগুলি সরিয়ে ফেলতে খুব বেশি সময় লাগে


11

সংক্ষিপ্ত সংস্করণ : rm -rf mydirসঙ্গে mydir(যাও recursively), 2.5 মিলিয়ন ফাইল ধারণকারী একটি বেশিরভাগই অলস মেশিনে 12 ঘণ্টা সময় লাগে।

আরও তথ্য : মুছে ফেলা হওয়া বেশিরভাগ ফাইল হ'ল অন্য ডিরেক্টরিগুলির ফাইলগুলির হার্ড লিঙ্কগুলি (ডিরেক্টরিটি মোছা হচ্ছে আসলে এটি তৈরি করা প্রাচীনতম ব্যাকআপ rsnapshot; rmকমান্ডটি আসলে প্রদত্ত rsnapshot)। সুতরাং এটি বেশিরভাগ ডিরেক্টরি এন্ট্রি মুছে ফেলা হচ্ছে - ফাইল সামগ্রী নিজেই খুব বেশি নয়; এটি কয়েক দশ জিবি ক্রম।

আমি নিশ্চিত যে btrfsএটাই অপরাধী from আমার মনে আছে আমি ব্যবহার শুরু করার আগে ব্যাকআপটিও খুব ধীর ছিল btrfs, তবে আমি নিশ্চিত নই যে অস্তিত্ব মুছে ফেলা হয়েছে।

মেশিনটি 4 জিবি র‌্যাম সহ একটি ইন্টেল কোর আই 5 2.67 গিগাহার্টজ। এতে দুটি সটা ডিস্ক রয়েছে: একটিতে ওএস এবং কিছু অন্যান্য জিনিস রয়েছে এবং ব্যাকআপ ডিস্কটি 1 টিবি WDC WD1002FAEX-00Z3A0। মাদারবোর্ডটি একটি আসুস পি 7 পি 55 ডি।

সম্পাদনা : মেশিনটি লিনাক্স সহ একটি ডেবিয়ান হুইজি 3.16.3-2~bpo70+1। ফাইল সিস্টেমটি এভাবে মাউন্ট হয়:

root@thames:~# mount|grep rsnapshot
/dev/sdb1 on /var/backups/rsnapshot type btrfs (rw,relatime,compress=zlib,space_cache)

সম্পাদনা : ব্যবহার করতে rsync -a --delete /some/empty/dir mydirপ্রায় 6 ঘন্টা সময় লাগে। একটি উল্লেখযোগ্য উন্নতি rm -rf, কিন্তু এখনও আমি অনেক বেশি মনে করি। ( কেন ব্যাখ্যা rsyncচেয়ে দ্রুতrm : "[এম] Ost ফাইল সিস্টেম তাদের ডিরেক্টরির স্ট্রাকচার একটি btree বিন্যাসে, যাতে এক চাহিদা সংরক্ষণ যা [মধ্যে] আপনাকে ডিলিট ফাইল গুরুত্বপূর্ণ ... btree rebalancing এড়াতে যখন আপনি লিঙ্কমুক্তের সঞ্চালন। .... rsync -a --delete... মুছে ফেলা হয় ")

সম্পাদনা : আমি অন্য একটি ডিস্ক সংযুক্ত করেছি যার একটি ডিরেক্টরিতে ২.২ মিলিয়ন ফাইল ছিল (পুনরাবৃত্তভাবে), তবে এক্সএফএসে। এখানে কিছু তুলনামূলক ফলাফল রয়েছে:

                  On the XFS disk      On the BTRFS disk
Cached reads[1]       10 GB/s               10 GB/s
Buffered reads[1]     80 MB/s              115 MB/s
Walk tree[2]         11 minutes            43 minutes
rm -rf mydir[3]       7 minutes            12 hours

[1] সাথে hdparm -T /dev/sdXএবং hdparm -t /dev/sdX
[2] find mydir -print|wc -lবুট করার পরে অবিলম্বে চালাতে সময় নেওয়া হয়েছিল ।
[3] এক্সএফএস ডিস্কে, গাছটি ধরে হাঁটার সাথে সাথেই এটি ঘটেছিল find। বিটিআরএফএস ডিস্কে এটি পুরানো পরিমাপ (এবং আমি মনে করি না এটি গাছের ক্যাশেডের সাথে ছিল)।

এটির সাথে সমস্যা বলে মনে হচ্ছে btrfs


1
একক ডিরেক্টরিতে 2.5 মিলিয়ন ফাইল? আমি কোনও ফাইল সিস্টেম সম্পর্কে সচেতন নই যা এটি ভালভাবে পরিচালনা করে।
মাইকেল হ্যাম্পটন

@ মিশেলহ্যাম্পটন: এটি সমতল নয়, এতে নেস্টেড ডিরেক্টরি রয়েছে। আমি সংক্ষিপ্ত বর্ণনায় "পুনরাবৃত্ত" শব্দটি যুক্ত করেছি; আমি আশা করি এটি এটি পরিষ্কার করে দিয়েছে।
আন্তোনিস ক্রিস্টোফাইডস

1
কেন আপনি অনুলিপি-রচনার জন্য একটি অনুলিপি ফাইল সিস্টেমে অনুলিপি ডিরেক্টরি কৌশল ব্যবহার করছেন?
515

@ সাইমকিবিয়ান: আপনার মানে হার্ড লিঙ্ক ট্রিকটি অনর্থক btrfs? এটি অবশ্যই সম্ভব, তবে আপনি কি মনে করেন এটি প্রাসঙ্গিক হতে পারে? আমি কেন চেষ্টা করার সিদ্ধান্ত নিয়েছিলাম তা এখনই মনে করতে পারছি না btrfs
আন্তোনিস ক্রিস্টোফাইডস

2
আহ, আমি এখন মনে আছে। আমি স্যুইচ করার সিদ্ধান্ত নিয়েছি btrfsকারণ আমি স্বচ্ছ সংকোচন চেয়েছিলাম। এখন: rsnapshotহার্ড লিঙ্কগুলি ব্যবহার করে। হার্ড লিঙ্কগুলি ব্যবহার না করার কোনও বিকল্প নেই। সুতরাং হার্ড লিঙ্কগুলি btrfs'র অনুলিপি-র লিখিত কার্যকারিতার সাথে ওভারল্যাপ হয় , তবে আমি সে সম্পর্কে খুব বেশি কিছু করতে পারি না।
আন্তোনিস ক্রিস্টোফাইডস

উত্তর:


3

ভাল এটি এখনও একটি বিটিআরএফএস সমস্যা, এটি সুপরিচিত যে অনেকগুলি ছোট ফাইল মুছে ফেলা অন্যান্য ফাইল সিস্টেমের তুলনায় বেশ দীর্ঘ সময় নেয়।

আপনি যদি এটিকে অপছন্দ করেন, আপনি হয় আপস্ট্রিম এটি স্থির না হওয়া পর্যন্ত অপেক্ষা করতে পারেন বা অন্য কোনও ফাইল সিস্টেমে যেতে পারেন যা এটি আরও ভাল করে।

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

বিআরটিএফগুলি কার্নেল সংস্করণ 3.19-তে অনেক কর্মক্ষমতা উন্নতি পেয়েছে - এটি আপনার উত্পাদনের ক্ষেত্রে ব্যবহার করা উচিত ন্যূনতম সংস্করণ, আপনার কার্নেল সংস্করণ 3.16 স্পষ্টভাবে ব্যাকপোর্ট ছাড়াই চুষে পায়।

এছাড়াও মনে রাখবেন ক্রিস ম্যাসন অনুসারে তিনি এখন অবধি বিটিআরএসকে স্থিতিশীল মনে করেন, তবে এখনও উত্পাদন প্রস্তুত নয়।


1
আপনি কীভাবে "সুপরিচিত" সংজ্ঞায়িত করবেন? আমি ওয়েবটি ব্যাপকভাবে এবং নিরর্থকভাবে অনুসন্ধান করেছিলাম এবং যারা এই আলোচনায় অংশ নিয়েছিল তাদের কেউই এ সম্পর্কে জানত না। তবে যাইহোক, আমি এখন থেকে দূরে থাকি btrfs। এটির বিকাশ চিরকালের জন্য নিচ্ছে বলে মনে হচ্ছে খুব হাইপাইড।
আন্তোনিস ক্রিস্টোফাইডস

1
ভাল, উদাহরণস্বরূপ CoreOS এর লোক রয়েছে। তারা ২০১৫ সালের শুরু পর্যন্ত ডিফল্ট ফাইল সিস্টেম হিসাবে মোটামুটি বিটিআরএফগুলি এক বছর ব্যবহার করেছিল যেখানে তারা আবার এক্সট 4 + ওভারলেফগুলিতে স্যুইচ করে। মনে রাখবেন যে এটি কার্নেল সংস্করণ ৩.১৯ এর আগে ছিল যা বিটিআরএফ-এর জন্য অনেক উন্নতি করেছিল। এছাড়াও অক্টোবর ২০১৫-এর এই উপস্থাপনাটি একবার দেখুন, যা ডাটাবেস কাজের লোড শর্তাবলী যেমন extg, xfs, zfs এবং btrfs দেখুন, Postgres: de.slideshare.net/fuzzycz/… আর একটি বেঞ্চমার্ক, যদিও এত ভাল কার্নেল নয়: goo.gl/rR3kZ2
মার্ক স্টারমার

এবং আমি যেমন বলেছি, আপনার বাক্সের কার্নেল সংস্করণ (3.16) পারফরম্যান্স সমস্যার কারণে জর্জরিত হিসাবে পরিচিত, ক্রিস ম্যাসন অনুসারে কমপক্ষে গুরুতর বিটিআরএফস স্টাফের জন্য কমপক্ষে 3.19 ব্যবহার করুন। আপনি যদি বিটিআরএফসকে গুরুত্ব সহকারে ব্যবহার করতে চান তবে সর্বদা সর্বশেষতম এবং সর্বশ্রেষ্ঠ কার্নেলটি ব্যবহার করুন - এমন কিছু যা দেবিয়ান ... এবং অনুসন্ধান শব্দটির সাথে সত্যই ভাল কাজ করে না "বিটিআরএফএস মেটাডেটা পারফরম্যান্স"।
মার্ক স্টারমার

2

আমি এই পার্টিতে কিছুটা দেরি করেছি, তবে অত্যন্ত দ্রুত বিটিআরটিফ গাছগুলি খুব দ্রুত মুছে ফেলার কৌশল এখানে রয়েছে:

  1. একই বিটিআরএফএস ফাইল সিস্টেমে একটি ডামি সাবভলিউম তৈরি করুন।
  2. আপনি যে শীর্ষ স্তরের ডিরেক্টরিটি মুছে ফেলতে চান তা সাব-ভলিউমটিতে সরান - আপনি যদি একই বিটিআরএফএস ফাইল সিস্টেমে এমনকি সাব-ভলিউম জুড়ে কাজ করে থাকেন তবে এই অপারেশনটি সত্যই দ্রুত হওয়া উচিত।
  3. সাবভলিউমটি ধ্বংস করুন।

কার্নেলটি ব্যাকগ্রাউন্ডে স্থান পুনরায় দাবি শুরু করতে চলেছে, যাতে আপনার কাছে খুব শীঘ্রই উপলভ্য স্থানটি পাবেন না, তবে প্রক্রিয়াটি কোনও ধরণের ব্যবহারকারী-ভূমি মোছার চেয়ে দ্রুততর হওয়া উচিত।


0

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

আমি নিশ্চিত না যে এটি আপনার ব্যবহারের ক্ষেত্রে কাজ করে কিনা। এটি নির্ভর করে যে ডিস্কটি নিষ্ক্রিয় না হওয়া পর্যন্ত প্রোগ্রামটি চালিয়ে যেতে না পারে (যেমন এটি কিছু ভারী ডিস্ক অপারেশন করতে চলেছে)। এটি নির্ভর করে যদি প্রোগ্রামটি প্রচুর ডেটা দিয়ে ডিস্ক পূরণ করে।

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