আর্কাইভমাউন্টের আরও দ্রুত বিকল্প?


15

এই মুহুর্তে আমি ArchiveMountএকটি 123,000 কেবি সংরক্ষণাগারটি মাউন্ট করতে ব্যবহার করছি যা ভিতরে 3 মিলিয়ন ফাইল রয়েছে। এখনও অবধি এটি 5+ ঘন্টা ধরে মাউন্ট হয়েছে এবং এখনও শেষ হয়নি।

একটি .tar.gzফাইল মাউন্ট করার জন্য আরও ভাল উপায় আছে ? আমি একটি ফোল্ডারে মাউন্ট করার চেষ্টা করছি, এবং সংক্ষেপিত এটি কয়েক gigs লাগে। আমার এমনকি লেখার মোডেরও দরকার নেই, কেবলমাত্র পঠনযোগ্য যথেষ্ট।


এর রয়েছে AVFS ; এটি আরও ভাল পারফরম্যান্স করবে কিনা আমার কোনও ধারণা নেই।
গিলস

8
যদি আপনার ফাইলগুলি টার্বল না করে স্কোয়াশফস মডিউল হিসাবে সংকুচিত হয়ে থাকে তবে কেবল পঠনযোগ্য অ্যাক্সেসটি খুব দ্রুত হবে - আপনি কেবল (লুপ) স্কোয়াশফেস মডিউলটি মাউন্ট করবেন। স্কোয়াশফ-সরঞ্জাম প্যাকেজ প্রয়োজন।
dru8274

আমি বর্তমানে এমন একটি ফাইল সিস্টেম প্রোগ্রামিং করছি। কয়েক মাস অপেক্ষা করুন এবং এটি সেখানে চলছে।
FUZxxl

@FUZxxl ভাল, এটি 2 বছর হয়েছে, আপনি কি কখনও এই ইউটিলিটিটি লিখেছেন?
সাইবারনার্ড

@ সাইবারনার্ড ফুসে আমাকে এতটাই হতাশ করেছিল যে আমি এই প্রকল্পটি ছেড়ে দিয়েছি। আমি এই অপ্রকাশিত টুকরো টুকরোটিকে ঘৃণা করি। আমি এটি ব্যাক বার্নারে রাখি এবং পরে এটি আবার নিতে পারি।
FUZxxl

উত্তর:


7

আপনি একটি সংকুচিত স্কোয়াশফের চিত্রও তৈরি করতে পারেন

mksquashfs /etc squashfs.img -comp xz
mkdir img
mount -o squashfs,ro squashfs.img img

এটি করার জন্য আপনাকে আপনার tar.gz সংরক্ষণাগারটি বের করতে হবে।

সুবিধাটি হ'ল জিজেডের চেয়ে চিত্রটির আরও ভাল ফল্ট সহনশীলতা রয়েছে।


6

এখানে সমস্যাটি ফর্ম্যাটটি সহ, টিএআর (টেপ আর্চাইভ) ফর্ম্যাটটি ক্রমবর্ধমান অ্যাক্সেসের জন্য ডিজাইন করা হয়েছে, এলোমেলো অ্যাক্সেসের জন্য নয়। এবং জিজিপ টারের একটি ভাল পরিপূরক, যেহেতু এটি স্ট্রিম ভিত্তিক সংক্ষেপণ বিন্যাস, এলোমেলো অ্যাক্সেসের জন্যও নয়।

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

আপনি যদি এটি আরও দ্রুত যেতে চান, তবে একটি করুন tar tzf file.tar.gz > filelist, ভিএম , জিডিট বা অন্য যে কোনও ক্ষেত্রে সেই ফাইল তালিকাটি খুলুন , আপনার যে ফাইলগুলির প্রয়োজন নেই তার লাইনগুলি সরিয়ে দিন, সংরক্ষণ করুন এবং তারপরে এগুলি বের করুন tar xzf file.tar.gz -T filelist -C extracted/

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


3
একটি সংকুচিত ফাইলটিতে এলোমেলো অ্যাক্সেস পেতে, আপনি পিক্স্জও ব্যবহার করতে পারেন।
কুবানচেক

6

আমি একটি দ্রুত বিকল্প রেটারমাউন্ট লিখেছি , যা "আমার পক্ষে কাজ করে", কারণ এই সমস্যাটি আমাকে বক করতে থাকে

আপনি এটি এর মতো ব্যবহার করতে পারেন:

pip3 install --user ratarmount
ratarmount my-huge-tar.tar mount-folder
ls -la mount-folder # will show the contents of the tar top-level

আপনার কাজ শেষ হয়ে গেলে আপনি এটিকে কোনও ফুস মাউন্টের মতো আনমাউন্ট করতে পারেন:

fusermount -u mount-folder

