প্রচুর ছোট ফাইল (এইচডিডি, এসএসডি নয়) সংরক্ষণের জন্য সবচেয়ে উচ্চ-পারফরম্যান্স লিনাক্স ফাইল সিস্টেমটি কী?


43

আমার কাছে একটি ডিরেক্টরি ট্রি রয়েছে যাতে অনেকগুলি ছোট ফাইল এবং অল্প সংখ্যক বড় ফাইল রয়েছে। একটি ফাইলের গড় আকার প্রায় 1 কিলোবাইট। গাছটিতে 210158 ফাইল এবং ডিরেক্টরি রয়েছে (এই সংখ্যাটি চালিয়ে প্রাপ্ত হয়েছিল find | wc -l)।

একটি ছোট শতাংশ ফাইল প্রতি সপ্তাহে বেশ কয়েকবার যুক্ত / মুছে ফেলা / পুনরায় লেখা হয়। এটি ছোট ফাইলগুলিতে, পাশাপাশি (অল্প সংখ্যক) বড় ফাইলগুলিতেও প্রযোজ্য।

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

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


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

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

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

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

অনুরূপ পোস্ট সার্ভারসফল্ট
নিখিল

উত্তর:


47

কর্মক্ষমতা

আমি কয়েক হাজার ছোট ফাইল দিয়ে কোন ফাইল সিস্টেমটি সবচেয়ে ভাল সম্পাদন করে তা জানতে, একটি ছোট বেঞ্চমার্ক ( উত্স ) লিখেছি :

  • / dev / urandom থেকে ডেটা সহ 300000 ফাইল (512B থেকে 1536B) তৈরি করুন
  • 30000 এলোমেলো ফাইল পুনরায় লিখুন এবং আকার পরিবর্তন করুন
  • 30000 অনুক্রমিক ফাইল পড়ুন
  • 30000 এলোমেলো ফাইল পড়ুন
  • সমস্ত ফাইল মুছুন

  • প্রতিটি পদক্ষেপের পরে সিঙ্ক এবং ড্রপ ক্যাশে

ফলাফল (সেকেন্ডে গড় সময়, কম = আরও ভাল):

Using Linux Kernel version 3.1.7
Btrfs:
    create:    53 s
    rewrite:    6 s
    read sq:    4 s
    read rn:  312 s
    delete:   373 s

ext4:
    create:    46 s
    rewrite:   18 s
    read sq:   29 s
    read rn:  272 s
    delete:    12 s

ReiserFS:
    create:    62 s
    rewrite:  321 s
    read sq:    6 s
    read rn:  246 s
    delete:    41 s

XFS:
    create:    68 s
    rewrite:  430 s
    read sq:   37 s
    read rn:  367 s
    delete:    36 s

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

খণ্ডিত সমস্যা

ড্রাইভের মাধ্যমে ফাইল বিতরণ করা থেকে ফাইল সিস্টেমগুলি প্রতিরোধের একমাত্র উপায় হ'ল পার্টিশনটি কেবলমাত্র আপনার যতটা প্রয়োজন ঠিক ততটুকু বড় রাখা, তবে ইন্টারফাইল-ফ্র্যাগমেন্টিং প্রতিরোধ করার জন্য পার্টিশনটিকে খুব ছোট করে না রাখার দিকে মনোযোগ দিন। ব্যবহার LVM- র খুব সহায়ক হতে পারে।

আরও পড়া

আর্ক উইকিতে ফাইল সিস্টেমের কার্য সম্পাদন সম্পর্কিত কয়েকটি দুর্দান্ত নিবন্ধ রয়েছে:

https://wiki.archlinux.org/index.php/Beginner%27s_Guide#Filesystem_types

https://wiki.archlinux.org/index.php/Maximizing_Performance#Storage_devices


4
কার্নেলের আপনি যে তুলনাটি বেজ করছেন তার কোনও সংস্করণ নির্দিষ্ট করা উচিত। এক্সএফএস সাম্প্রতিক কার্নেলগুলির মধ্যে কয়েকটি খুব উল্লেখযোগ্য গতির প্রতিবন্ধকতা পেয়েছে (মনে হয় এটি ২.6.৩১, তবে সে সম্পর্কে আমাকে উদ্ধৃতি দেবেন না)।
প্যাট্রিক

