আরে যেহেতু আমি এই উদ্ধৃতিটির লেখক, আমি উত্তর দেব :-)
বড় বড় সাইটে দুটি বড় সমস্যা রয়েছে: একযোগে সংযোগ এবং বিলম্ব। সাম্প্রতিক সংযোগটি ধীর ক্লায়েন্টগুলির কারণে ঘটে যা সামগ্রীগুলি ডাউনলোড করতে যুগে যুগে সময় নেয় এবং নিষ্ক্রিয় সংযোগের স্থিতিগুলির কারণে। সেই নিষ্ক্রিয় সংযোগের রাজ্যগুলি সংযোগ পুনঃব্যবহারের কারণে একাধিক অবজেক্টগুলি রাখা হয়, যা কিপ-লাইভ নামে পরিচিত, যা আরও বিলম্বিত করে বাড়িয়ে তোলে। যখন ক্লায়েন্টটি সার্ভারের খুব কাছাকাছি থাকে, তখন এটি সংযোগটি নিবিড়ভাবে ব্যবহার করতে পারে এবং নিশ্চিত করে যে এটি প্রায় অলস নয়। তবে যখন ক্রমটি শেষ হয়, কেউ চ্যানেলটি দ্রুত বন্ধ করার বিষয়ে চিন্তা করে না এবং সংযোগটি দীর্ঘ সময়ের জন্য উন্মুক্ত এবং অব্যবহৃত থেকে যায়। এ কারণেই অনেক লোক খুব কম রাখার জন্য টাইমআউট ব্যবহার করার পরামর্শ দেয়। অ্যাপাচি এর মতো কয়েকটি সার্ভারে, আপনি নির্ধারিত সর্বনিম্ন সময়সীমাটি এক সেকেন্ড এবং উচ্চ লোড বজায় রাখতে এটি প্রায়শই অনেক বেশি: যদি আপনার সামনে 20000 ক্লায়েন্ট থাকে এবং তারা প্রতি সেকেন্ডে গড়ে একটি করে বস্তু নিয়ে আসে তবে আপনার সেই 20000 সংযোগ স্থায়ীভাবে প্রতিষ্ঠিত হবে। অ্যাপাচি-এর মতো একটি সাধারণ উদ্দেশ্যে সার্ভারে 20000 একত্রে সংযোগগুলি বিশাল, কোনও মডিউলগুলি বোঝা হচ্ছে তার উপর নির্ভর করে র্যামের 32 থেকে 64 জিবি প্রয়োজন হবে এবং আপনি সম্ভবত র্যাম যুক্ত করে আরও বেশি উচ্চতায় যাওয়ার আশা করতে পারবেন না। অনুশীলনে, 20000 ক্লায়েন্টের জন্য আপনি এমনকি সার্ভারে 40000 থেকে 60000 সমবর্তী সংযোগগুলি দেখতে পাবেন কারণ ব্রাউজারগুলি যদি তাদের কাছে অনেকগুলি জিনিস আনার জন্য 2 থেকে 3 সংযোগ স্থাপনের চেষ্টা করবে। এবং আপনি সম্ভবত র্যাম যুক্ত করে আরও বেশি উচ্চতায় যাওয়ার আশা করতে পারবেন না। অনুশীলনে, 20000 ক্লায়েন্টের জন্য আপনি এমনকি সার্ভারে 40000 থেকে 60000 সমবর্তী সংযোগগুলি দেখতে পাবেন কারণ ব্রাউজারগুলি যদি তাদের কাছে অনেকগুলি জিনিস আনার জন্য 2 থেকে 3 সংযোগ স্থাপনের চেষ্টা করবে। এবং আপনি সম্ভবত র্যাম যুক্ত করে আরও বেশি উচ্চতায় যাওয়ার আশা করতে পারবেন না। অনুশীলনে, 20000 ক্লায়েন্টের জন্য আপনি এমনকি সার্ভারে 40000 থেকে 60000 সমবর্তী সংযোগগুলি দেখতে পাবেন কারণ ব্রাউজারগুলি যদি তাদের কাছে অনেকগুলি জিনিস আনার জন্য 2 থেকে 3 সংযোগ স্থাপনের চেষ্টা করবে।
আপনি যদি প্রতিটি বস্তুর পরে সংযোগটি বন্ধ করেন তবে একযোগে সংযোগের সংখ্যা নাটকীয়ভাবে হ্রাস পাবে। বস্তুতপক্ষে, এটি কোনও অবজেক্টের মধ্যবর্তী সময় অনুসারে কোনও সময় ডাউনলোড করার জন্য গড় সময়ের সাথে সম্পর্কিত একটি ফ্যাক্টর দ্বারা নামবে। যদি আপনার কোনও বস্তু (একটি ক্ষুদ্র চিত্র, একটি বোতাম, ইত্যাদি ...) ডাউনলোড করতে 50 এমএস দরকার হয় এবং আপনি উপরের হিসাবে প্রতি সেকেন্ডে গড়ে 1 অবজেক্টটি ডাউনলোড করেন তবে আপনার কাছে প্রতি ক্লায়েন্টের কাছে কেবল 0.05 সংযোগ থাকবে, যা মাত্র 1000 20000 ক্লায়েন্টের জন্য একযোগে সংযোগ।
এখন নতুন সংযোগ স্থাপনের সময় গণনা করা হচ্ছে। দূরবর্তী ক্লায়েন্টরা একটি অপ্রীতিকর বিলম্বিতা অনুভব করবে। অতীতে, ব্রাউজারগুলি জীবিত রাখার অক্ষম থাকাকালীন প্রচুর পরিমাণে সমবর্তী সংযোগগুলি ব্যবহার করত। আমি এমএসআইইতে 4 এবং নেটস্কেপে 8 এর চিত্রগুলি মনে করি। এটি আসলে প্রতি-বস্তুর গড় বিলম্বকে এত বেশি ভাগ করে দিত। এখন যে-জীবিত রাখা সর্বত্র উপস্থিত রয়েছে, আমরা সেই উচ্চ সংখ্যা আর দেখছি না, কারণ এটি করা দূরবর্তী সার্ভারগুলিতে লোডকে আরও বাড়িয়ে তোলে এবং ব্রাউজারগুলি ইন্টারনেটের অবকাঠামো সুরক্ষার জন্য যত্ন নেয়।
এর অর্থ হ'ল আজকের ব্রাউজারগুলির সাথে রাখে না-রাখে-জীবিত পরিষেবাদি রাখা-বেঁচে থাকা যতটা সাড়া পাওয়া যায় get এছাড়াও কিছু ব্রাউজার পাইপলাইনিং ব্যবহারের চেষ্টা করার জন্য হিউরিস্টিক্স ব্যবহার করে। পাইপলাইনিং চালিয়ে যাওয়া ব্যবহারের একটি কার্যকর উপায়, কারণ এটি কোনও প্রতিক্রিয়া অপেক্ষা না করে একাধিক অনুরোধ প্রেরণ করে বিলম্বকে প্রায় দূর করে। আমি এটি একটি পৃষ্ঠাতে 100 টি ছোট ছবি সহ চেষ্টা করেছি, এবং প্রথম অ্যাক্সেসটি বেঁচে থাকা ছাড়াই প্রায় দ্বিগুণ দ্রুত, তবে পরবর্তী অ্যাক্সেসটি প্রায় 8 গুণ দ্রুত, কারণ প্রতিক্রিয়াগুলি এত কম যে কেবলমাত্র বিলম্বিত গণনা (কেবলমাত্র "304" প্রতিক্রিয়া)।
আমি বলব যে আদর্শভাবে আমাদের ব্রাউজারগুলিতে কিছু আনুষাঙ্গিক থাকা উচিত যাতে তারা আনীত বস্তুর মধ্যে সংযোগগুলি বাঁচিয়ে রাখতে পারে এবং পৃষ্ঠাটি সম্পূর্ণ হওয়ার সাথে সাথে এটি ফেলে দেওয়া হয়। তবে আমরা দুর্ভাগ্যজনকভাবে তা দেখছি না।
এই কারণে, কিছু সাইটগুলির জন্য যা সাধারণ উদ্দেশ্যে সার্ভারগুলি ইনস্টল করতে হবে যেমন সম্মুখ দিকে অ্যাপাচি এবং যেগুলি প্রচুর পরিমাণে ক্লায়েন্টকে সমর্থন করতে হয় তাদের সাধারণত চালিয়ে রাখা অক্ষম করতে হয়। এবং ব্রাউজারগুলিকে সংযোগের সংখ্যা বাড়াতে বাধ্য করার জন্য, তারা একাধিক ডোমেন নাম ব্যবহার করে যাতে ডাউনলোডগুলি সমান্তরাল করা যায়। এটি এসএসএলকে নিবিড়ভাবে ব্যবহার করা সাইটগুলিতে বিশেষত সমস্যাযুক্ত কারণ একটি অতিরিক্ত রাউন্ড ট্রিপ থাকায় সংযোগ সেটআপটি আরও বেশি।
আজকাল যে বিষয়টি বেশি দেখা যায় তা হ'ল এই জাতীয় সাইটগুলি হালকা সামনের অংশ যেমন হ্যাপ্রোক্সি বা এনজিনেক্স ইনস্টল করতে পছন্দ করে, যা কয়েক সহস্র সহস্রাধিক সংযোগগুলি পরিচালনা করতে কোনও সমস্যা হয় না, তারা ক্লায়েন্টের পক্ষ থেকে জীবিত রাখতে সক্ষম করে এবং এটি অক্ষম করে অ্যাপাচি পাশ। এই দিকে, সংযোগ স্থাপনের ব্যয় সিপিইউ-র শর্তাবলী প্রায় শূন্য, এবং সময়ের নিরিখে একেবারেই লক্ষ্যযোগ্য নয়। এইভাবে এটি উভয় পৃথিবীর সেরাটি সরবরাহ করে: ক্লায়েন্টের পক্ষে খুব কম সময়সীমার সাথে সার্ভিস সাইডে সংযোগের সংখ্যা কম থাকায় বেঁচে থাকার কারণে কম অলসতা। সবাই খুশি :-)
কিছু বাণিজ্যিক পণ্য সামনের লোড ব্যালেন্সার এবং সার্ভারের মধ্যে সংযোগগুলি পুনরায় ব্যবহার করে এবং সেগুলির উপরে সমস্ত ক্লায়েন্ট সংযোগগুলি মাল্টিপ্লেক্স করে এটিকে আরও উন্নত করে। সার্ভারগুলি যখন এলবির নিকটবর্তী হয়, পূর্ববর্তী সমাধানের তুলনায় লাভটি খুব বেশি হয় না তবে একাধিক ব্যবহারকারীর মধ্যে সংযোগের অপ্রত্যাশিত ভাগ করে নেওয়ার কারণে ব্যবহারকারীদের মধ্যে সেশন পারাপারের ঝুঁকি না থাকে তা নিশ্চিত করার জন্য প্রায়শই অ্যাপ্লিকেশনটিতে অভিযোজন প্রয়োজন হয় ensure । তত্ত্বের ক্ষেত্রে এটি কখনই ঘটে না। বাস্তবতা অনেক আলাদা :-)