উত্তর:
আপডেট উত্তর
সংক্ষিপ্ত উত্তর : হ্যাঁ, তবে এটি ব্যয়বহুল।
দীর্ঘ উত্তর :
এই প্রশ্নটি ওয়েবসকেটগুলির পক্ষে অনন্য নয় যেহেতু ওয়েবসকেটগুলি এইচটিটিপি-এর মতো হ্যান্ডশেক এবং বার্তাগুলির জন্য ন্যূনতম ফ্রেমিং সহ মূলত দীর্ঘস্থায়ী টিসিপি সকেট।
আসল প্রশ্নটি হ'ল: একটি একক সার্ভার এক সাথে 1000,000 একক সকেট সংযোগ পরিচালনা করতে পারে এবং এটি কোন সার্ভারের সংস্থানগুলি গ্রাস করতে পারে? উত্তরটি বেশ কয়েকটি কারণের দ্বারা জটিল, তবে সঠিকভাবে আকারের সিস্টেমের জন্য (প্রচুর সিপিইউ, র্যাম এবং দ্রুত নেটওয়ার্কিং) এবং একটি সুরযুক্ত সার্ভার সিস্টেম এবং অনুকূলিত সার্ভার সফ্টওয়্যার সহ 1,000,000 যুগপত সক্রিয় সকেট সংযোগগুলি সম্ভব।
সংযোগের সংখ্যা প্রাথমিক সমস্যা নয় (এটি বেশিরভাগ ক্ষেত্রে কেবল কার্নেল টিউন এবং পর্যাপ্ত মেমরির প্রশ্ন), এটি প্রতিটি সংযোগের / থেকে ডেটা প্রসেসিং / প্রেরণ করা। যদি আগত সংযোগগুলি দীর্ঘ সময়ের মধ্যে ছড়িয়ে পড়ে এবং তারা বেশিরভাগই অলস বা অবিচ্ছিন্নভাবে স্থিতিশীল ডেটার ছোট অংশ প্রেরণ করে থাকে তবে আপনি সম্ভবত একসাথে 1000,000 সংযোগের চেয়েও বেশি পেতে পারেন। যাইহোক, এই শর্তগুলির মধ্যেও (ধীরে ধীরে সংযোগগুলি যেগুলি বেশিরভাগ নিষ্ক্রিয়) আপনি এখনও নেটওয়ার্ক, সার্ভার সিস্টেম এবং সার্ভার লাইব্রেরিগুলির সাথে সমস্যায় চলে যাবেন যা বিপুল সংখ্যক সংযোগগুলি হ্যান্ডেল করার জন্য কনফিগার করা হয়নি এবং নকশাকৃত নয়।
৫০০,০০০ সংযোগের আনুমানিক সংস্থান ব্যবহার সম্পর্কে আলেসান্দ্রো অ্যালোননের উত্তর দেখুন।
আপনি কীভাবে আপনার সার্ভারটি কনফিগার করবেন এবং বিপুল সংখ্যক সংযোগ সমর্থন করার জন্য আপনার সার্ভার সফ্টওয়্যারটি লিখবেন তা পড়তে এখানে কিছু পুরানো তবে এখনও প্রযোজ্য সংস্থানগুলি রয়েছে:
আজকের সিস্টেমে, 1 মিলিয়ন একযোগে টিসিপি সংযোগগুলি পরিচালনা করা কোনও সমস্যা নয়।
আমি আমাদের নিজস্ব পরীক্ষার উপর ভিত্তি করে এটি নিশ্চিত করতে পারি (সম্পূর্ণ প্রকাশ: আমি লাইটস্ট্রিমারের সিটিও)।
আমাদের বেশ কয়েকটি বার আমাদের গ্রাহকদের কাছে প্রদর্শন করতে হয়েছিল যে, একক বাক্সে 1 মিলিয়ন সংযোগ পৌঁছে যেতে পারে (এবং অগত্যা একটি সুপার-দৈত্য মেশিনও নয়)। তবে আমারা কনফিগারেশনটি পুনরায় নথিভুক্ত করি যেখানে আমরা 500 কে সমবর্তী সংযোগগুলি পরীক্ষা করেছি, কারণ এটি অ্যামাজন ইসি 2 তে সঞ্চালিত অনেক সাম্প্রতিক পরীক্ষা।
আমরা লাইটস্ট্রিমার সার্ভার ইনস্টল করেছি (যা একটি ওয়েবসকেট সার্ভার, অন্যান্য জিনিসের মধ্যে) একটি এম 2.4xlarge উদাহরণে। এর অর্থ 8 টি কোর এবং 68.4 জিবিবি মেমরি।
লাইটস্ট্রিমার সার্ভারে 500,000 একযোগে সংযোগ তৈরি করতে আমরা 11 টি ক্লায়েন্ট মেশিন চালু করেছি। পরীক্ষাটি কনফিগার করা হয়েছিল যাতে সার্ভার থেকে মোট আউটবাউন্ড থ্রুটপুটটি 90,000 আপডেট / সে ছিল, ফলস্বরূপ 450 এমবিট / এস আউটবাউন্ড ব্যান্ডউইথের শিখর।
সার্ভারটি কখনও কখনও 13 জিবিবি র্যাম ব্যবহার করে না এবং সিপিইউ প্রায় 60% স্থিতিশীল ছিল।
কমপক্ষে 30 জিবিবি র্যামের সাহায্যে আপনি 1 মিলিয়ন একযোগে সকেটগুলি পরিচালনা করতে পারেন। আপনার প্রয়োজনীয় সিপিইউ ডেটা থ্রুপুটের উপর নির্ভর করে।