1
অভ্যন্তরীণভাবে আপনার lvm কৌশলটি বিটিআরটিফ করে। এটি ডিস্কের ছোট অংশগুলিকে বরাদ্দ দেয় এবং ফাইলগুলিকে সেই অংশগুলিতে রাখে, যখন বিদ্যমান খণ্ডগুলি পূরণ করবে কেবল তখনই ডিস্কের অন্য অংশকে বরাদ্দ দেয়।
psusi

1
যে কোনও ফাইল সিস্টেমের ক্ষেত্রে এটি সত্য। এজন্য অ্যাপ্লিকেশনগুলি fsync () এর মতো জিনিস ব্যবহার করে।
psusi

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

1
@ টেফার আপনার "সাম্প্রতিক বেঞ্চমার্ক" এপ্রিল 2015 থেকে, তিন বছরেরও বেশি পুরানো এবং কেবলমাত্র ডিফল্ট বিকল্প সহ এক্সএফএস ব্যবহার করে। এই প্রি-ডেটস xfsprogs 3.2.3 যা এক্সএফএস ভি 5 কে ডিফল্ট করে তোলে এবং এটি সমস্ত সুবিধা দেয়। এটি -m ফিনোব্যাট = 1 দিয়ে ফর্ম্যাট করা হয়নি যা ছোট ফাইল এবং ভারী মেটাডেটা আপডেট সহ এক্সএফএস পারফরম্যান্সের জন্য গেম-চেঞ্জার। না, কোনও রূপালী বুলেট নেই, তবে পুরানো মানদণ্ডগুলির সাথে আপনার মতামতকে ভিত্তিযুক্ত করা বুদ্ধিমানের কাজ নয়, বিশেষত যখন প্রধান কার্য সম্পাদনকারী বৈশিষ্ট্যগুলি উপেক্ষা করা, অনুপলব্ধ বা অক্ষম করা হয়েছিল।
জোডি লি ব্রুচন 21 '14

7

আমি এই টাস্কটির জন্য রিসারএফ ব্যবহার করছি, এটি বিশেষত অনেক ছোট ফাইল হ্যান্ডেল করার জন্য তৈরি। ফন্টু উইকিতে এটি সম্পর্কে সহজেই পাঠ্য পড়া সম্ভব

রিসারএফসে কয়েকটি বৈশিষ্ট্য রয়েছে যা বিশেষ করে ছোট ফাইলের কর্মক্ষমতা উন্নত করে। এক্সট 2 এর বিপরীতে, রিসারফএস স্থির এক বা চার কে ব্লকে স্টোরেজ স্পেস বরাদ্দ করে না। পরিবর্তে, এটি প্রয়োজনীয় আকারটি বরাদ্দ করতে পারে।


1
রিজারফেসের সাথে স্থিতিশীলতার সমস্যা রয়েছে - তাই আরএইচ এবং সুসই সেই এফএস বাদ দিয়েছে। নীতি থেকে (বিটিআর-ভিত্তিক-এফএস) বিটিআরএফএসের তুলনামূলক হওয়া উচিত।
নীল

6

ডিরেক্টরিটিতে 1-2 মিলিয়ন ফাইলের পরে ext4 কর্মক্ষমতা বন্ধ হয়ে যায়। ইউসিএসসিতে হিরাম ক্লাওসন দ্বারা নির্মিত এই পৃষ্ঠাটি দেখুন:


0

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

অতিরিক্তভাবে, এক্সএফএস অনলাইন ডিফ্র্যাগমেন্টেশন সমর্থন করে। যদিও এটি বিলম্বিত বরাদ্দের কৌশলটি ব্যবহার করে যার ফলস্বরূপ কম ভগ্নাংশ (বনাম অন্যান্য ফাইল সিস্টেমগুলি) এর ফলাফল শুরু হয়।


