প্রশ্ন আপনি কিভাবে ওয়েব সাইট লোড টেস্টিং এবং ক্ষমতা পরিকল্পনা করবেন না?


এটা একটা ক্যানোনিকাল প্রশ্ন ওয়েব সাইট জন্য ক্ষমতা পরিকল্পনা সম্পর্কে।

সম্পর্কিত:

ওয়েব সাইট এবং ওয়েব অ্যাপ্লিকেশনের জন্য কিছু পরিকল্পিত সরঞ্জাম এবং ক্ষমতা পরিকল্পনা পদ্ধতি কি কি?

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


111
2018-01-16 22:49


উত্স




উত্তর:


সংক্ষিপ্ত উত্তর হল: আপনার ছাড়া আর কেউ এই প্রশ্নের উত্তর দিতে পারবেন না।

দীর্ঘ উত্তরটি হল আপনার নির্দিষ্ট কাজের লোকেশনের বেঞ্চমার্কিং এমন কিছু যা আপনাকে নিজেকে পরিচালনা করতে হবে, কারণ এটি "স্ট্রিংয়ের টুকরা কতক্ষণ?" জিজ্ঞাসা করার মত একটি বিট।

একটি সহজ এক পৃষ্ঠা স্ট্যাটিক ওয়েবসাইটটি পেন্টিয়াম প্রো 150 এ হোস্ট করা যেতে পারে এবং এখনও প্রতিদিন হাজার হাজার ইমপ্রেশন সরবরাহ করে।

আপনি এই প্রশ্নের উত্তর দিতে প্রয়োজন মৌলিক পদ্ধতির হয় চেষ্টা এটা এবং দেখুন কি ঘটবে। প্রচুর সরঞ্জাম রয়েছে যা আপনি কৃত্রিমভাবে আপনার সিস্টেমে চাপে রাখতে এটি ব্যবহার করতে পারেন যেখানে এটি ফাঁকা হয়।

এর সংক্ষিপ্ত সংক্ষিপ্ত বিবরণ হল:

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

জায়গায় আপনার দৃশ্যকল্প রাখুন

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

আপনার সার্ভার, অ্যাকাউন্ট, ওয়েবসাইট, ব্যান্ডউইথ, ইত্যাদি সেট আপ করুন। আপনি VMs এ এটি করলেও ঠিক আছে যতক্ষণ আপনি আপনার ফলাফল স্কেল করার জন্য প্রস্তুত।

সুতরাং, আমি একটি মধ্য-চালিত ভার্চুয়াল মেশিন (দুই কোর, 512 মেগাবাইট RAM, 4 GB HDD) সেট আপ করতে যাচ্ছি এবং আমার পছন্দের লোড ব্যালান্সার ইনস্টল করব, haproxy ভিতরে Red Hat Linux ভিএম উপর।

আমি লোড balancer পিছনে দুটি ওয়েব সার্ভার যা আমি লোড balancer পরীক্ষা চাপ ব্যবহার করতে যাচ্ছি। এই দুটি ওয়েব সার্ভার আমার লাইভ সিস্টেমে অভিন্নভাবে সেট আপ করা হয়।

মনিটরিং যোগ করুন

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

আমি RAM, CPU এবং ডিস্ক ব্যবহারের উপর নজরদারি করতে যাচ্ছি haproxy লোড balancer সংযোগ পরিচালনা করতে পারেন তা নিশ্চিত করার জন্য উদাহরণ।

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

কয়েকটি বিষয় যা আপনি সর্বদা নিরীক্ষণ করতে চান:

  • CPU 'র ব্যবহার
  • র্যাম ব্যবহার
  • ডিস্ক ব্যবহার
  • ডিস্ক বিলম্বিত
  • নেটওয়ার্ক ব্যবহার

আপনি বিশেষত পরীক্ষার জন্য যা করছেন তার উপর নির্ভর করে আপনি এসকিউএল ডেডলকগুলি সন্ধান করতে, সময়গুলি সন্ধান করতে পছন্দ করতে পারেন।

ট্রাফিক যোগ করুন

