বিকাশকারী বিল্ডগুলির জন্য দ্রুততম ফাইল সিস্টেমটি কী?


10

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

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

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



গ্র্যাভিফেসস দেওয়া লিঙ্কটি পড়ুন, তবে আপনি যে বিভাজনটি তৈরি করতে যাচ্ছেন সেটিকে আলাদা করে রাখতে ভুলবেন না, তারপরে আপনি এখানে পাওয়া উত্তরগুলি পরীক্ষা করতে পারেন। টাকা থাকলে, যদি আপনি ডিস্ক ব্যবহার (ক ramdisk এবং ব্যবহার করে, বা tmpfs ত্যাগ করতে পারি cyberciti.biz/faq/howto-create-linux-ram-disk-filesystem )
becomingwisest

উত্তর:


6

এক্সপ্লোরেশন ফাইলটি সিস্টেম হিসাবে কয়েকটি স্পিডআপ বিকল্পের মতো ব্যবহার করুন 4

noatime,data=writeback,nobh,barrier=0,commit=300

তারপরে ইউনিয়ন একটি tmpfs ramdisk এর উপরে মাউন্ট করুন যাতে বিল্ডগুলির সময় লিখিত ফাইলগুলি র‌্যামডিস্কের সুবিধা পায়। হয় বিল্ডের শেষে ফলাফলের বাইনারিগুলি tmpfs থেকে সরানোর জন্য বিল্ড প্রক্রিয়াটি পরিবর্তন করুন, বা আনমাউন্টিংয়ের আগে tmpfsটিকে ext4fs এ আবার মার্জ করুন।


যদিও এটি দ্রুততর হয় এটি লক্ষনীয়: barrier=0আর্কি উইকি থেকে: "বিদ্যুৎ ব্যর্থতার ক্ষেত্রে ডিস্কগুলি ক্যাশে সঠিকভাবে লিখিত না হলে বাধাগুলি অক্ষম করা মারাত্মক ফাইল সিস্টেমের দুর্নীতি এবং ডেটা ক্ষতি হতে পারে।"
ধারণাগুলি 42

6

দ্রুততম ফাইল সিস্টেম? tmpfs noatimeসেট সহ উপলব্ধ র‌্যামের বাইরে চলে গেছে ।

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


এটি একটি দুর্দান্ত উত্তর, তবে আমি যা খুঁজছি তা পুরোপুরি নয়; এটা আমার সামর্থ্যের চেয়ে বেশি র্যাম। (র‌্যামের দাম যখন অর্ধেক দামের মধ্যে হতে পারে তখনই
দু'বছরে

@ ড্যান - আপনার উত্স গাছটি কত বড়? :-)
voretaq7

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

2

মাইকেল ডিলনের উত্তরে আমি যুক্ত করতে পারি যে আপনি কয়েকটি বিকল্পের সাহায্যে ext4 ফাইল সিস্টেম তৈরি করতে পারেন:

mkfs.ext4 -O dir_index,extent -i 8096 /dev/<disk>


dir_index
    Use hashed b-trees to speed up lookups in large directories.

extent 
    Instead of using the indirect block scheme for storing the location of data blocks in an inode, use extents instead.  This is a  much  more  efficient  encoding  which  speeds  up filesystem access, especially for large files.

-i 8096 আপনাকে প্রতি আকারে আরও ইনড দেয়, দরকারী কারণ বিল্ডিং এনভায়রনমেন্টগুলি প্রচুর ফাইল তৈরি করে।


0

উৎসের জন্য এটা কম্প্রেশন-অন-মাছি সমর্থন, যা আছে বাঞ্ছনীয় চাই Reiser4 বা Btrfs । উভয়ই এখনও "উত্পাদনের জন্য নয়", যদিও আমি লোকেদের উভয়ই ভারী ও সুখে ব্যবহার করার কথা শুনেছি। :-)

পরবর্তী পছন্দ (আমি সাধারণত না) হয় Reiser3 না Ext3 'র । Ext3 আজকাল কিছুটা দ্রুত হতে পারে তবে Reiser3- এ আই-নোড ফর্ম্যাট-সময় সীমা নেই, "ডাটা =" বিকল্পের অন-লাইনে পরিবর্তন সমর্থন করে। এটিতে "লেজ" সমর্থন রয়েছে যাতে শক্ত আকারে ছোট ফাইলগুলি প্যাকিং করা যায় তবে আপনি যদি গতির বিষয়ে উদ্বিগ্ন হন তবে এটি "নোটেল" করুন।

এক্সএফএস এবং জেএফএস উভয়ই "প্রচুর ছোট ফাইল" কেসের জন্য ব্যথা হয়ে উঠবে, বিশেষত যদি আপনি সেগুলি rm'ing করতে চান।