20
এক্সএফএস এর মতো পরিস্থিতিতে খুব ভাল পারফর্ম করার জন্য উল্লেখযোগ্য। [উদ্ধৃতি আবশ্যক]

8
এহএম, এক্সএফএস বিশেষত বিপরীতে পরিচিত: বড় ফাইলগুলির সাথে সত্যই ভাল কাজ করে তবে ছোটদের ক্ষেত্রে এটি ভাল নয়! উদাহরণস্বরূপ এই সম্পূর্ণ বেঞ্চমার্ক তাকান (অথবা পৃষ্ঠার 10 ^^ উপর উপসংহার করার অধিকার তিড়িং লাফ): ilsistemista.net/index.php/linux-a-unix/...
লেবীয়

1
@ লাইভ আমি মনে করি আপনি সেই প্রতিবেদনটি ভুলভাবে পড়ছেন। প্রতিবেদনটি খুব স্পষ্টভাবে দেখায় যে এক্সএফএস এলোমেলো আইওয়ের জন্য খুব ভাল অভিনয় করে। তবে সেদিকেই, প্রতিবেদনে এই প্রশ্নটির দৃশ্যের ধরণটি, প্রচুর ফাইলের দিকে লক্ষ্য করা যায় না। এলোমেলো আইও হ'ল একটি জিনিস, প্রচুর সংখ্যক ফাইল হ'ল এক্সট * এর মুখের দিকে।
প্যাট্রিক

2
একমাত্র জায়গা এক্সএফএসের চেয়ে ভাল সেখানে র্যান্ডম রিড / রাইটিং অপারেশন রয়েছে (এখনও অবাক লাগে যে যান্ত্রিক ডিস্কে সত্যিকারের এলোমেলো পড়া প্যাটার্ন 10 এমবি / গুলি পেতে সক্ষম হয় - আমার কাছে এমন কিছু অপ্টিমাইজেশনের মতো মনে হয় যা বাস্তব জগতে উড়ান না (imho)), যেখানে পৃষ্ঠায় 7 এ এটি ঠিক আগে যা বলেছিল তা দেখায়, এক্সএফএস বড় ফাইলগুলি পরিচালনা করতে সত্যিই ভাল! পৃষ্ঠা 3 এবং 5 দেখুন, 3 এএসপ করুন আপনি এটি ছোট ফাইলগুলি হ্যান্ডল করছেন স্পষ্টত পাশাপাশি এক্সট্রাকশন হিসাবে দেখেন না! যদিও এক্সএফএসের বিপক্ষে আমার কাছে সত্যিই কিছু নেই, তবে আপনি যা কিছুটা খুঁজে পেয়েছেন তা থেকে, এটি অনেকগুলি ছোট ফাইলের পক্ষে সেরা পছন্দ নয়, আমি যা বলছি সবই!
লেবাইট

5
বড় ফাইলগুলির ক্ষেত্রে এক্সএফএসও অত্যন্ত ধীর হতে পারে , যদি এই ফাইলগুলি এলোমেলোভাবে / আস্তে আস্তে ছোট অংশগুলির সাথে দীর্ঘ সময় ধরে প্রসারিত করা হয়। (আদর্শ syslogdপ্যাটার্ন।) উদাহরণস্বরূপ, এমডি সেটআপের একটি এক্সএফএসের জন্য আমার সবেমাত্র আমি পর্যবেক্ষণ করেছি যে 1.5 গিগাবাইট ফাইলটি অপসারণে 4.75 মিনিট (!) সময় লেগেছে, যখন ডিস্ক ড্রাইভটি 100 টি লেনদেন / সেকেন্ডের লিখিত হারে ক্যাপড ছিল 2 এমবি / এর বেশি এটি একই ড্রাইভে অন্যান্য সমান্তরাল চলমান আইও ক্রিয়াকলাপকে খারাপভাবে প্রভাবিত করে, কারণ ড্রাইভটি ইতিমধ্যে সর্বাধিক হয়ে গেছে। অন্যান্য এফএসে (বা বেঞ্চমার্কে পরীক্ষা করা হচ্ছে) এর মতো কিছুই কখনও দেখেনি।
টিনো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.