জিনিস মজা পেতে যেখানে এই। এখন আপনি একটি পরীক্ষা লোড অনুকরণ করতে হবে। সেখানে সরঞ্জাম প্রচুর যে কনফিগারযোগ্য বিকল্প সঙ্গে এই কাজ করতে পারেন:

একটি সংখ্যা, কোন সংখ্যা নির্বাচন করুন। চলুন দেখি, সিস্টেমটি 10,000 মিনিটের একটি মিনিটের সাথে প্রতিক্রিয়া জানায় কিভাবে। আপনি কোন সংখ্যাটি চয়ন করেন তা কোন ব্যাপার না, কারণ আপনি এই পদক্ষেপটিকে অনেক বার পুনরাবৃত্তি করতে যাচ্ছেন, সিস্টেমটি কীভাবে প্রতিক্রিয়া জানায় তা দেখার জন্য সেই সংখ্যাটিকে আপ বা ডাউন সামঞ্জস্য করুন।

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

জাদু চাপুন যাওয়া বাটন এবং আপনার ওয়েব সার্ভার নিচে দ্রবীভূত এবং ক্র্যাশ ঘড়ি।

ফলাফল মূল্যায়ন করুন

সুতরাং, এখন আপনাকে পদক্ষেপ 2 এ সংগৃহীত আপনার মেট্রিকগুলিতে ফিরে যেতে হবে। আপনি দেখতে পাবেন 10,000 সহস্র সংযোগের সাথে আপনার haproxy বাক্সটি সতেজভাবে ঘাম ভেঙ্গে যাচ্ছে, কিন্তু দুটি ওয়েব সার্ভারের প্রতিক্রিয়া সময় পাঁচ সেকেন্ডের বেশি স্পর্শ। যে শান্ত না - মনে রাখবেন, আপনার প্রতিক্রিয়া সময় দুই সেকেন্ডের জন্য লক্ষ্য করা হয়। সুতরাং, আমাদের কিছু পরিবর্তন করতে হবে।

Remediate

এখন, আপনার ওয়েবসাইটটি দ্বিগুণ করে বাড়িয়ে তুলতে হবে। সুতরাং আপনি জানেন যে আপনি স্কেল আপ বা স্কেল প্রয়োজন।

স্কেল আপ, বড় ওয়েব সার্ভার, আরো রাম, দ্রুত ডিস্ক পেতে।

স্কেল আউট, আরো সার্ভার পেতে।

এই সিদ্ধান্তটি করার জন্য ধাপ ২, এবং পরীক্ষার থেকে আপনার মেট্রিক্স ব্যবহার করুন। উদাহরণস্বরূপ, যদি আপনি দেখেছেন যে ডিস্ক ল্যাটিনটি পরীক্ষার সময় ব্যাপক ছিল, আপনি জানেন যে আপনাকে স্কেল আপ করতে এবং দ্রুত হার্ড ড্রাইভগুলি পেতে হবে।

পরীক্ষার সময় প্রসেসর 100% বসতে দেখেছেন, সম্ভবত আপনি বিদ্যমান সার্ভারগুলিতে চাপ কমানোর জন্য অতিরিক্ত ওয়েব সার্ভার যোগ করার জন্য স্কেল করতে হবে।

কোন জেনেরিক অধিকার বা ভুল উত্তর নেই, শুধুমাত্র আপনার জন্য কি ঠিক আছে। আপ স্কেলিং চেষ্টা করুন, এবং যদি এটি কাজ করে না, পরিবর্তে স্কেল। না না, এটি আপনার কাছে এবং কিছু বাইরে বাক্সে চিন্তা করা।

চলুন আমরা স্কেল আউট করতে যাচ্ছি। তাই আমি আমার দুটি ওয়েব সার্ভার ক্লোন করার সিদ্ধান্ত নিয়েছি (তারা VMs) এবং এখন আমার কাছে চারটি ওয়েব সার্ভার রয়েছে।

রিনস, পুনরাবৃত্তি

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

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


119
2018-04-29 14:05