এটি আর্কাইভ মাউন্টের চেয়ে দ্রুত কেন?

এটি নির্ভর করে আপনি কী পরিমাপ করেন।

এখানে মেমরি পদচিহ্নের একটি মাপদণ্ড এবং প্রথম মাউন্টিংয়ের জন্য প্রয়োজনীয় সময় পাশাপাশি সাধারণ cat <file-in-tar>কমান্ড এবং সাধারণ কমান্ডের অ্যাক্সেসের সময় find

রেটারমাউন্ট এবং আর্কাইভমাউন্টের মধ্যে বেঞ্চমার্ক তুলনা comparison

প্রতিটি 1k ফাইলযুক্ত ফোল্ডার তৈরি করা হয়েছিল এবং ফোল্ডারের সংখ্যা বৈচিত্রপূর্ণ।

নীচের বাম প্লটটি cat <file>এলোমেলো বার দেখায় যা এলোমেলোভাবে 10 টি বেছে নেওয়া ফাইলের জন্য সর্বনিম্ন এবং সর্বাধিক পরিমাপ করা বারের ইঙ্গিত করে ।

ফাইল সময় সন্ধান করুন

হত্যাকারীর তুলনা cat <file>শেষ হতে সময় লাগে । কোনও কারণে, রেটারমাউন্টে স্থির সময় থাকার সময় এই সংরক্ষণাগারটি মাউন্টের জন্য TAR ফাইলের আকারের (আনুমানিক ar বাইটগুলিতে প্রতি ফাইল x সংখ্যক বাইটস) সাথে রৈখিকভাবে স্কেল করে। এটি দেখে মনে হচ্ছে আর্কাইভ মাউন্ট এমনকি চাওয়াও সমর্থন করে না।

সংকুচিত টিএআর ফাইলগুলির জন্য, এটি বিশেষভাবে লক্ষণীয়। cat <file>পুরো .tar.bz2 ফাইলটি মাউন্ট করার ক্ষেত্রে দ্বিগুণের বেশি সময় লাগে! উদাহরণস্বরূপ, টিআরআর 10 কে খালি (!) ফাইলগুলি আর্কাইভমাউন্ট সহ মাউন্ট করতে 2.9s লাগে তবে যে ফাইলটি অ্যাক্সেস করা হয় তার উপর নির্ভর করে এর সাথে অ্যাক্সেসটি 3 এমএস catএবং 5 এর মধ্যে লাগে। সময় লাগে এটি টিএআর এর ভিতরে থাকা ফাইলের অবস্থানের উপর নির্ভর করে। টিআর শেষে ফাইলগুলি সন্ধান করতে আরও বেশি সময় নেয়; ইঙ্গিত করে যে "সন্ধান করুন" অনুকরণ করা হয়েছে এবং ফাইলটি পড়ার আগে টিএআর-এর সমস্ত সামগ্রী রয়েছে।

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

রतारমাউন্ট আপাতদৃষ্টিতে একটি ফাইল পেতে সর্বদা একই পরিমাণ সময় নেয় কারণ এটি সত্য অনুসন্ধানকে সমর্থন করে। Bzip2 সংকুচিত টিএআর জন্য, এটি এমনকি bzip2 ব্লকের সন্ধান করে, যার ঠিকানাগুলি সূচী ফাইলটিতেও সঞ্চিত থাকে। তাত্ত্বিকভাবে, ফাইলগুলির সংখ্যার সাথে একমাত্র অংশ যা স্কেল করা উচিত তা হ'ল সূচকটিতে লুক করা এবং এটি ও (লগ (এন)) দিয়ে স্কেল করা উচিত কারণ এটি ফাইলের পথ এবং নাম অনুসারে বাছাই করা হয়।

স্মৃতি পদচিহ্ন

সাধারণভাবে, যদি টিআর এর ভিতরে আপনার 20k এর বেশি ফাইল থাকে তবে রেটারমাউন্টের মেমরির পদচিহ্নটি ছোট হবে কারণ সূচিটি তৈরি হওয়ার সাথে সাথে ডিস্কে লেখা হয় এবং তাই আমার সিস্টেমে প্রায় 30MB এর ধ্রুবক মেমরির পদচিহ্ন থাকে।

একটি ছোট ব্যতিক্রম হ'ল জিজিপ ডিকোডার ব্যাকএন্ড, যা জিজিপ বড় হওয়ার সাথে সাথে কিছু কারণে আরও স্মৃতি প্রয়োজন। এই মেমরির ওভারহেড টিএআর এর অভ্যন্তরের অনুসন্ধানের জন্য প্রয়োজনীয় সূচক হতে পারে তবে আমি সেই ব্যাকএন্ডটি লিখিনি বলে আরও তদন্তের প্রয়োজন।

