জেডএফএসের কর্মক্ষমতা: আমার কি পুল বা কোনও ফাইল সিস্টেমে ফাঁকা স্থান রাখা দরকার?


17

আমি জানি যে জেডএফএসের পারফরম্যান্স ভারী স্থানের পরিমাণের উপর নির্ভর করে:

পুলের কার্যকারিতা বজায় রাখতে পুলের স্থান 80% এর নীচে রাখুন। বর্তমানে যখন পুলটি খুব পূর্ণ থাকে এবং ব্যস্ত মেল সার্ভারের মতো ফাইল সিস্টেমগুলি প্রায়শই আপডেট হয় তখন পুলের কর্মক্ষমতা হ্রাস করতে পারে। পূর্ণ পুলগুলি পারফরম্যান্স জরিমানার কারণ হতে পারে তবে অন্য কোনও সমস্যা নেই। [...] মনে রাখবেন যে 95-96% পরিসীমাতে বেশিরভাগ স্থিতিশীল সামগ্রী সহ, লেখালেখি, পড়ুন এবং পুনরায় জোরদার পারফরম্যান্স ভুগতে পারে। জেডএফএস_বেস্ট_প্র্যাকটিস_গুইড, সোলারিসিন্টার্নস ডটকম (আর্কাইভ.অর্গ)

এখন, ধরুন আমার কাছে একটি জেডএফএস ফাইল সিস্টেম হোস্টিং 10 টির একটি রেইডজ 2 পুল রয়েছে volume। এখন আমি একটি শিশু ফাইল সিস্টেম তৈরি করে volume/testএটিকে 5 টি রিজার্ভেশন দেব।

তারপরে আমি এনএফএস প্রতি দুটি হোস্ট সিস্টেমকে কিছু হোস্টে মাউন্ট করে কিছু কাজ করি। আমি বুঝতে পারি যে আমি volume5 টি-র বেশি লিখতে পারি না , কারণ বাকী 5 টি সংরক্ষিত রয়েছে volume/test

আমার প্রথম প্রশ্নটি হল, আমি যদি আমার volumeমাউন্ট পয়েন্টটি ~ 5 টি দিয়ে পূরণ করি তবে পারফরম্যান্স কীভাবে নেমে আসবে ? এটি কি নেমে যাবে, কারণ জেডএফএসের অনুলিপি-অনুলিপি এবং অন্যান্য মেটা-স্টাফের জন্য সেই ফাইল সিস্টেমে কোনও ফাঁকা জায়গা নেই? বা এটি কি একইরকম থাকবে, যেহেতু জেডএফএসের জন্য নির্ধারিত জায়গার মধ্যে মুক্ত স্থানটি ব্যবহার করতে পারে volume/test?

এখন দ্বিতীয় প্রশ্ন । যদি আমি নীচে সেটআপটি পরিবর্তন করি তবে কি এটি কোনও পার্থক্য করে? volumeএখন দুটি ফাইল সিস্টেম আছে, volume/test1এবং volume/test2। উভয়কেই 3 টি রিজার্ভেশন দেওয়া হয় (তবে কোনও কোটা নেই)। এখনই ধরুন, আমি 7 টি লিখি test1। উভয় ফাইল সিস্টেমের জন্য পারফরম্যান্স একই হবে, বা প্রতিটি ফাইল সিস্টেমের জন্য এটি আলাদা হবে? এটি বাদ পড়বে, বা একই থাকবে?

ধন্যবাদ!

উত্তর:


9

হ্যাঁ. আপনার পুলটিতে খালি জায়গা রাখা দরকার। এটি মূলত অনুলিপি-রচনার ক্রিয়া এবং স্ন্যাপশটের জন্য। পারফরম্যান্স প্রায় 85% ব্যবহারে হ্রাস পায়। আপনি উচ্চতর যেতে পারেন, তবে একটি নির্দিষ্ট প্রভাব আছে।

রিজার্ভেশন নিয়ে গণ্ডগোল করবেন না। বিশেষত এনএফএসের সাথে। এটি প্রয়োজন হয় না. সম্ভবত একটি zvol জন্য, কিন্তু এনএফএস না।

যদিও আমি বিভ্রান্তি দেখছি না। আপনার যদি 10 টি থাকে তবে এর 85% এর বেশি ব্যবহার করবেন না। আপনার ব্যবহারগুলি ক্যাপ করার জন্য কোটা ব্যবহার করে আপনার শেয়ারগুলি যথাযথ আকার করুন । অথবা কোনও কোটা ব্যবহার করবেন না এবং আপনার সামগ্রিক পুল ব্যবহার পর্যবেক্ষণ করবেন না ।