এই লোড পরীক্ষার জন্য চমৎকার, কিন্তু ক্ষমতা পরিকল্পনা সম্পর্কে একটু বলে। Google এর স্কেলেবল আর্কিটেকচার সম্পর্কে কে লিখতে পারে, যা প্রাথমিকভাবে ধারণা করা হয়েছিল, অথবা বিকল্পগুলি কম এবং আরো ব্যয়বহুল বাক্সগুলি ব্যবহার করে। - rleir


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

কর্মক্ষমতা পরিমাপ সবসময় সম্পন্ন করা হয় সময় ইউনিট, হিসাবে

  • তারা ব্যবহারকারীদের কি যত্ন
  • তারা আপ এবং নিচে স্কেল করা যাবে

% সিপিও এবং আইওপিএসগুলির মত সিস্টেমগুলি সিস্টেম ভিত্তিক, তাই আপনি যখন সিস্টেমটি পরিকল্পনা করেছেন এবং প্রাক-উত্পাদনতে এটি পরিমাপ করেন তখন আপনি কেবল তখনই সেগুলি ব্যবহার করেন, যা আপনার কাছে গুরুত্বপূর্ণ জিনিসটির জন্য "স্রোতেট" হিসাবে কাজ করার সময়।


9
2018-04-21 22:32





ক্ষমতা পরিকল্পনা একটি বিরক্তিকর পশু। এটা শিল্প হিসাবে অনেক বিজ্ঞান (যদি স্পষ্টভাবে একটি অন্ধকার এক)।

আপনার সেরা কেস আপনি ভাল-জ্ঞাত সিদ্ধান্ত করা হয় এবং ভাগ্য / ভাগ্য বাস্তবতা আপনার অনুমান পূরণ করে আপনি পক্ষপাতী। আপনার ক্ষমতা অনুমিতি বাস্তবতার মেলে প্রয়োজন, আপনি একটি রহস্যময় yogi মত চেহারা। দুর্ভাগ্যবশত, আপনার অনুমান বাস্তবতা অতিক্রম করা হলে, আপনি overshot এবং overspent আছে প্রদর্শিত হবে। আরো দুর্ভাগ্যবশত, যদি আপনার অনুমতিক্রমে ঘটনাগত বাস্তবতা (অথবা অন্যথায় ভুল হয়) থেকে কম থাকে তবে আপনার প্রয়োজনীয়তার অভাবের অভাব হবে এবং আপনার গুনমানের অবকাঠামোর ব্যর্থতাগুলি হ্রাস করতে হবে, যা আপনাকে আপনার যোগ্যতার অভাব বলে মনে করে।

কোন চাপ নেই...

দুর্ভাগ্যবশত, ক্ষমতা পরিকল্পনার গাঢ় শিল্পটি একক সার্ভার ফল্ট উত্তরের মধ্যে যুক্তিসঙ্গত ভাবে নিঃসৃত হতে পারে; সত্যিই, এটা বই যোগ্য একটি বিষয়।

ভাগ্যক্রমে, একটি বই আছে: "ক্যাপাসিটি পরিকল্পনা কলা"


8





মার্ক হেন্ডারসনের পোস্টে প্রসারিত করার জন্য, আমি অ্যাপাচে এই নির্দিষ্ট লিখছি। তিনি যা বলেছিলেন তা পুনরাবৃত্তি করার জন্য, "সংক্ষিপ্ত উত্তর হল: আপনার ছাড়া আর কেউ এই প্রশ্নের উত্তর দিতে পারবে না।" এই উত্তরটির পাঠ্যটি আমার উত্তর থেকে খুব কম একটি সম্পর্কে প্রশ্ন করা হয় Drupal ওয়েবসাইট এর কর্মক্ষমতা

Mod_Prefork সঙ্গে Apache কনফিগার করা

এ্যাপাচি arguably এক (যদি না) সবচেয়ে জনপ্রিয় ওয়েব সার্ভার পাওয়া যায়। এটি ওপেন সোর্স এবং এখনও সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হয়। আপনি এটি উভয় লিনাক্স এবং উইন্ডোজ অপারেটিং সিস্টেমে চালাতে পারেন তবে এটি লিনাক্স / ইউনিক্স বিশ্বের আরও জনপ্রিয়।

