আপনি কীভাবে লোড টেস্টিং এবং ডেটাবেসগুলির জন্য ক্ষমতা পরিকল্পনা করছেন?


34

এটি ডাটাবেসের জন্য ক্ষমতা পরিকল্পনা সম্পর্কে একটি সাধারণ প্রশ্ন

সম্পর্কিত:

আমি ডেটাবেসগুলির জন্য দক্ষতা পরিকল্পনার সরঞ্জাম এবং পদ্ধতিগুলির একটি নীতিগত প্রশ্ন তৈরি করতে চাই। এটি একটি প্রচলিত প্রশ্ন হওয়ার উদ্দেশ্য।

স্পষ্টতই, সাধারণ কর্মপ্রবাহটি হ'ল:

  • আপনার দৃশ্যের জায়গায় রাখুন
  • পর্যবেক্ষণ যোগ করুন
  • ট্র্যাফিক যুক্ত করুন
  • ফলাফল মূল্যায়ন
  • ফলাফলের উপর ভিত্তি করে তাত্ক্ষণিক
  • ধুয়ে ফেলুন, যুক্তিযুক্ত খুশি হওয়া পর্যন্ত পুনরাবৃত্তি করুন

দয়া করে বিভিন্ন ওয়েব-সার্ভার, ফ্রেমওয়ার্ক ইত্যাদির জন্য বিভিন্ন সরঞ্জাম এবং কৌশলগুলি পাশাপাশি সেরা-অনুশীলনের বিবরণ নির্দ্বিধায় অনুভব করুন।


একটি ডাটাবেস প্রায় একা একা একা থাকে না। এটি প্রায়শই বড়, তাদের সামনে অ্যাপ্লিকেশন সার্ভারগুলির প্রধান প্রসঙ্গে দেখা যায়। ডিবিগুলি ব্যাকএন্ড ডেটা ডিভাইস। সুতরাং লোড পরীক্ষা করার সময়, আপনাকে এটি বিবেচনা করতে হবে।
নীল

উত্তর:


24

ডিস্ক ও র‌্যাম ক্যাপাসিটি প্ল্যানিং

একটি ডেটাবেস সার্ভারের জন্য ডিস্ক এবং মেমরির ক্ষমতা ডিস্ক করার পরিকল্পনা একটি কালো শিল্প। যত বেশি তত ভালো. দ্রুততর ভাল।

সাধারণ নির্দেশিকাগুলি হিসাবে আমি নিম্নলিখিতটি প্রস্তাব করি:

  • আপনি আরও ডিস্কের স্থান আপনি করব চান কখনো প্রয়োজন।
    আপনার পরবর্তী 3-5 বছরের জন্য আপনার কত ডিস্ক জায়গার প্রয়োজন তা সম্পর্কে আপনার সেরা অনুমানটি নিন, তারপরে এটি দ্বিগুণ করুন।
  • আপনার ডাটাবেস সূচকগুলিকে মেমরির কাছে ধরে রাখতে, কমপক্ষে দু'বার আপনার সবচেয়ে বড় ক্যোয়ারি হ্যান্ডেল করার জন্য পর্যাপ্ত র‌্যাম চাইবেন এবং এখনও একটি স্বাস্থ্যকর ওএস ডিস্ক ক্যাশে পর্যাপ্ত জায়গা বাকি রয়েছে।
    সূচকের আকার আপনার ডাটাবেসের উপর নির্ভর করবে এবং অন্য সমস্ত কিছু আপনার ডেটা সেট এবং ক্যোয়ারী / ডাটাবেস কাঠামোর উপর নির্ভর করে। আমি একটি পরামর্শ হিসাবে "আপনার বৃহত্তম টেবিলের আকারে কমপক্ষে 2x" অফার করব তবে নোট করুন যে এই পরামর্শটি সত্যই বড় ডেটা গুদামজাতকরণ ক্রিয়াকলাপে ভেঙে গেছে যেখানে বৃহত্তম টেবিল দশক বা কয়েকশ গিগাবাাইট হতে পারে।

প্রতিটি ডাটাবেস বিক্রেতার কাছে আপনার ডিস্ক / মেমরি / ওএস কার্নেলটির সুরক্ষার জন্য কিছু নির্দেশনা থাকে - স্থাপনার আগে এই ডকুমেন্টেশনটির সাথে কিছুটা সময় ব্যয় করুন। এটা সাহায্য করবে.


কাজের চাপ বেঞ্চমার্কিং এবং সক্ষমতা পরিকল্পনা

