প্রশ্ন লোড ভারসাম্য আলগোরিদিম কি ধরনের আছে


আমি HTTP এর জন্য বিভিন্ন লোড ব্যালান্সিং অ্যালগরিদমগুলি অনুসন্ধান করছিলাম এবং আমি কেবল 3 টি সন্ধান পেয়েছিলাম। র্যান্ডম, রৌপ্য রবিন এবং ওজনযুক্ত রাউন্ড রবিন। অন্য কোন বিকল্প আছে?

ধন্যবাদ পল


27
2018-02-12 15:34


উত্স




উত্তর:


HTTP লোড ব্যালান্সারগুলির জন্য সর্বাধিক সাধারণ ভারসাম্য অ্যালগরিদম IMHO:

  • রাউন্ড রবিন (কখনও কখনও "পরবর্তী ইন লুপ" বলা হয়)।

  • ওজনযুক্ত গোলাকার রবিন - গোলাকার রবিন হিসাবে, তবে কিছু সার্ভার সামগ্রিক ট্র্যাফিকের একটি বৃহত্তর ভাগ পায়।

  • এলোমেলো

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

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

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

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

  • সংক্ষিপ্ত বিলম্বিতPerlbal সার্ভারগুলির ব্যাক-আপ করার জন্য একটি দ্রুত HTTP বিকল্প অনুরোধ করে এবং উত্তর দেওয়ার জন্য প্রথম সার্ভারকে অনুরোধ পাঠায়।

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

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

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

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


28
2018-02-20 10:50





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

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

CPUs সম্পৃক্তি নিতে পারে; স্বাভাবিক দৃষ্টিকোণ পিছনে হয় - এটির টান পরিবর্তে একটি সম্পদ এ ধাক্কা।

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

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

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

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

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

রিটুইট


4
2018-02-12 16:17



আপনি প্রশ্ন রিচার্ড অনুপস্থিত, অ্যালগরিদম কোনো পদ্ধতি বা বাস্তবায়ন ভিত্তিতে। - monomyth
দুঃখিত monomyth, আমি একটি damned জিনিস মিস করবেন না। আপনার মনকে প্রসারিত করুন. - Richard T
@monomyth, @ রিচার্ড সঠিক - অ্যালগরিদম পছন্দ আপনি ভারসাম্য লোড করছেন উপর নির্ভর করে। আপনি ব্যালেন্স ডিস্ক স্পেস ভারসাম্য লোড করতে একটি অ্যালগরিদম বিকাশ করতে পারেন এবং এটি অন্য কিছুতে যেমন HTTP অনুরোধগুলির মতো প্রয়োগ করতে পারে না। - Josh
@ জশ, @ রিচার্ড, লোড ভারসাম্য ধারণার ধারণা একই। ডিস্ক ব্যবহার, iSCSI, HTTP, CPU, কিছু ব্যালেন্স করার জন্য আপনি এখনও রাউন্ড রবিন ব্যবহার করতে পারেন। - Mark Henderson♦
@ ফার্সিকার আমি একমত, রাউন্ড রবিন বেশ সার্বজনীন। কিন্তু টাস্ক নির্দিষ্ট নির্দিষ্ট লোড ভারসাম্য আলগোরিদিম আছে না? - Josh


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

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

আমার 2 সি। YMMV।

PS: একটি চেহারা নিতে এলভিএস প্রকল্প - আপনি স্পষ্টভাবে ভারসাম্য ভারসাম্য নির্ধারণ বাস্তবায়ন তথ্য পাবেন।


0
2018-02-13 22:00



কুল। লিঙ্কের জন্য ধন্যবাদ! - Paul Sheldrake