কী ধরণের লোড ব্যালেন্সিং অ্যালগরিদম রয়েছে


32

আমি এইচটিটিপি-র জন্য পৃথক লোড ব্যালেন্সিং অ্যালগরিদমগুলি নিয়ে গবেষণা করছিলাম এবং আমি সন্ধান পেয়েছি 3.. র্যান্ডম, রাউন্ড রবিন এবং ওয়েটেড রাউন্ড রবিন। অন্য কোন বিকল্প আছে?

ধন্যবাদ পল

উত্তর:


33

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

  • রাউন্ড রবিন (কখনও কখনও "লুপে নেক্সট" নামে পরিচিত)।

  • ওজনযুক্ত রাউন্ড রবিন - রাউন্ড রবিন হিসাবে, তবে কিছু সার্ভার সামগ্রিক ট্র্যাফিকের একটি বড় অংশ পায়।

  • এলোমেলো

  • সোর্স আইপি হ্যাশ। সংযোগগুলি সোর্স আইপি ঠিকানার ভিত্তিতে ব্যাকএন্ড সার্ভারগুলিতে বিতরণ করা হয়। যদি কোনও ওয়েবনড ব্যর্থ হয় এবং পরিষেবা থেকে বাইরে নিয়ে যায় তবে বিতরণ পরিবর্তন হয়। যতক্ষণ না সমস্ত সার্ভার একটি প্রদত্ত ক্লায়েন্টের আইপি ঠিকানাটি চালাচ্ছে সর্বদা একই ওয়েব সার্ভারে যাবে।

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

  • স্বল্প সংযোগ , ওজনযুক্ত সর্বনিম্ন সংযোগ। লোড ব্যালান্সার প্রতিটি সার্ভারের জন্য মুক্ত সংযোগের সংখ্যা পর্যবেক্ষণ করে এবং সর্বনিম্ন ব্যস্ত সার্ভারে প্রেরণ করে।

  • সর্বনিম্ন ট্র্যাফিক , স্বল্পতম ট্র্যাফিক। লোড ব্যালেন্সার প্রতিটি সার্ভার থেকে বিটরেট পর্যবেক্ষণ করে এবং সর্বনিম্ন বহির্গমন ট্র্যাফিক রয়েছে এমন সার্ভারে প্রেরণ করে।

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

তাত্ক্ষণিকভাবে উপরেরগুলি কঠোর কম্পিউটার বিজ্ঞানের অর্থে অ্যালগরিদম নয়, এগুলি সাধারণ পদ্ধতির আরও সাধারণ বিবরণ। এখানে সিসকোর একটি ছোট্ট কাগজ রয়েছে যা তারা আরও বিশদে ব্যবহার করে এমন কিছু অ্যালগরিদম বর্ণনা করে । অন্যান্য বিক্রেতাদের কাছ থেকে বাস্তবায়ন কিছুটা আলাদা হবে।

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

  • একটি ভাগ / বিতরণকৃত সেশন সিস্টেম , যাতে কোনও ওয়েবনোড যে কোনও ব্যবহারকারীর অনুরোধের উত্তর দিতে পারে (যেমন ব্যবহারকারী সেশন ডেটা যেমন সেশন কুকিজ সমস্ত সার্ভারের জন্য সমানভাবে উপলব্ধ)।

  • রাউন্ড রবিন (বিকল্পভাবে ওয়েটেড রাউন্ড রবিন) বা র্যান্ডম বিতরণ ব্যবহার করে ভারসাম্য লোড করুন Lo রাউন্ড রবিন এবং র্যান্ডম কোনও 'হট স্পট' সমস্যা ছাড়াই সহজ এবং নমনীয় অ্যালগরিদম, অর্থাত্ ব্যাকেন্ডে লোড বিতরণ সমস্ত পরিস্থিতিতে ন্যায্য থাকে।


5

প্রশ্নটি অসম্পূর্ণ:

ভার ভারসাম্য কি?

সিপিইউগুলিতে স্যাচুরেশন লাগতে পারে; স্বাভাবিক দৃষ্টিকোণটি পিছনের দিকে - কোনও উত্স এ টানার পরিবর্তে চাপ দেওয়া।

ডিস্কগুলিতে ভারসাম্য রক্ষার জন্য বিভিন্ন ধরণের বোঝা থাকে যেমন স্থান, গতি পড়ার, গতি লেখার, থ্রুপুট ইত্যাদি balance

নেটওয়ার্কগুলি বিলম্বিতা বা মোট থ্রুপুটের উপর ভিত্তি করে লোড ভারসাম্য করা যেতে পারে ...

ব্যক্তি স্বতন্ত্র সামর্থ্যের ভিত্তিতে লোড ভারসাম্যপূর্ণ হতে পারে; কিছু মাল্টি টাস্ক ভাল, অন্যদের না এবং তারপরে মানের বনাম পরিমাণ আছে। আপনি বিভিন্ন কারণের উপর ভিত্তি করে এবং বিভিন্ন গুণকে দেওয়া বিভিন্ন ওজনের সাথে আপনার মানব সম্পদগুলি অনুকূল করতে পারেন।

উপরোক্ত পরিসংখ্যান থেকে অনেক দূরে; মুল বক্তব্যটি হ'ল বিভিন্ন সংস্থান সম্পূর্ণরূপে বিভিন্ন ধরণের লোড ভারসাম্য গ্রহণ করে। তাদের উপলব্ধ বৈশিষ্ট্য এবং ক্ষমতাগুলির মধ্যে আপনাকে যেটি ভারসাম্য বজায় রাখতে আগ্রহী তা উল্লেখ করতে হবে।

আপনি যা ভারসাম্য বজায় রাখার চেষ্টা করছেন তা হ'ল একটি ভাল ব্যালেন্সিং অ্যালগরিদম তৈরির প্রথম মাপদণ্ড। এবং পরামর্শ যে কেবল তিনটি রয়েছে ... অশিক্ষিত। "ভারসাম্য ভারসাম্যহীন" সমস্ত উপায়ে চিত্রিত করার চেষ্টা করে একটি উপযুক্ত কাজ করা পিএইচডি করার উপযুক্ত হবে।

রিটুইট


2
আপনি রিচার্ড প্রশ্নটি মিস করছেন, অ্যালগরিদমগুলি কোনও পদ্ধতি বা বাস্তবায়নের ভিত্তি।
সোমমথ

2
দুঃখিত একদিন, আমি একটি জঘন্য জিনিস মিস করিনি। আপনার মনকে প্রসারিত করুন.
রিচার্ড টি

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

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

@ ফারসিকার আমি সম্মত, রাউন্ড রবিন বেশ সর্বজনীন। কিন্তু কাজের সাথে সুনির্দিষ্ট কিছু লোড ব্যালেন্সিং অ্যালগরিদমগুলি নেই?
জোশ

0

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

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

আমার 2 সি। YMMV।

পিএস: এলভিএস প্রকল্পটি একবার দেখুন - আপনি অবশ্যই ভারসাম্যের শিডিয়ুলিং বাস্তবায়ন সম্পর্কিত তথ্য পাবেন।

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