ধরে নিচ্ছি আপনি এখনও মোতায়েন করেননি ...

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

এখন একটি কাঁচা বেঞ্চমার্ক নিয়ে সজ্জিত যা ABSOLUTELY MEANINGLESSআসুন বেঞ্চমার্কিংয়ের জন্য আরও বাস্তবসম্মত পদ্ধতির বিষয়টি বিবেচনা করুন: আপনার ডাটাবেস স্কিমাটি লোড করুন এবং একটি প্রোগ্রাম লিখুন যা এটি ডামি ডেটা দিয়ে জনপ্রিয় করে তোলে, তারপরে সেই তথ্যটির বিরুদ্ধে আপনার অ্যাপ্লিকেশনটির প্রশ্নগুলি চালাও।
এই মানদণ্ডটি তিনটি গুরুত্বপূর্ণ বিষয় চিহ্নিত করে: ১. ডাটাবেস সার্ভার (হার্ডওয়্যার) ২. ডাটাবেস সার্ভার (সফ্টওয়্যার) ৩. আপনার ডাটাবেস ডিজাইন, এবং এটি কীভাবে উপরের (1) এবং (2) এর সাথে ইন্টারেক্ট করে।

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

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


খুব দেরি! এটি উত্পাদন হয়!

আপনার সিস্টেমগুলি উত্পাদনের পরে "বেঞ্চমার্ক" হতে খুব দেরী হয়ে যায় - আপনি কোয়েরি লগিং / সময় সংক্ষেপে চালু করতে পারেন এবং দেখতে যে জিনিসগুলি কার্যকর হতে কতটা সময় নেয় এবং আপনি বড় ডেটা সেটগুলির বিপরীতে কিছু "স্ট্রেস টেস্ট" প্রশ্ন চালাতে পারেন off ঘন্টার. এটি কতটা ভারী বোঝা হচ্ছে তার ধারণা পেতে আপনি সিস্টেমের সিপিইউ, র‌্যাম এবং আই / ও (ডিস্ক ব্যান্ডউইথ) ব্যবহারের দিকেও নজর রাখতে পারেন।
দুর্ভাগ্যক্রমে এই সমস্ত জিনিসগুলি আপনাকে করবে সিস্টেমটি কী করছে তার একটি ধারণা এবং এটি কতটা স্যাচুরেশনের কাছাকাছি রয়েছে তার একটি ধারণা দেয় give
এটি আমাদের কাছে নিয়ে আসে ...


চলমান পর্যবেক্ষণ

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

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


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


1
এছাড়াও, আজকাল, আপনি অদলবদল / অন ডিস্ক ক্রিয়াকলাপের জন্য এসএসডি ব্যবহার করতে পারেন। এটি ডিস্কগুলিতে বড় অস্থায়ী টেবিল ব্যবহারকারী ক্যারিয়ারগুলিকে স্পিডআপ করবে। সুতরাং, আরও এসএসডি যুক্ত করা একটি খুব ভাল ধারণা।
পিটার

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

1
দয়া করে নোট করুন যে এসএসডি সম্পর্কে মন্তব্যগুলিতে এই পরামর্শটি এখন 7 বছরের পুরানো। আপনার ডাটাবেস সার্ভারে একটি ডাটাবেস ধারণ করে এমন প্রতিটি স্টোরেজ 2019 বা তার পরে এসএসডি হওয়া উচিত।
মার্ক হেন্ডারসন

1

পারফরম্যান্স পরীক্ষা করার জন্য সাধারণত আপনার বাস্তবসম্মত ব্যবহারের ক্ষেত্রে প্রয়োজন। অ্যাপ্লিকেশন বিকাশকারী এবং শেষ ব্যবহারকারীদের জড়িত করা একটি সেরা অনুশীলন।

তারা সাধারণত যা করছে তা রেকর্ড করুন, প্রতিটি ব্যবহারের ক্ষেত্রে এটি (প্যাকেজ অব কনটেন্ট, সমবর্তী ক্রিয়াকলাপ)।

তারপরে ক্লায়েন্টের দিকটি তৈরি করুন। একক শারীরিক মেশিন প্রায়শই উত্পাদন লোড বাড়ানোর জন্য যথেষ্ট হয় না।

তারপরে এটি জ্বালিয়ে দিন, মূল্যবান করুন, উন্নত করুন এবং আবার পরীক্ষা করুন।

আপনি যেখানে অবাক হবেন সেখানে অবাক হবেন।

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