উইলি আমাকে ইমেলের মাধ্যমে একটি উত্তর পেয়েছে। আমি ভেবেছিলাম আমি এটি ভাগ করে নেব। তাঁর উত্তরগুলি সাহসী।
আমার হাইপোক্সি কনফিগারেশন সম্পর্কে আমার একটি প্রশ্ন রয়েছে:
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
log 127.0.0.1 syslog emerg
maxconn 4000
quiet
user haproxy
group haproxy
daemon
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
mode http
log global
option abortonclose
option dontlognull
option httpclose
option httplog
option forwardfor
option redispatch
timeout connect 10000 # default 10 second time out if a backend is not found
timeout client 300000 # 5 min timeout for client
timeout server 300000 # 5 min timeout for server
stats enable
listen http_proxy localhost:81
balance roundrobin
option httpchk GET /empty.html
server server1 myip:80 maxconn 15 check inter 10000
server server2 myip:80 maxconn 15 check inter 10000
আপনি দেখতে পাচ্ছেন এটি সরাসরি এগিয়ে রয়েছে তবে ম্যাক্সকন বৈশিষ্ট্যগুলি কীভাবে কাজ করে তা সম্পর্কে আমি কিছুটা বিভ্রান্ত।
লিজ ব্লকটিতে সার্ভারে গ্লোবাল ওয়ান এবং ম্যাক্সকন রয়েছে।
এবং লিজ ব্লকে আরও একটি রয়েছে যা 2000 এর মতো কোনও কিছুর কাছে ডিফল্ট।
আমার চিন্তাভাবনাটি হ'ল: বিশ্বব্যাপী একটি পরিষেবা হিসাবে হ্যাপ্রোক্সি মোট সংযোগের পরিচালনা করে যা এক সময় ক্রিয়া বা প্রক্রিয়াজাত হয়।
সঠিক। এটি সম-সংযোগের প্রতি-প্রক্রিয়া সর্বাধিক সংখ্যক।
যদি সংখ্যাটি এর উপরে চলে যায় তবে এটি সংযোগটি মেরে ফেলবে, বা কোনও লিনাক্স সকেটের পুলগুলি?
পরে এটি কেবল নতুন সংযোগ গ্রহণ করা বন্ধ করে দেয় এবং তারা কার্নেলের সকেট লাইনে থেকে যায়। কুইয়েবল সকেটের সংখ্যা নির্ধারিত হয় (নেট.কম.সোম্যাক্সন, নেট.ipv4.tcp_max_syn_backlog, এবং শ্রবণ ব্লকের ম্যাক্সকন) এর মিনিট দ্বারা।
সংখ্যাটি 4000 এর বেশি হলে কী হয় তা আমার কোনও ধারণা নেই।
অতিরিক্ত সংযোগগুলি গ্রহণযোগ্য হওয়ার আগে আরেকটি সম্পন্ন হওয়ার জন্য অপেক্ষা করে। যাইহোক, যতক্ষণ না কার্নেলের সারিটি স্যাচুরেট না করা হয় ততক্ষণ ক্লায়েন্ট এটি লক্ষ্য করে না, কারণ সংযোগটি টিসিপি স্তরে গৃহীত হয়েছে তবে প্রক্রিয়াজাত করা হচ্ছে না। সুতরাং ক্লায়েন্ট কেবল অনুরোধটি প্রক্রিয়া করতে কিছু বিলম্ব লক্ষ্য করে। তবে বাস্তবে, শোনার ব্লকের ম্যাক্সকনটি অনেক বেশি গুরুত্বপূর্ণ, যেহেতু ডিফল্টরূপে এটি বিশ্বব্যাপী থেকে ছোট। শোনার ম্যাক্সকন শ্রোতার প্রতি সংযোগের সংখ্যা সীমাবদ্ধ করে। সাধারণভাবে আপনি পরিষেবার জন্য যে সংযোগগুলি চান তার সংখ্যার জন্য এটি কনফিগার করা এবং আপনি হ্যাপ্রোক্সি প্রক্রিয়াটি পরিচালনা করতে দিন এমন বৈশ্বিক ম্যাক্সকনকে সর্বাধিক সংযোগের জন্য কনফিগার করা বুদ্ধিমানের কাজ। যখন আপনার কেবল একটি পরিষেবা রয়েছে, উভয়ই একই মানতে সেট করা যেতে পারে। তবে যখন আপনার অনেক পরিষেবা রয়েছে,
তারপরে আপনার সার্ভারটি ম্যাক্সকন সম্পত্তি 15 এ সেট করা আছে First পিএইচপি-এফপিএম এর পরিবর্তে অনুরোধগুলি এখানে পুলিং করা হচ্ছে। যা আমি দ্রুত বলে মনে করি।
হ্যাঁ, এটি কেবল দ্রুত হওয়া উচিত নয়, এটি হ্যাপ্রোক্সিটিকে যখনই সম্ভব অন্য আর একটি উপলভ্য সার্ভার সন্ধান করার অনুমতি দেয় এবং ক্লায়েন্টটি সার্ভারে ফরোয়ার্ড দেওয়ার আগে ক্লায়েন্ট "স্টপ" হিট করে তবে এটি কাতারে অনুরোধটি হ্রাস করতে দেয়।
তবে বিষয়টিতে ফিরে এই সংখ্যার বিষয়ে আমার তত্ত্বটি এই ব্লকের প্রতিটি সার্ভারেই একযোগে কেবল 15 সংযোগ পাঠানো হবে। এবং তারপরে সংযোগগুলি একটি মুক্ত সার্ভারের জন্য অপেক্ষা করবে। যদি আমার কুকিগুলি চালু থাকে তবে সংযোগগুলি সঠিক ওপেন সার্ভারের জন্য অপেক্ষা করত। কিন্তু আমি না।
ঠিক এটাই নীতি। এখানে প্রতি-প্রক্সি সারি এবং প্রতি সার্ভারের সারি রয়েছে। একটি অধ্যবসায় কুকির সাথে সংযোগগুলি সার্ভার কাতারে যায় এবং অন্যান্য সংযোগগুলি প্রক্সি সারিতে যায়। তবে যেহেতু আপনার ক্ষেত্রে কোনও কুকি কনফিগার করা হয়নি, সমস্ত সংযোগগুলি প্রক্সি সারিতে চলে যায়। আপনি চাইলে হ্যাপ্রোক্সি উত্সগুলিতে ডায়াগ্রাম ডক / কুইটিং.ফিগটি দেখতে পারেন, এটি কীভাবে / কোথায় সিদ্ধান্ত নেওয়া হয় তা ব্যাখ্যা করে।
সুতরাং প্রশ্নগুলি হ'ল:
গ্লোবাল সংযোগগুলি 4000 এর উপরে উঠলে কী হবে? তারা কি মারা যায়? নাকি লিনাক্সের পুল কোনওভাবে?
তারা লিনাক্স মধ্যে সারিবদ্ধ। একবার আপনি কার্নেলের সারিটি ছেয়ে ফেললে সেগুলি কার্নেলে ফেলে দেওয়া হবে।
সার্বিক সংযোগগুলির সাথে কি বিশ্বব্যাপী সংযোগ সম্পর্কিত, আপনার কাছে বৈশ্বিকের চেয়ে মোট সংখ্যক সার্ভার সংযোগ থাকতে পারে না?
না, গ্লোবাল এবং সার্ভার সংযোগ সেটিংস স্বতন্ত্র।
গ্লোবাল সংযোগগুলি নির্ধারণ করার সময়, এটি কী সার্ভার বিভাগে সংযুক্ত পরিমাণের পরিমাণ, এবং পুলিংয়ের জন্য নির্দিষ্ট শতাংশের মতো হওয়া উচিত নয়? এবং স্পষ্টতই আপনার সংযোগগুলিতে অন্যান্য সংযম রয়েছে তবে প্রকৃতপক্ষে প্রকৃতপক্ষে আপনি কতজন প্রেরণ করতে চান?
আপনি ঠিক ধরেছেন. যদি আপনার সার্ভারের প্রতিক্রিয়া সময়টি অল্প হয়, একসাথে কেবল কয়েকটি পরিবেশন করতে কয়েক হাজার সংযোগ সারি করার কোনও সমস্যা নেই কারণ এটি অনুরোধ প্রক্রিয়াকরণের সময়টিকে যথেষ্ট পরিমাণে হ্রাস করে। ব্যবহারিকভাবে, আজকাল সংযোগ স্থাপনে গিগাবিট ল্যানে প্রায় 5 টি মাইক্রোসেকেন্ড লাগে। সুতরাং হ্যাপ্রোক্সিটি খুব সামান্য ম্যাক্সকন সহ একটি সার্ভারে তার কাত থেকে যত দ্রুত সম্ভব সংযোগগুলি বিতরণ করতে দেয় তা অনেক অর্থবোধ করে। আমার মনে আছে একটি গেমিং সাইট 30000 এরও বেশি সংযোগকারী সংযোগগুলি সারিবদ্ধ করছে এবং প্রতি সার্ভারে 30 এর সারি নিয়ে চলছে! এটি অ্যাপাচি সার্ভার ছিল এবং বড় সংখ্যার তুলনায় অল্প সংযোগের সাথে অ্যাপাচি অনেক দ্রুত। তবে এর জন্য আপনার সত্যিই একটি দ্রুত সার্ভারের প্রয়োজন, কারণ আপনি ডন ' টি আপনার সমস্ত ক্লায়েন্টকে সংযোগ স্লটের জন্য অপেক্ষা করতে চায় না কারণ সার্ভারটি উদাহরণস্বরূপ একটি ডাটাবেসের জন্য অপেক্ষা করছে। এছাড়াও কিছু যা খুব ভাল কাজ করে তা হ'ল সার্ভারগুলি উত্সর্গ করা। আপনার সাইটে যদি অনেকগুলি স্ট্যাটিকস থাকে তবে আপনি স্থির অনুরোধগুলি সার্ভারের পুলগুলিতে (বা ক্যাশে) পরিচালনা করতে পারেন যাতে আপনি তাদের উপর স্থির অনুরোধগুলি সারি না করেন এবং স্থির অনুরোধগুলি ব্যয়বহুল সংযোগ স্লট না খায়। এই আশা করে, উইলি