আসুন ব্যবহারিক পদ্ধতি গ্রহণ করা যাক।
এই সমস্ত সীমাবদ্ধতা হ'ল হার্ডওয়্যার ধীর এবং ব্যয়বহুল যখন বিগত শতাব্দীতে হার্ডকডড এবং ডিজাইন করা ছিল things আমরা এখন ২০১ in সালে আছি, একটি গড় ওয়াল-মার্ট টোস্টার ডিফল্ট মানগুলির চেয়ে বেশি অনুরোধগুলি প্রক্রিয়া করতে পারে।
ডিফল্ট সেটিংস আসলে বিপজ্জনক। একটি ওয়েবসাইটে শত শত ব্যবহারকারী থাকা চিত্তাকর্ষক কিছুই নয়।
worker_process
একটি সম্পর্কিত সেটিং, আসুন আমরা বিষয়টি নিয়ে থাকাকালীন এটি ব্যাখ্যা করি।
লোড ব্যালেন্সার হিসাবে nginx:
- এইচটিটিপি লোড ব্যালেন্সিংয়ের জন্য 1 জন কর্মী।
- এইচটিপিএস লোড ভারসাম্যের জন্য কোর প্রতি 1 জন কর্মী।
ওয়েব সার্ভার হিসাবে nginx:
এই এক কঠিন।
কিছু অ্যাপ্লিকেশন / ফ্রেমওয়ার্ক / মিডলওয়্যার (যেমন পিএইচপি-এফপিএম) এনজিএনএক্সের বাইরে চালিত হয়। সেক্ষেত্রে, 1 এনজিনেক্স কর্মী যথেষ্ট কারণ এটি সাধারণত বাহ্যিক প্রয়োগ যা ভারী প্রক্রিয়াজাতকরণ করে এবং সংস্থানগুলি খাচ্ছে।
এছাড়াও, কিছু অ্যাপ্লিকেশন / ফ্রেমওয়ার্ক / মিডলওয়্যার কেবল একবারে একটি অনুরোধ প্রক্রিয়া করতে পারে এবং সেগুলি ওভারলোড করার জন্য ব্যাকফায়ার হয়।
সাধারণভাবে বলতে গেলে, 1 জন কর্মী সর্বদা একটি নিরাপদ বাজি।
অন্যথায়, আপনি কী করছেন তা আপনি যদি জানেন তবে আপনি প্রতি জন প্রতি কর্মী রেখে যেতে পারেন। আমি সেই রুটটিকে একটি অপ্টিমাইজেশন হিসাবে বিবেচনা করব এবং সঠিক বেঞ্চমার্কিং এবং পরীক্ষার পরামর্শ দেব।
worker_connections
সংযোগের মোট পরিমাণ worker_process * worker_connections
। লোড ব্যালেন্সার মোডে অর্ধেক।
এখন আমরা টোস্টার অংশে পৌঁছেছি। অনেকগুলি গুরুতরভাবে আন্ডাররেটেড সিস্টেম সীমা রয়েছে:
- ইউলিমিটগুলি লিনাক্সের প্রক্রিয়া অনুযায়ী 1 কে সর্বাধিক খোলার ফাইল (1 কে নরম, কিছু ডিস্ট্রোতে 4k শক্ত)
- সিস্টেমিত সীমাগুলি প্রায় ওলিমিটের সমান।
- nginx ডিফল্ট হ'ল শ্রমিক প্রতি 512 সংযোগ।
- আরও কিছু থাকতে পারে: সেলইনাক্স, সিস্কিটল, সুপারভাইজার (প্রতিটি ডিস্ট্রো + সংস্করণ কিছুটা আলাদা)
1 কে কর্মী_সংযোগ
নিরাপদ ডিফল্ট হ'ল সর্বত্র 1k স্থাপন করা।
এটি বেশিরভাগ অভ্যন্তরীণ এবং অজানা সাইটগুলির মুখোমুখি হওয়ার চেয়ে বেশি হওয়ার পক্ষে যথেষ্ট। এটি অন্য কোনও সিস্টেমের সীমাতে আঘাত না করার পক্ষে যথেষ্ট কম।
10 কে কর্মী_সংযোগ
বিশেষত একটি পাবলিক ওয়েবসাইটের জন্য হাজার হাজার ক্লায়েন্ট থাকা খুব সাধারণ। কম ডিফল্টের কারণে আমি যে পরিমাণ ওয়েবসাইট দেখেছি সেগুলি গণনা বন্ধ করে দিয়েছি।
উত্পাদনের জন্য সর্বনিম্ন গ্রহণযোগ্য 10 কে। এটির অনুমতি দেওয়ার জন্য সম্পর্কিত সিস্টেমের সীমা বাড়াতে হবে।
খুব বেশি সীমাবদ্ধতার মতো কোনও জিনিস নেই (ব্যবহারকারী না থাকলে সীমাবদ্ধতার কোনও প্রভাব নেই)। তবে খুব কম-সীমাবদ্ধতা হ'ল একটি আসল জিনিস যার ফলে প্রত্যাখ্যাত ব্যবহারকারী এবং একটি মৃত সাইটের ফলাফল site
10 কেও বেশি
10 কে সুন্দর এবং সহজ।
আমরা এক নির্বিচার 1000kk সীমা নির্ধারণ করতে পারি (এটি সর্বোপরি কেবল একটি সীমা) তবে এটি ব্যবহারিকভাবে বোঝায় না, আমরা কখনই সেই ট্র্যাফিক পাই না এবং যাইহোক এটি নিতে পারি না।
আসুন 10 কে যুক্তিসঙ্গত সেটিং হিসাবে আটকে দিন। আরও যে পরিষেবাগুলির জন্য চলছে (এবং সত্যই করতে পারে) তার জন্য বিশেষ টিউনিং এবং বেঞ্চমার্কিং প্রয়োজন।
বিশেষ পরিস্থিতি: উন্নত ব্যবহার
কখনও কখনও, আমরা জানি যে সার্ভারের খুব বেশি সংস্থান নেই এবং আমরা স্পাইকগুলি আশা করি যা আমরা খুব বেশি করতে পারি না। আমরা বরং চেষ্টা করার চেয়ে ব্যবহারকারীদের প্রত্যাখ্যান করব। সেক্ষেত্রে যুক্তিসঙ্গত যুক্তি সীমাবদ্ধ রাখুন এবং দুর্দান্ত ত্রুটি বার্তা এবং পরিচালনা পরিচালনা করুন hand
কখনও কখনও, ব্যাকএন্ড সার্ভারগুলি ভাল এবং ভালভাবে কাজ করে তবে কিছুটা লোড পর্যন্ত , আরও কিছু এবং সবকিছু দক্ষিণে চলে যায়। আমরা বরং সার্ভারগুলির ক্র্যাশ হওয়ার চেয়ে ধীর হব। সেক্ষেত্রে, কড়া সীমাবদ্ধতার সাথে কুইউনিং কনফিগার করুন, অনুরোধগুলি যখন একটি গতিযুক্ত গতিতে নিষ্কাশন করা হচ্ছে তখন এনজিনেক্স সমস্ত উত্তাপটি বাফার করুন।