তোমার উচিত না একটি অফ অফ দ্য বক্স বক্স আপ্যাপ কনফিগার ব্যবহার করুন। আপনি সবসময় আপনার সাইটে Apache সুর করতে হবে। প্রধান Apache কনফিগারেশন CentOS উপর ফাইল অবস্থিত /etc/httpd/conf/httpd.conf, এবং উবুন্টু সিস্টেমে প্রধান অ্যাপাঞ্চ কনফিগারেশন ফাইল সাধারণত অবস্থিত /etc/apache2/apache2.conf। অতিরিক্ত কনফিগারেশন ফাইল মত জিনিষ জন্য ব্যবহার করা হয় ভার্চুয়াল হোস্ট

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

সেন্ট্রো এবং উবুন্টু সার্ভারগুলির সাথে ডিফল্ট আপ্যাপ ইনস্টলেশনের বেশিরভাগ সময়, এমপিএম "mod_prefork"ব্যবহার করা হয়। অনুমান করুন আপনি mod_prefork ব্যবহার করছেন (যদি আপনি নিশ্চিত না হন তবে এটি বেশি সম্ভাবনাময়, তবে শুধুমাত্র আপনি এটি নির্ধারণ করতে পারেন) এখানে কীভাবে এটি কনফিগার করতে হবে তার মূলত:

  • অ্যাপাচি ব্যবহার করতে সক্ষম সর্বোচ্চ পরিমাণ মেমরিটি চিহ্নিত করুন।
  • ভীষণভাবে আপনার ওয়েবসাইট পরীক্ষা, এবং প্রতিটি Apache প্রক্রিয়া ব্যবহার করে কত স্মৃতি নির্ধারণ (শীর্ষ ব্যবহার করে)।
  • সর্বাধিক মেমরি ব্যবহার করে অ্যাপাচি প্রক্রিয়াটি শীর্ষে নিন, ভাল পরিমাপের জন্য এটি সামান্য বিট যুক্ত করুন এবং তারপরে এই নতুন সংখ্যাটি দিয়ে আপনার প্রথম সংখ্যা (সর্বাধিক পরিমাণ মেমরি যা আপনি Apache ব্যবহার করতে চান) ভাগ করুন।
  • আপনি পেতে সংখ্যা আপনার হতে হবে MaxClients & ServerLimit ভেরিয়েবল।

এই অবশ্যই শেষ নয় সব উত্তর। আপনার Apache সার্ভার টিউনিং সময় লাগে এবং ঠিক অধিকার পেতে অভিজ্ঞতা প্রয়োজন।


5



শুধুমাত্র উপরে ভিত্তি করে মেমরি ব্যবহার সামান্য ত্রুটিপূর্ণ হয়, f.e চেক করুন। stackoverflow.com/questions/7880784/... অতিরিক্তভাবে আপনি মেমরি ব্যবহারের জন্য উপরের পরিবর্তে পাইথন স্ক্রিপ্ট "ps_mem.py" ব্যবহার করতে চাইতে পারেন, অথবা প্রক্রিয়াটির সাথে সংযুক্ত / মূল্যের নির্দেশিকাগুলি সরাসরি ব্যবহার করতে পারেন - Dennis Nolte
আপনার যোগ করা নোটটির সম্পূর্ণ উত্তরটি যথাযথ কারণ: "আপনি কখনই অফার অফ দ্য-বক্স Apache কনফিগার ব্যবহার করবেন না"। আমরা যথেষ্ট এই চাপ করতে পারেন না। - ezra-s


এছাড়াও আমি স্থপতি এবং প্রকৌশলীদের সাথে কথা বলার পরামর্শ দিই যারা ডিজাইনগুলি ডিজাইন / বেতনের সনাক্তকরণ, ব্যর্থতার একক পয়েন্ট এবং লাইসেন্সিং সীমাবদ্ধতা সনাক্ত করার জন্য তৈরি করে।


0