ধন্যবাদ! কোটা ব্যবহারের জন্য আমাদের সেটিং-তে কোনও সুষ্ঠু উপায় নেই, তাই প্রত্যেকে একই মাউন্ট পয়েন্ট ব্যবহার করে এবং স্থানটি পূরণ করতে পারে, ফলে কর্মক্ষমতা হ্রাস পেতে পারে। আমার ধারণাটি ছিল কোনও রিজার্ভেশন সহ কিছু মুক্ত স্থানের গ্যারান্টি দেওয়া যাতে সামগ্রিক ব্যবস্থাটি কখনই খুব ধীর না হয়। তবে আইআইইউসি, আমি volume8.5 টিকে সীমাবদ্ধ করে এই গ্যারান্টিটি রাখতে পারি এবং এটি সম্পর্কে আর কখনও ভাবব না। এটা কি ঠিক?
পাভেল

আপনি .. বা স্রেফ দেখতে পারেন। মানে, এটি এনএফএস ... একটি জেডভোল নয়, সুতরাং আপনি 8.5TB এর মধ্যে ফিরে পেতে ফাইলগুলি মুছতে পারেন।
ew white

হ্যাঁ, তবে এই "দয়া করে আপনার এইচ সি পরিষ্কার করুন .., ফাইলসভারটি ভীষণ ধীর গতির" মেলিংয়ের আলোচনার প্রতি কয়েক সপ্তাহের মধ্যে তালিকাগুলির তালিকা রয়েছে ...
পাভেল

একটি সামাজিক / প্রশাসনিক সমস্যার প্রযুক্তিগত সমাধান :) আপনি কি এত বেশি ডেটা প্রত্যাশা করেন?
ইয়েওয়াইট

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

21

যখন আপনার জপুলটি খুব পূর্ণ হয় বা খুব খণ্ডিত হয় তখন কার্য সম্পাদনের অবক্ষয় ঘটে । এর কারণ হ'ল জেডএফএসের সাথে নিযুক্ত নিখরচায় ব্লক আবিষ্কারের প্রক্রিয়া। অন্যান্য ফাইল সিস্টেমে যেমন এনটিএফএস বা এক্সটোর 3 এর বিপরীতে, কোনও ব্লক বিটম্যাপ নেই যা দেখায় যে কোন ব্লকগুলি দখল করা আছে এবং কোনটি বিনামূল্যে। পরিবর্তে, ZFS (সাধারণত 200) বড় এবং এলাকার "metaslabs" বলা দোকান AVL বাগানের মধ্যে আপনার zvol ভাগ 1 প্রতিটি metaslab বিনামূল্যে ব্লক তথ্য (স্থান মানচিত্র) দিয়ে। ভারসাম্যযুক্ত এভিএল ট্রি অনুরোধের আকারের জন্য উপযুক্ত একটি ব্লকের জন্য একটি কার্যকর অনুসন্ধানের অনুমতি দেয়।

যদিও এই প্রক্রিয়াটি স্কেলগুলির কারণে বেছে নেওয়া হয়েছে, দুর্ভাগ্যক্রমে এটি একটি বড় ব্যথা হিসাবে দেখা গেছে যখন একটি উচ্চ স্তরের খণ্ড এবং / অথবা স্থান ব্যবহার ঘটে। যত তাড়াতাড়ি সমস্ত মেটাস্ল্যাবগুলি উল্লেখযোগ্য পরিমাণে ডেটা বহন করে, পুলটি খালি থাকাকালীন আপনি অল্প সংখ্যক বৃহত অঞ্চলের বিপরীতে ফ্রি ব্লকের একটি ছোট সংখ্যক অঞ্চল পাবেন। যদি জেডএফএসের জন্য 2 এমবি স্থান বরাদ্দ করা দরকার, তবে এটি একটি উপযুক্ত ব্লক বা 2 টি এমবি ছোট ছোট ব্লকের মধ্যে বিভক্ত করার উপায় খুঁজে পেতে সমস্ত মেটাস্লাবের স্পেস মানচিত্রগুলি পড়া এবং মূল্যায়ন শুরু করে। এটি অবশ্যই কিছু সময় নেয়। সবচেয়ে খারাপটি হ'ল সত্য যে এটির জন্য I / O ক্রিয়াকলাপের পুরো ব্যয় হবে কারণ জেডএফএস প্রকৃত শারীরিক ডিস্কগুলি থেকে সমস্ত স্থানের মানচিত্র পড়তে পারে । আপনার যে কোনও লেখার জন্য।

কর্মক্ষমতা হ্রাস উল্লেখযোগ্য হতে পারে। আপনি যদি সুন্দর ছবিগুলি কল্পনা করেন তবে ডেলফিক্সের ব্লগ পোস্টের দিকে একবার নজর দিন যা কিছু সংখ্যক একটি (ওভারসিম্প্লিফাইড তবে তবে বৈধ) জেডএফএস পুল বন্ধ করে দিয়েছে। আমি নির্লজ্জভাবে গ্রাফগুলির মধ্যে একটি চুরি করছি - এই গ্রাফের নীল, লাল, হলুদ এবং সবুজ রেখাগুলি দেখুন যা (যথাক্রমে) 10%, 50%, 75%, এবং 93% এর লেখার মাধ্যমে পুলের প্রতিনিধিত্ব করে কেবি / গুলি সময়ের সাথে খণ্ডিত হওয়ার সময়: zpool কর্মক্ষমতা অবক্ষয়

