ব্লকের আকারগুলি বোঝা


11

আমার প্রশ্ন পোস্টগ্র্রেসকে লক্ষ্য করে, তবে কোনও ডাটাবেস পটভূমি থেকে উত্তরগুলি আসতে পারে যথেষ্ট ভাল good

আমার অনুমানগুলি কি সঠিক:

  • ডিস্কগুলির একটি নির্দিষ্ট ব্লকের আকার আছে?
  • RAID কন্ট্রোলারের একটি পৃথক ব্লকের আকার থাকতে পারে? একটি RAID ব্লক একাধিক বাস্তব ডিস্ক ব্লকে বিভক্ত হয়?
  • ফাইল সিস্টেমে একটি স্বতন্ত্র ব্লকের আকারও রয়েছে যা আবার RAID ব্লকের আকারে বিভক্ত হয়?
  • Postgres স্থির 8k ব্লক সহ কাজ করে। ফাইল সিস্টেম ব্লক আকারে ম্যাপিংটি এখানে কীভাবে ঘটবে? পোস্টগ্রিস 8 কে ব্লকগুলি ফাইল সিস্টেমে একসাথে ব্যাচ করছে?

একটি সিস্টেম স্থাপন করার সময় 8k এ সমস্ত ব্লক রাখা ভাল? অথবা সেটিংস কি বাস্তব বিষয় নয়? আমি আরও ভাবছিলাম যে কিছু "ভুল" ব্লক আকারের সেটিংস ক্রাশের ক্ষেত্রে ডেটা অখণ্ডতার ক্ষতি করতে পারে? যদি কোনও পোস্টগ্রিস 8 কে ব্লক একাধিক ডিস্ক ব্লকে বিভক্ত করতে হয়?

বা কিছুই একসাথে ব্যাচ হয় না, এবং তাই আমি সংজ্ঞায়িত ব্লক আকারের মধ্যে প্রতিটি অমিলের সাথে ডিস্কের স্থানটি আলগা করি?

উত্তর:


16

ডিস্ক সেক্টর

একটি ডিস্কের একটি নির্দিষ্ট খাত আকার থাকে, সাধারণত কিছু আধুনিক ডিস্কে সাধারণত 512 বাইট বা 4096 বাইট থাকে; এই ডিস্কগুলির একটি মোডও থাকবে যেখানে তারা 512 বাইট সেক্টর অনুকরণ করে। ডিস্কটিতে বিভিন্ন সংখ্যক সেক্টরের ট্র্যাক থাকবে; ডিস্কের বাইরের দিকের ট্র্যাকগুলিতে আরও সেক্টর রয়েছে কারণ তাদের দেওয়া বিটের ঘনত্বের জন্য আরও জায়গা রয়েছে। এটি ডিস্কের জায়গার আরও দক্ষ ব্যবহারের অনুমতি দেয়; সাধারণত একটি ট্র্যাকটিতে আধুনিক ডিস্কে 1,000 512 বাইট সেক্টরের মতো কিছু থাকবে।

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

সাধারণত সেক্টর / হেড / ট্র্যাকটি একটি লজিকাল ব্লক ঠিকানায় অনুবাদ করা হয়; অপারেটিং সিস্টেম দ্বারা দেখা জ্যামিতি (হেড এক্স সেক্টর এক্স ট্র্যাক) পশ্চাদমর্ন সামঞ্জস্যের সাথে historicalতিহাসিক সমস্যার কারণে সাধারণত শারীরিক কাঠামোর সাথে সামান্যই তার সম্পর্কযুক্ত।

RAID স্ট্রাইপ আকার

একটি RAID নিয়ামক স্ট্রিপিং (যেমন RAID-5 বা RAID-10) ব্যবহার করে অ্যারের জন্য স্ট্রিপ আকার ধারণ করতে পারে। অ্যারেটিতে 128k স্ট্রাইপ থাকলে (এক্সপ্লোমালের জন্য), প্রতিটি ডিস্কে 128k সংলগ্ন ডেটা থাকে এবং তারপরে ডেটার পরবর্তী সেটটি পরবর্তী ডিস্কে থাকে। সাধারণত আপনি ডিস্কের বিপ্লব প্রতি প্রায় একটি স্ট্রাইপ পেতে আশা করতে পারেন, তাই স্ট্রিপ আকারটি নির্দিষ্ট কাজের চাপে পারফরম্যান্সকে প্রভাবিত করতে পারে।

পার্টিশন সারিবদ্ধকরণ

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

ফাইল সিস্টেম ব্লক আকার

ফাইল সিস্টেমটি একটি নির্দিষ্ট আকারের অংশগুলিতে স্টোরেজগুলির ব্লক বরাদ্দ করবে। সাধারণত এটি কনফিগারযোগ্য - উদাহরণস্বরূপ এনটিএফএস 4K থেকে 64K অবধি বরাদ্দ ইউনিটগুলিকে সমর্থন করবে। RAID স্ট্রিপগুলিতে পার্টিশন এবং ফাইল সিস্টেম ব্লকগুলির মিশ্রিনমেন্টের ফলে একাধিক ডিস্ক অ্যাক্সেস তৈরি করতে একটি ফাইল সিস্টেম ব্লক পঠন হতে পারে যেখানে ফাইল সিস্টেমের ব্লকগুলি RAID স্ট্রাইপের সাথে সঠিকভাবে প্রান্তিক করা হলে কেবল একটিই প্রয়োজনীয় হবে।

