এইচএ প্রক্সি - রাউন্ড্রোবিন বনাম সর্বনিম্ন


10

আমি roundrobinকখন ব্যবহার করব এবং কখন ব্যবহার করব leastconn?

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

কোন ধারণা ভাগ?

উত্তর:


12

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

আপনি যখন বলছেন যে লোডটি সমানভাবে বিতরণ করা হয় না, এটি "লোড "টিকে আরও কিছুটা সংজ্ঞায়িত করতে সহায়তা করতে পারে। আপনি যদি সার্ভার রিসোর্স বোঝাতে চান তবে আমি বোঝাতে চাইছি ঠিক কী কী কারণে বোঝা বাড়ছে (যেমন কিছু সংযোগের সংযোগ রয়েছে) এবং সেখান থেকে পিছনে কাজ করা।


4

এটি ভারসাম্য রক্ষার জন্য প্রোটোকল এবং ব্যবহারের ক্ষেত্রে কী নির্ভর করে। যে কোনও সংযোগের পরিমাণ বোঝা / ব্যবহারের সাথে সম্পর্কিত, সেখানে ব্যবহার করা ভাল leastconn। নেটওয়ার্ক এবং অ্যাপ্লিকেশনগুলি যেভাবে কাজ করে সে কারণে এটি প্রায়শই সত্য এবং আপনি leastconnডিফল্টরূপে ব্যবহার করা ভাল ।

আরডিপি / এক্স 11 রিমোট ডেস্কটপ / জাম্প হোস্ট

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

ব্যবহারের ক্ষেত্রে সক্রিয় সংযোগগুলির সংখ্যা মোটামুটি "এখনই কতজন কর্মচারী সেই ডেস্কটপটি ব্যবহার করছেন" is সর্বনিম্ন সংযোগের সাথে থাকা হোস্টের এটি ব্যবহারের জন্য সর্বনিম্ন কর্মচারী থাকে এবং এটি সম্ভবত কম লোড হয়। এই পরিস্থিতিতে "সর্বনিম্ন" ব্যবহার করুন, এটি ব্যবহারকারীর পরিমাণের সাথে সমানভাবে লোডটি ছড়িয়ে দেয়।

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

এইচটিটিপি / এইচটিটিপিএস

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

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

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

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

আমার অভিজ্ঞতায়, এমন ভূমিকার সাথে যেখানে আমি মাঝারি থেকে বড় ওয়েবসাইটগুলির জন্য পারফরম্যান্স টেস্টিং করছি testing এইচটিটিপি (এস) এর leastconnমতো 300% দক্ষ হতে পারে roundrobinroundrobinসংযোগটি মোটামুটি বিতরণ করে না এবং এটি উচ্চ লোডে অস্থিরতা সৃষ্টি করবে।

ডিএনএস অনুরোধ

(আসুন এড়িয়ে চলুন যে HAProxy ইউডিপি সমর্থন করে না এবং ইউডিপি সংযোগ কম)।

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

এই ক্ষেত্রে, সত্যিই কোনও সংযোগ নেই। সেখানে থাকলেও তা তাত্ক্ষণিকভাবে বন্ধ হয়ে যাবে (তাত্ত্বিকভাবে)।

এই পরিস্থিতিতে সংযোগগুলি গণনা করার কোনও অর্থ হবে না, এটি অনুকূল নয় leastconn। একটি সাধারণ roundrobinবার্তা বিতরণ করতে পারেন।

একটি সাধারণ ভুল বোঝাবুঝি

লোকেরা কখনও কখনও বিশ্বাস করে যে তাদের leastconnস্বল্পকালীন সংযোগগুলির জন্য ব্যবহার করা উচিত নয় (শেষ উদাহরণের মতো)। এমনকি HAProxy ডকুমেন্টেশনও এ সম্পর্কে বিভ্রান্ত করছে।

leastconn
          Use of this algorithm is recommended where very long sessions are
          expected, such as LDAP, SQL, TSE, etc... but is not very well
          suited for protocols using short sessions such as HTTP.
          [misleading advice, should ignore it]

বাস্তব জগতে, short connectionsএকটি জিনিস নয়।

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

একটি বেসিক HTTP সার্ভারের কথা চিন্তা করুন। কিছু সংস্থান কয়েক মিলিসেকেন্ড নেয়, কিছু এপিআই কলগুলি কয়েক সেকেন্ড সময় নেয়, কোনও পৃষ্ঠার মধ্যে এটির যে কোনও পরিমাণ অনুরোধ সহ লোড হতে সময় লাগতে পারে ইত্যাদি Requ leastconnচলমান ক্রিয়াকলাপটি বোঝে এবং বিতরণটি সামঞ্জস্য করে যা লোড ব্যালান্সারের কাছ থেকে আপনি যা চান ঠিক তেমনই।

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