বিপরীতে, আর্কাইভমাউন্ট পুরো সূচকটি রাখে, যেমন, 2 এম ফাইলগুলির জন্য 4 জিবি, যতক্ষণ না টিআর মাউন্ট হয় ততক্ষণ সম্পূর্ণরূপে মেমরিতে থাকে।

মাউন্টিং টাইম

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

মাউন্ট করার জন্য প্রয়োজনীয় সময় আর্কাইভমাউন্টে কিন্ডা অদ্ভুত আচরণ করে। মোটামুটি 20 কে ফাইল থেকে শুরু করে এটি ফাইলের সংখ্যার সাথে সামঞ্জস্য রেখে রৈখিকতার পরিবর্তে চতুর্ভুজ স্কেল শুরু করে। এর অর্থ দাঁড়ায় যে মোটামুটি 4M ফাইল থেকে শুরু করে, রেটারমাউন্টটি আর্কাইভমাউন্টের চেয়ে অনেক দ্রুত গতিতে শুরু হয় যদিও ছোট টিএআর ফাইলের জন্য এটি 10 ​​গুণ বেশি ধীর হয়! তারপরে আবার ছোট ফাইলগুলির জন্য, টার মাউন্ট করতে 1s বা 0.1s লাগবে কিনা তা প্রথম বিবেচনায় আসে না (প্রথমবার)।

Bz2 সংক্ষেপিত ফাইলের জন্য মাউন্টিং সময় সর্বকালের তুলনায় সবচেয়ে বেশি। এটি খুব সম্ভবত কারণ এটি bz2 ডিকোডারের গতির সাথে আবদ্ধ। রেটারমাউন্ট এখানে প্রায় 2x ধীর। আমি আশা করি অদূর ভবিষ্যতে bz2 ডিকোডারকে সমান্তরাল করে সুস্পষ্ট বিজয়ী হিসাবে গড়ে তুলতে পারব, যা আমার 8 বছরের পুরানো সিস্টেমের জন্যও 4x স্পিডআপ অর্জন করতে পারে।

মেটাডাটা পাওয়ার সময়

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


ওপি তাদের সমস্যা সমাধানের জন্য কীভাবে এটি ইনস্টল করে ব্যবহার করবে ?
জেফ স্ক্যালার হলেন

@ জেফশালার আমি গিথুব রিডমে.এমডি
এমএক্সএমএলএনকেএন থেকে

0

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

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

দ্রষ্টব্য : এটি সমস্ত সংরক্ষণাগার ফর্ম্যাটে কাজ করবে না।


ভিআইএম-র অন্তর্নির্মিত সংরক্ষণাগার দর্শকের এখনও একটি তালিকা পাওয়ার জন্য পুরো ফাইলটি স্ক্যান করা দরকার, এভিএফএস এবং আর্কাইভ মাউন্টের চেয়ে খুব দ্রুত। এবং লক্ষ লক্ষ লাইনের এত বিশাল তালিকা প্রদর্শন করাও ভয়াবহ।
友情 留 在 无 盐

0

আমার পদ্ধতির আপনার যদি কোনও বাহ্যিক ইউএসবি ড্রাইভে পর্যাপ্ত ফ্রি ডিস্ক স্থান বা বাহ্যিক / গৌণ এইচডিডি ড্রাইভের সাথে পর্যাপ্ত জায়গা থাকে তবে কেবল আপনার .tar.gz ফাইলটি বের করার বিষয়ে বিবেচনা করুন। ভেবে আপনি সম্ভবত আপনার প্রধান সিস্টেম ডিস্কে 3 মিলিয়ন ফাইল চান না, কারণ এটি কিছুটা ধীরে ধীরে কমতে পারে। আমি প্রস্তাব দিচ্ছি যে এই ক্ষেত্রে বাহ্যিক ডিস্কে এমন একটি ফাইল সিস্টেম রয়েছে যা সহজেই বিপুল সংখ্যক ফাইল পরিচালনা করে: রিসারফএস, এক্সট 4 (ডায়ার-ইন্ডেক্স বিকল্প সহ), এক্সএফএস, সম্ভবত বিটিআরএসএফ চিন্তা করে। নিষ্কাশনটি করতে 1-2 ঘন্টা সময় লাগতে পারে তবে আপনি কেবল মধ্যাহ্নভোজন করতে যেতে পারেন বা রাতারাতি চালিয়ে যেতে পারেন; যখন আপনি ফিরে আসবেন, এক্সট্রাক্ট করা ফাইলগুলিতে অ্যাক্সেস করা অভিনয় করা উচিত।


অতিরিক্ত মিডিয়া দরকার নেই, একটি লুপ ডিভাইসই যথেষ্ট।
友情 留 在 无 盐
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.