(EXT4 উল্লেখ করতে ভুলে গেছেন: হ্যাঁ, এটি আরও দ্রুত, তবে EXT3 But


0

আপনি যে ক্রিয়াকলাপগুলি বর্ণনা করেছেন তাতে আদর্শ ফাইল-সিস্টেমটি কী করতে সক্ষম হতে হবে তা সম্পর্কে কিছু মূল ইঙ্গিত দেয়:

  • বিল্ড প্রক্রিয়া চলাকালীন ব্যাপকভাবে এলোমেলো r / w অ্যাক্সেস করে।
  • অনেকগুলি, অনেক ফাইল সংক্ষিপ্ত ক্রমে আপডেট হচ্ছে, তাই দ্রুত মেটা-ডেটা অপারেশন সমালোচনামূলক।
  • সম্ভবত খুব ফাইল-ভারী ফাইল-সিস্টেমগুলিতে অনেকগুলি ছোট ফাইলের দক্ষ হ্যান্ডলিং।
  • অপ্রাপ্ত এবং অস্পষ্ট প্রান্ত-ক্ষেত্রে ডেটা-ক্ষতির ঝুঁকি না নেওয়ার পক্ষে যথেষ্ট পরিপক্ক।

বিটিআরএফ এবং এক্সট 4 উপরের তিনটি এবং চতুর্থটি প্রশ্নবিদ্ধ। Ext4 সম্ভবত এটির জন্য যথেষ্ট পরিপক্ক, তবে বিটিআরএফস এখনও বেকিং করা হয়নি। noatimeমেটা-ডেটা অপারেশনগুলিকে আরও দক্ষ করে তুলতে সহায়তা করে, তবে আপনি যখন নতুন একগুচ্ছ ফাইল তৈরি করছেন তখন আপনার চিত্তাকর্ষক দ্রুত হওয়ার জন্য মেটা-ডেটা অপের প্রয়োজন need

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

প্রতিটি ফাইল সিস্টেমে সামান্য গতিসম্পন্ন হয় যা আরও কয়েক শতাংশ পয়েন্ট আউট করার জন্য করা যেতে পারে। অন্তর্নিহিত স্টোরেজটি কীভাবে সম্পাদনযোগ্য তা আপনি কতটা লাভ দেখবেন তা প্রভাব ফেলবে।

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


আমি আসলে ডেটা ক্ষতি সম্পর্কে খুব একটা যত্ন করি না। (প্রশ্নটি স্পষ্ট করার জন্য আপডেট করেছেন;) মানে, ডেটা ক্ষতি হ'ল ভাল জিনিস নয়, তবে আমি সমালোচনামূলক ডেটা সংরক্ষণ করছি না; আমি প্রচুর ফাইল প্রসেস করছি এবং ডেটা অন্যত্র সরিয়ে নিচ্ছি। আমি যদি র‌্যাম বহন করতে পারতাম, আমি উপরে toref7 হিসাবে voretaq7 হিসাবে কেবল tmpfs ব্যবহার করব।
ড্যান ফাবুলিচ

0

প্রচুর ছোট ফাইলের জন্য, আমি এক্সট্রি 3, এক্সএফএস, জেএফএস ... এর উপর রিসার সুপারিশ করব, যদিও আমি শুনেছি যে এক্সট 4 অ্যাক্সেসের এই ধরণের জন্য পূর্ববর্তী অবতারের চেয়ে এক্সট 4 অনেক ভাল (অর্থাত পয়েস যা বলে তার বিপরীতে) is

রিজার ইনোড ট্রিটিকে অনেকগুলি কাঠামোর ধাক্কা দেয় - তাই ছোট ফাইলগুলির সাথে কাজ করার সময় এটি সত্যিই ভাল কাজ করে।

তবে কার্যকরভাবে ক্যাশে / বাফার করার জন্য পর্যাপ্ত শারীরিক মেমরির মাধ্যমে আপনি যে সুবিধাগুলি পাবেন তার তুলনায় শীর্ষস্থানীয় ফাইল সিস্টেমগুলির মধ্যে আচরণের পার্থক্য তুলনামূলকভাবে কম।

এবং ফাইলগুলি সংশোধন করা হয়েছে তা দেখতে ডিরেক্টরিগুলি স্ক্যান করে।

সমস্যাটি সমাধানের এটি একটি কৃপণ উপায় - এটি তুলনামূলক সহজ হলেও। এটি যদি গুরুত্বপূর্ণ হয় তবে মোডগুলিকে সূচিত করতে একটি ইনোটিফাই হ্যান্ডলার লেখার কথা ভাবেন

ওটিওহ, আপনি যদি ফ্ল্যাশ এসএসডি ব্যবহার করেন (যা আপনাকে খুব কম সন্ধানের সময় দেবে) আমি দীর্ঘকালীন কারণে আরও কার্যকরভাবে লেখার জন্য বিতরণকারী একটি fs ব্যবহার করার পরামর্শ দেব - যেমন জেএফএফএস 2

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