ছোট ফাইলগুলির এনএফএস স্থানান্তর কর্মক্ষমতা ধীর করুন


12

আমি একটি এইচপি এমএল 370 জি 5, স্মার্ট অ্যারে পি 400, এসএএস ডিস্কগুলি RAID 1 + 0 ব্যবহার করে একত্রে ওপেনফিলার 2.3 ব্যবহার করছি।

আমি ওপেনফিলারের ওয়েব ভিত্তিক কনফিগারেশন ব্যবহার করে ext3 পার্টিশন থেকে একটি এনএফএস শেয়ার সেট আপ করেছি এবং আমি অন্য হোস্টের কাছ থেকে শেয়ারটি মাউন্ট করতে সক্ষম হয়েছি। উভয় হোস্টই ডেডিকেটেড গিগাবিট লিঙ্কটি ব্যবহার করে সংযুক্ত।

সাধারণ মানদণ্ড ব্যবহার করে dd:

 $ dd if=/dev/zero of=outfile bs=1000 count=2000000
 2000000+0 records in
 2000000+0 records out
 2000000000 bytes (2.0 GB) copied, 34.4737 s, 58.0 MB/s

আমি দেখতে পাচ্ছি এটি মাঝারি ট্রান্সফার গতি (58.0 এমবি / সে) অর্জন করতে পারে।

তবে আমি যদি মোট আকারের 300 মিমি পরিমাণের অনেক ছোট ফাইল ( .phpএবং .jpgফাইল প্রতি 1-4 কেবি) সহ একটি ডিরেক্টরি অনুলিপি করি তবে cpপ্রক্রিয়াটি প্রায় 10 মিনিটের মধ্যে শেষ হয়।

এনএফএস কি উপরের মামলার মতো ছোট ফাইল স্থানান্তরের জন্য উপযুক্ত নয়? বা এমন কিছু পরামিতি রয়েছে যা অবশ্যই সমন্বয় করা উচিত?


উত্তর:


7

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

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


8

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


4

আপনি কি এক্সএফএসের মতো আলাদা ফাইল সিস্টেম দিয়ে চেষ্টা করেছেন? চরম পরিমাণে ছোট আইএসসিএসআই ব্লক স্থানান্তর করার সময় এটি আমার সমস্ত সমস্যার সমাধান করে। কেন জানি না।

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


1
হ্যাঁ, আমার পরীক্ষাটি এক্সএফএস ব্যবহার করে এক্স 3 ব্যবহার করে কিছু উন্নতি দেখিয়েছে (~ 8 মিনিট বনাম 14 মিনিট) showed
অ্যারি কে

1
কিছু? আমি বলব যে
এটির

1

আপনি টিসিপি সংযোগ ব্যবহার করছেন তা পরীক্ষা করুন ( মাউন্ট -t এনএফএস -o টিসিপি হোস্ট: / মাউন্ট / টার্গেট )। আধুনিক সিস্টেমে পারফরম্যান্স প্রভাবিত হবে না, তবে আপনার নেটওয়ার্কটি লোড করা থাকলে ছোট আইওগুলি উল্লেখযোগ্যভাবে উন্নতি করতে পারে।

এবং আপনার অন্যান্য কিছু ফাইল সিস্টেমও চেষ্টা করা উচিত; ext3 মূলত সকলের চেয়ে ধীরতম। এটি শক্ত, সুপরিচিত, তবে এটি একটি ফাইল সার্ভারের জন্য বেশ অনুপযুক্ত। এক্সএফএস ভাল উপায়, এবং ছোট আইওগুলিতে রিসফারফগুলিও আরও ভাল।


1

আপনি যদি এনএফএসের মাধ্যমে ছোট ফাইলগুলির একটি বৃহত ডিরেক্টরি ট্রি স্থানান্তর করতে চান এবং আপনি সার্ভারে লগইন করতে পারেন তবে এটি করার সর্বোত্তম উপায়টি হ'ল স্বয়ংক্রিয়ভাবে ক্লায়েন্টের উপর টানা ফাইলটি তৈরি করা, যা নিম্নলিখিতভাবে:

তার সি মাইডাইরেক্টরি | ssh ব্যবহারকারী @ হোস্ট টার-এক্সএফ - সি ডাস্টির ir

এই ভাবে নেটওয়ার্কটিতে কেবল একটি একক "ফাইল" স্থানান্তরিত হয় এবং আপনার তত্ক্ষণাত হোস্টে আপনার সমস্ত ফাইল থাকে।


0

ইভানের উত্তরে যুক্ত করতে, আপনার অনুলিপি করা প্রতিটি ফাইলের জন্য আপনার মেটাডেটা (ডিরেক্টরি এন্ট্রি ইত্যাদি) তৈরির ওভারহেডের সমস্ত রয়েছে।


0

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


0

সমস্যাটি হ'ল আপনার শেয়ারটি syncবিকল্পের (ডিফল্ট) দিয়ে রফতানি করা হয় । asyncলেখার গতি বাড়ানোর জন্য যথেষ্ট ব্যবহার করুন । দেখুন nfs.sourceforge.net/nfs-howto/ar01s05.html

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