সংক্ষিপ্ত উত্তরটি হ'ল: আপনি ব্যতীত কেউ এই প্রশ্নের উত্তর দিতে পারে না।
দীর্ঘ উত্তরটি হ'ল আপনার নির্দিষ্ট কাজের চাপকে বেঞ্চমার্ক করা এমন একটি জিনিস যা আপনার নিজের হাতে নেওয়া দরকার কারণ এটি "স্ট্রিংয়ের টুকরো কত দিন?" জিজ্ঞাসা করার মতো।
একটি সাধারণ এক পৃষ্ঠার স্থির ওয়েবসাইট পেন্টিয়াম প্রো 150 এ হোস্ট করা যেতে পারে এবং এখনও প্রতিদিন হাজার হাজার ইমপ্রেশন পরিবেশন করে।
এই প্রশ্নের উত্তর দেওয়ার জন্য আপনার যে প্রাথমিক পদ্ধতির দরকার তা হ'ল এটি চেষ্টা করে দেখুন কী ঘটে। এমন প্রচুর সরঞ্জাম রয়েছে যা আপনি কৃত্রিমভাবে আপনার সিস্টেমটিকে চাপের মধ্যে রেখে দেখতে পারেন যে এটি কোথায় বকবে।
এর একটি সংক্ষিপ্ত বিবরণ হ'ল:
- আপনার দৃশ্যের জায়গায় রাখুন
- পর্যবেক্ষণ যোগ করুন
- ট্র্যাফিক যুক্ত করুন
- ফলাফল মূল্যায়ন
- ফলাফলের উপর ভিত্তি করে তাত্ক্ষণিক
- ধুয়ে ফেলুন, যুক্তিযুক্ত খুশি হওয়া পর্যন্ত পুনরাবৃত্তি করুন
আপনার দৃশ্যের জায়গায় রাখুন
মূলত, কিছু লোড পরীক্ষা করার জন্য, আপনার বিপরীতে পরীক্ষা করার জন্য কিছু দরকার। এর বিরুদ্ধে পরীক্ষার জন্য একটি পরিবেশ স্থাপন করুন। এটি সম্ভব হলে আপনার প্রোডাকশন হার্ডওয়্যারটির কাছে মোটামুটি অনুমান করা উচিত, অন্যথায় আপনি আপনার ডেটা এক্সট্রপোল্ট করে রেখে যাবেন।
আপনার সার্ভার, অ্যাকাউন্টস, ওয়েবসাইটগুলি, ব্যান্ডউইথ, ইত্যাদি সেট আপ করুন এমনকি আপনি যদি ভিএমগুলিতে এটি করেন ঠিক ততক্ষণ আপনি নিজের ফলাফলগুলি স্কেল করার জন্য প্রস্তুত রয়েছেন।
সুতরাং, আমি একটি মিড-চালিত ভার্চুয়াল মেশিন স্থাপন করতে যাচ্ছি (দুটি কোর, 512 এমবি র্যাম, 4 জিবি এইচডিডি) এবং আমার প্রিয় লোড ব্যালেন্সারটি ভিএম-তে রেড হ্যাট লিনাক্সেরhaproxy
ভিতরে ইনস্টল করব ।
আমি লোড ব্যালেন্সারের পিছনে দুটি ওয়েব সার্ভারও রাখব যা লোড ব্যালেন্সারের উপর চাপ দেওয়ার জন্য আমি ব্যবহার করতে যাচ্ছি। এই দুটি ওয়েব সার্ভারগুলি আমার লাইভ সিস্টেমগুলিতে অভিন্নভাবে সেট আপ করা আছে।
পর্যবেক্ষণ যোগ করুন
আপনার নিরীক্ষণের জন্য কিছু মেট্রিক দরকার হবে, সুতরাং আমি আমার ওয়েব সার্ভারগুলিতে কয়টি অনুরোধ পেয়েছি এবং ব্যবহারকারীরা দুই সেকেন্ডেরও বেশি সময় সাড়া দেওয়ার আগে প্রতি সেকেন্ডের মধ্যে কতগুলি অনুরোধ গ্রহন করতে পারব তা পরিমাপ করতে যাচ্ছি।
haproxy
লোড ব্যালান্সার সংযোগগুলি পরিচালনা করতে পারে তা নিশ্চিত করার জন্য আমি উদাহরণে র্যাম, সিপিইউ এবং ডিস্ক ব্যবহারও নিরীক্ষণ করব ।
এটি কীভাবে করবেন তা আপনার প্ল্যাটফর্মগুলিতে অনেকটাই নির্ভর করে এবং এই উত্তরের বাইরেও। আপনার ওয়েব সার্ভার লগ ফাইলগুলি পর্যালোচনা করতে হবে, পারফরম্যান্স কাউন্টারগুলি শুরু করতে হবে বা আপনার স্ট্রেস টেস্ট সরঞ্জামটির প্রতিবেদনের দক্ষতার উপর নির্ভর করতে হবে।
আপনি সর্বদা নিরীক্ষণ করতে চান এমন কয়েকটি বিষয়:
- CPU 'র ব্যবহার
- র্যাম ব্যবহার
- ডিস্ক ব্যবহার
- ডিস্কের বিলম্ব
- নেটওয়ার্ক ব্যবহার
আপনি বিশেষত যা পরীক্ষা করছেন তার উপর নির্ভর করে আপনি এসকিউএল ডেডলকগুলি দেখতে, সময় সন্ধান করা ইত্যাদিও চয়ন করতে পারেন।
ট্র্যাফিক যুক্ত করুন
এখানেই জিনিসগুলি মজা পায়। এখন আপনাকে একটি পরীক্ষার বোঝা অনুকরণ করতে হবে। আছে সরঞ্জাম প্রচুর যে কনফিগার অপশন সঙ্গে এটা করতে পারেন:
একটি নম্বর, যে কোনও সংখ্যা চয়ন করুন। ধরা যাক আপনি কীভাবে প্রতি মিনিটে 10,000 হিট দিয়ে সিস্টেমটি প্রতিক্রিয়া দেখছেন। আপনি কোন নম্বরটি বেছে নিচ্ছেন তা বিবেচ্য নয় কারণ আপনি এই পদক্ষেপটি বহুবার পুনরাবৃত্তি করতে চলেছেন, সিস্টেমটি কীভাবে প্রতিক্রিয়া দেখায় সেই সংখ্যাটি উপরে বা নীচে সামঞ্জস্য করে।
আদর্শভাবে, আপনার এই 10,000 অনুরোধগুলি একাধিক লোড টেস্টিং ক্লায়েন্ট / নোডগুলিতে বিতরণ করা উচিত যাতে কোনও একক ক্লায়েন্ট অনুরোধের ক্ষেত্রে বাধা তৈরি করতে না পারে। উদাহরণস্বরূপ, জেমেটারের রিমোট টেস্টিং একটি কেন্দ্রীয় ইন্টারফেস সরবরাহ করে যা থেকে একটি নিয়ন্ত্রণকারী জেমেটার মেশিন থেকে বেশ কয়েকটি ক্লায়েন্ট লঞ্চ করা যায়।
ম্যাজিক গো বোতাম টিপুন এবং দেখুন আপনার ওয়েব সার্ভারগুলি গলে যাবে এবং ক্রাশ হবে।
ফলাফল মূল্যায়ন
সুতরাং, এখন আপনাকে পদক্ষেপে সংগ্রহ করা আপনার মেট্রিকগুলিতে ফিরে যেতে হবে 2 আপনি দেখতে পাচ্ছেন যে 10,000 সমবর্তী সংযোগের সাথে আপনার haproxy
বাক্সটি সবে ঘাম ঝরছে, তবে দুটি ওয়েব সার্ভারের সাথে প্রতিক্রিয়া সময়টি পাঁচ সেকেন্ডেরও বেশি সময় স্পর্শ করে। এটি দুর্দান্ত নয় - মনে রাখবেন, আপনার প্রতিক্রিয়ার সময়টি দুই সেকেন্ডের জন্য লক্ষ্য করে। সুতরাং, আমাদের কিছু পরিবর্তন করা দরকার।
Remediate
এখন, আপনার ওয়েবসাইটকে দ্বিগুণেরও বেশি গতি বাড়ানো দরকার। সুতরাং আপনি জানেন যে আপনার হয় স্কেল আপ বা স্কেল আউট করা প্রয়োজন।
স্কেল বাড়ানোর জন্য আরও বড় ওয়েব সার্ভার, আরও র্যাম, দ্রুত ডিস্ক পান।
স্কেল আউট করতে, আরও সার্ভার পান।
এই সিদ্ধান্ত নিতে আপনার পদক্ষেপ 2 এবং পরীক্ষা থেকে আপনার মেট্রিক ব্যবহার করুন। উদাহরণস্বরূপ, আপনি যদি দেখেছেন যে পরীক্ষার সময় ডিস্কের ল্যাটেন্সিটি বিশাল ছিল তবে আপনি জানেন যে আপনার হার্ড স্ক্রিনগুলি বাড়িয়ে তোলা দরকার।
আপনি যদি দেখেছেন যে পরীক্ষার সময় প্রসেসরটি 100% বসে ছিল, সম্ভবত বিদ্যমান সার্ভারগুলির উপর চাপ কমাতে আপনাকে অতিরিক্ত ওয়েব সার্ভার যুক্ত করতে স্কেল করতে হবে।
কোনও জেনেরিক সঠিক বা ভুল উত্তর নেই, কেবলমাত্র আপনার পক্ষে সঠিক। স্কেলিং চেষ্টা করুন, এবং যদি এটি কার্যকর না হয় তবে তার পরিবর্তে স্কেল বাড়ান। বা না, এটি আপনার এবং বাক্সের বাইরে কিছু চিন্তাভাবনা।
ধরা যাক আমরা স্কেল করতে চলেছি। সুতরাং আমি আমার দুটি ওয়েব সার্ভার (তারা ভিএম) ক্লোন করার সিদ্ধান্ত নিয়েছি এবং এখন আমার চারটি ওয়েব সার্ভার রয়েছে।
ধুয়ে ফেলুন, পুনরাবৃত্তি করুন
পদক্ষেপ 3 থেকে আবার শুরু করুন যদি আপনি দেখতে পান যে জিনিসগুলি আপনার প্রত্যাশার মতো চলছে না (উদাহরণস্বরূপ, আমরা ওয়েব সার্ভারগুলি দ্বিগুণ করে দিয়েছি, তবে পুনরাবৃত্তির সময়গুলি এখনও দুই সেকেন্ডের বেশি), তবে অন্যান্য বাধাগুলি দেখুন। উদাহরণস্বরূপ, আপনি ওয়েব সার্ভারগুলি দ্বিগুণ করেছেন, তবে এখনও একটি ক্র্যাপি ডেটাবেস সার্ভার রয়েছে। অথবা, আপনি আরও ভিএম ক্লোন করেছেন, তবে তারা একই শারীরিক হোস্টে থাকার কারণে আপনি কেবল সার্ভার সংস্থানগুলির জন্য উচ্চতর বিতর্ক অর্জন করেছেন।
তারপরে আপনি সিস্টেমের অন্যান্য অংশগুলি পরীক্ষা করতে এই পদ্ধতিটি ব্যবহার করতে পারেন। লোড ব্যালেন্সারটিকে আঘাত করার পরিবর্তে সরাসরি ওয়েব সার্ভারে বা এসকিউএল সার্ভারকে একটি এসকিউএল বেঞ্চমার্কিং সরঞ্জাম ব্যবহার করে আঘাত করার চেষ্টা করুন ।