এটির দ্রুত এবং নোংরা ফিক্সটি গতানুগতিকভাবে মেটাস্ল্যাব ডিবাগিং মোড হয়েছে ( echo metaslab_debug/W1 | mdb -kwতাত্ক্ষণিকভাবে সেটিংস পরিবর্তন করার জন্য রান-টাইমে কেবল ইস্যু )। এই ক্ষেত্রে, সমস্ত স্থানের মানচিত্রগুলি ওএস র‌্যামে রাখা হবে, প্রতিটি লেখার অপারেশনে অতিরিক্ত এবং ব্যয়বহুল আই / ও এর প্রয়োজনীয়তা সরিয়ে ফেলুন। শেষ পর্যন্ত, এর অর্থ এটিও হ'ল আপনার আরও স্মৃতি দরকার, বিশেষত বৃহত পুলগুলির জন্য, তাই এটি স্টোরেজ ঘোড়া-বাণিজ্যের জন্য এক ধরণের র্যাম is আপনার 10 টিবি পুলটি সম্ভবত আপনার 2-4 গিগাবাইট মেমোরি 2 ব্যয় করতে পারে তবে আপনি এটি কোনও ঝামেলা ছাড়াই 95% ব্যবহারে চালাতে সক্ষম হবেন।


1 এটি কিছুটা জটিল, যদি আপনি আগ্রহী হন তবে বিশদ মানচিত্রের জন্য বনউইকের পোস্টটি দেখুন

যদি আপনার স্মৃতিশক্তির জন্য একটি উচ্চতর সীমা গণনা করার কোনও উপায়ের প্রয়োজন হয় তবে প্রতিটি মেটাস্লাবের বর্তমানে ব্যবহৃত zdb -mm <pool>সংখ্যাটি পুনরুদ্ধার করতে segmentsব্যবহার করুন, দু'ভাগে ভাগ করে নিন সবচেয়ে খারাপ পরিস্থিতি তৈরি করুন (প্রতিটি দখলকৃত অংশটি নিখরচায় অনুসরণ করবে) ), এটিএভিএল নোডের জন্য রেকর্ড আকার দ্বারা (দুটি মেমরি পয়েন্টার এবং একটি মান, zfs এর 128-বিট প্রকৃতি এবং -৪-বিট সম্বোধনের যোগফলের পরিমাণ 32 বাইটের সমান হবে, যদিও লোকেরা সাধারণত কিছুটির জন্য 64 বাইট ধরে বলে মনে হয়) কারণ)।

zdb -mm tank | awk '/segments/ {s+=$2}END {s*=32/2; printf("Space map size sum = %d\n",s)}'

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


সিনেটিকন-ডিজে, এই ব্যাখ্যাটির জন্য আপনাকে ধন্যবাদ! বর্ধমান র্যাম মনে হয় সত্যই সাহায্য করবে।
পাভেল

বিপিআর (ব্লক পয়েন্টার পুনর্লিখন) সম্পর্কে কী? এছাড়াও এটির একটি ব্লগ.কেন্ট.এইচ.উক / ইউনিসিট/2013 / 10/ 02/… জিল জিলের জন্য একটি এসএলওজি ব্যবহার করার ক্ষেত্রেও সহায়তা করে বলে উল্লেখ করেছে। এবং এই লোকটি nex7.blogspot.com.au/2013/03/readme1st.html বলছেন আপনি যতক্ষণ না সব ভাল হয় ততক্ষণ আপনি প্রেরণ এবং গ্রহণ করেন।
সিএমসিডিগ্রাগনকাই

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

আপনি যদি অন্য ডিস্কে প্রেরণ-গ্রহণের আগে ডেটাসেটটির অনুলিপি করেন? এবং তারপরে প্রতিটি ডিস্কের জন্য কেবল একটি প্রেরণ-গ্রহণের চক্রটি ঘোরান?
সিএমসিডিগ্রাগনকাই

@ সিএমসিডিগ্রাগনকাই আপনি প্রথমে সম্পূর্ণ প্রেরণ করে এবং তারপরে ইনক্রিমেন্টের সাথে কাজ করে ডাউনটাইম সংক্ষিপ্ত রাখতে পারেন । তবে ডাউনটাইম স্থির থাকে। আপনি যদি ডেটাবেস বা ভার্চুয়ালাইজেশনের জন্য আপনার ডেটাসেটগুলি ব্যাকএন্ড স্টোরেজ হিসাবে ব্যবহার করেন তবে ডাউনটাইম ব্যথা হয় যদিও তা ছোট হলেও। এছাড়াও, এটি কাজ করার জন্য আপনার একটি পৃথক, খালি পুল প্রয়োজন হবে।
দ্য ওয়াববিট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.