ডাটাবেস ব্লক আকার

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

ফাইল সিস্টেম এবং ডেটা বরাদ্দ ব্লকগুলির মিশ্রিনমেন্ট একক ব্লক লেখার জন্য একাধিক আই / ওএস তৈরি করতে পারে, যা পারফরম্যান্স পেনাল্টি চালাতে পারে।

আই / ও চুনকিং

সাধারণত একটি ডিবিএমএস আসলে একাধিক ব্লকের অংশগুলিতে এর আই / ও করবে। উদাহরণস্বরূপ, এসকিউএল সার্ভারে, সমস্ত আই / ও মোট 8 টি ব্লকের অংশে সম্পন্ন হয়) 64 ওরাকলে এটি কনফিগারযোগ্য। পোস্টগ্রাইএসকিউএল ডক্সের নৈমিত্তিক পরিদর্শন পোস্টগ্র্রেএসকিউএল এটি করে কিনা তার নির্দিষ্ট বিবরণ প্রকাশ করে না, সুতরাং আমি নিশ্চিত না যে এটি এই প্ল্যাটফর্মে কীভাবে কাজ করে।

যখন ফাইল সিস্টেমের ব্লক আকারের চেয়ে বড় আই / ও অংশ বা RAID স্ট্রাইপ সীমানার সাথে মিসাইল করা হয় তখন ডিবি থেকে একটি ডিস্ক লেখার ফলে একাধিক ডিস্ক লেখার কারণ হতে পারে যা পারফরম্যান্স পেনাল্টি উত্পন্ন করে।

ডিস্ক স্পেস ব্যবহার

কোনও ডিস্কের স্থান নষ্ট হয় না - ডাটাবেস I / O সম্পূর্ণ করতে ডিস্কে এক বা একাধিক শারীরিক I / O ক্রিয়াকলাপ ব্যবহার করবে - তবে ভুলভাবে টিউন করা I / O অদক্ষতা তৈরি করতে পারে যা ডাটাবেসকে ধীর করে দেবে। সারিবদ্ধ হতে হবে যে প্রধান জিনিসগুলি হ'ল:

  • RAID স্ট্রিপস এবং পার্টিশন - পার্টিশনটি একটি RAID স্ট্রিপ সীমানায় শুরু করা উচিত।

  • ফাইল সিস্টেম I / O বরাদ্দ এবং রেইড স্ট্রাইপ / পার্টিশন সীমানা - একটি RAID স্ট্রিপ বাউন্ডারি অবশ্যই একটি ফাইল সিস্টেম বরাদ্দকরণ ইউনিটের সাথে প্রান্তিককরণ করতে হবে এবং ফাইল সিস্টেমের বরাদ্দ ইউনিটের আকারের একাধিক হওয়া উচিত।

  • ডিস্ক রাইটিং আকার এবং ফাইল সিস্টেমের বরাদ্দ ইউনিটের আকার। ডাটাবেস I / O অপারেশন এবং ফাইল সিস্টেম I / O ক্রিয়াকলাপগুলির মধ্যে 1: 1 সম্পর্ক থাকা উচিত।

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


খুব সুন্দর উত্তর। আমি আপনাকে কেবল একটি উঁচুতে দিতে পেরে খারাপ অনুভব করছি ...
ফ্রান্জ কাফকা

আরও একটি প্রশ্ন: সারিবদ্ধ হওয়ার কথা বলার সময় আপনার অর্থ কী? এটি কি ছোট ব্লকের আকারের একাধিক? উদাহরণস্বরূপ 32k 8k এ সারিবদ্ধ? নাকি এর সাথে জড়িত অন্যান্য কারণও রয়েছে?
ফ্রানজ কাফকা

@ ফ্রেঞ্জকাফকা - না, এর অর্থ যখন কোনও কিছু (সাধারণত একটি ডিস্ক বিভাজন) এমন কোনও স্থানে শুরু হয় যা এর সাথে সামঞ্জস্য করা আবশ্যক তার অবিচ্ছেদ্য একাধিক নয়। উদাহরণস্বরূপ, যদি আমার কাছে 128K RAID স্ট্রাইপ আকার থাকে এবং 'ব্লক 0' থেকে 128K এর একাধিকের সাথে পার্টিশনটি শুরু না হয় তবে আমার কাছে যৌক্তিক পাঠ থাকতে পারে যে দুটি শারীরিক বরাদ্দ ইউনিট জুড়ে বিভক্ত, যার জন্য দুটি রিড অপারেশন প্রয়োজন, যার ফলে একটি কর্মক্ষমতা জরিমানা।
কনসার্নড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.