1,000,000 ওয়েবসকেট খোলা রাখার জন্য কতটি সিস্টেমের সংস্থান রাখা হবে? [বন্ধ]


122

ওয়েবসাইটসকেট ভাল, তবে এটি 1,000,000 একযোগে সংযোগগুলি পরিচালনা করতে সক্ষম হবে?
1,000,000 ওয়েবসকেট খোলা রাখার জন্য কতটি সিস্টেমের সংস্থান রাখা হবে?

উত্তর:


65

আপডেট উত্তর

সংক্ষিপ্ত উত্তর : হ্যাঁ, তবে এটি ব্যয়বহুল।

দীর্ঘ উত্তর :

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

আসল প্রশ্নটি হ'ল: একটি একক সার্ভার এক সাথে 1000,000 একক সকেট সংযোগ পরিচালনা করতে পারে এবং এটি কোন সার্ভারের সংস্থানগুলি গ্রাস করতে পারে? উত্তরটি বেশ কয়েকটি কারণের দ্বারা জটিল, তবে সঠিকভাবে আকারের সিস্টেমের জন্য (প্রচুর সিপিইউ, র‌্যাম এবং দ্রুত নেটওয়ার্কিং) এবং একটি সুরযুক্ত সার্ভার সিস্টেম এবং অনুকূলিত সার্ভার সফ্টওয়্যার সহ 1,000,000 যুগপত সক্রিয় সকেট সংযোগগুলি সম্ভব।

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

৫০০,০০০ সংযোগের আনুমানিক সংস্থান ব্যবহার সম্পর্কে আলেসান্দ্রো অ্যালোননের উত্তর দেখুন।

আপনি কীভাবে আপনার সার্ভারটি কনফিগার করবেন এবং বিপুল সংখ্যক সংযোগ সমর্থন করার জন্য আপনার সার্ভার সফ্টওয়্যারটি লিখবেন তা পড়তে এখানে কিছু পুরানো তবে এখনও প্রযোজ্য সংস্থানগুলি রয়েছে:


1
একক জেভিএম-তে প্রায় 12 মিলিয়ন সকেট সংযোগ সম্ভব। তারা কীভাবে তা দেখুন mrotaru.wordpress.com/2013/10/10/…
জ্যাকস কোয়ার্টস

@ জ্যাকসকোর্টস থেক্স
বিজি

159

আজকের সিস্টেমে, 1 মিলিয়ন একযোগে টিসিপি সংযোগগুলি পরিচালনা করা কোনও সমস্যা নয়।

আমি আমাদের নিজস্ব পরীক্ষার উপর ভিত্তি করে এটি নিশ্চিত করতে পারি (সম্পূর্ণ প্রকাশ: আমি লাইটস্ট্রিমারের সিটিও)।

আমাদের বেশ কয়েকটি বার আমাদের গ্রাহকদের কাছে প্রদর্শন করতে হয়েছিল যে, একক বাক্সে 1 মিলিয়ন সংযোগ পৌঁছে যেতে পারে (এবং অগত্যা একটি সুপার-দৈত্য মেশিনও নয়)। তবে আমারা কনফিগারেশনটি পুনরায় নথিভুক্ত করি যেখানে আমরা 500 কে সমবর্তী সংযোগগুলি পরীক্ষা করেছি, কারণ এটি অ্যামাজন ইসি 2 তে সঞ্চালিত অনেক সাম্প্রতিক পরীক্ষা।

আমরা লাইটস্ট্রিমার সার্ভার ইনস্টল করেছি (যা একটি ওয়েবসকেট সার্ভার, অন্যান্য জিনিসের মধ্যে) একটি এম 2.4xlarge উদাহরণে। এর অর্থ 8 টি কোর এবং 68.4 জিবিবি মেমরি।

লাইটস্ট্রিমার সার্ভারে 500,000 একযোগে সংযোগ তৈরি করতে আমরা 11 টি ক্লায়েন্ট মেশিন চালু করেছি। পরীক্ষাটি কনফিগার করা হয়েছিল যাতে সার্ভার থেকে মোট আউটবাউন্ড থ্রুটপুটটি 90,000 আপডেট / সে ছিল, ফলস্বরূপ 450 এমবিট / এস আউটবাউন্ড ব্যান্ডউইথের শিখর।

সার্ভারটি কখনও কখনও 13 জিবিবি র‌্যাম ব্যবহার করে না এবং সিপিইউ প্রায় 60% স্থিতিশীল ছিল।

কমপক্ষে 30 জিবিবি র‌্যামের সাহায্যে আপনি 1 মিলিয়ন একযোগে সকেটগুলি পরিচালনা করতে পারেন। আপনার প্রয়োজনীয় সিপিইউ ডেটা থ্রুপুটের উপর নির্ভর করে।


7
আমি ধরে নিচ্ছি এটি লিনাক্সের কিছু স্বাদ ছিল। আপনি কী দয়া করে কার্নেলটি টিউন করা হয়েছিল সে সম্পর্কে অতিরিক্ত তথ্য ভাগ করতে পারেন? সর্বোচ্চ ফাইল বর্ণনাকারী / টিসিপি উইন্ডো মাপ ইত্যাদি?
কুইসভার

14
এটি ভ্যানিলা অ্যামাজন লিনাক্স ছিল। সর্বাধিক ফাইল বর্ণনাকারী বৃদ্ধি করা হয়েছিল। টিসিপি প্রেরণ বাফারকে 1600 বাইটে হ্রাস করা হয়েছে (লাইটস্ট্রিমারের দ্বারা ডিফল্টরূপে এটি করা হয়েছে, যদিও এটি ম্যানুয়ালি টিউন করা যেতে পারে)। এমএসএস ডিফল্ট ছিল।
আলেসান্দ্রো অ্যালিনোন

এই নরমটি কি সম্পূর্ণ নিখরচায় বা এটি ব্যবহারের জন্য কিছু ফি দরকার?
অ্যাভান্টিল কাভরালিশভিলি

@ অ্যাভান্ডিলক্যাভেরলিশভিলি: এখানে একটি বিনামূল্যে সংস্করণ এবং অর্থ প্রদানের সংস্করণ রয়েছে।
আলেসান্দ্রো অ্যালিনোন

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