উবুন্টু 14.04 সার্ভারে অ্যাপাচি কীভাবে টিউন করবেন


18

উবুন্টু 14.04 এ বর্তমানে আমার অ্যাপাচি 2 এ (অ্যাপাচি ২.৪. exact সঠিক হতে হবে), আমার এই সেটিংটি রয়েছে:

/etc/apache2/mods-enabled/mpm_prefork.conf

<IfModule mpm_prefork_module>
StartServers                    20
MinSpareServers                 100
MaxSpareServers                 250
MaxRequestWorkers               150
MaxConnectionsPerChild          0
</IfModule>

সার্ভারটি একটি 8 জিবি (র‌্যাম) অ্যামাজন সার্ভার যা কিছু গুগল বিজ্ঞাপন প্রচারের জন্য তিন পৃষ্ঠার সাইনআপ ফর্মটি লোড করা ছাড়া আর কিছুই করে না।

আমি ওয়েবে apachetuneit.sh নামে একটি স্ক্রিপ্ট পেয়েছি , কিন্তু তারপরে কিছুক্ষণ পরে আপাচি এই ত্রুটিটি জানিয়েছিল:

[মঙ্গলবার এপ্রিল 21 16: 45: 42.227935 2015] [এমপিএম_প্রেফার্ক: ত্রুটি] [পিড 1134] এএইচ 16161: সার্ভার ম্যাক্সরেকুয়েস্ট ওয়ার্কার্সের সেটিংয়ে পৌঁছেছে, ম্যাক্সরেকুয়েস্ট ওয়ার্কার্স সেটিংস উত্থাপনের কথা বিবেচনা করুন

এই সেটিংসটি কীভাবে সেট করবেন আমি কীভাবে বিচার করতে পারি?

আমি কেবলমাত্র অ্যাপাচি ২.৪ টি টিউন করার জন্য বিশেষভাবে জিজ্ঞাসা করছি এবং অন্য কিছুই নয়। এই কেন এই প্রশ্ন থেকে আলাদা হয় এই প্রশ্নের



@ জেনিডি এই নিবন্ধটি এই নির্দিষ্ট প্রয়োজনের জন্য অনেক বেশি বিস্তৃত।
সার্ভারচেকার

আপনি এই নির্দিষ্ট সেটিংসের যেভাবে বিচার করেন তা হ'ল লোড টেস্টিং।
জেনি ডি

@ জেনিডি এটি এর চেয়েও সহজ। প্রতিদিন এবং গড় সময়ে একাধিকবার নিয়মিত লোডের অধীনে মাত্র ap.sh স্ক্রিপ্টটি ব্যবহার করুন, নীচের ক্লাউডইনসার্ভাইস লিঙ্কে গণিত করুন এবং ম্যাক্সউকোয়েস্ট ওয়ার্কার্সকে সেই মানটিতে সেট করুন। তারপরে, ম্যাক্সেকুয়েস্ট ওয়ার্কার্সের সাথে ঝামেলার জন্য অ্যাপাচি লগগুলি দেখুন এবং হয় বাড়ান, আরও র‌্যাম যুক্ত করুন, ক্লাউডফ্লেয়ার যুক্ত করুন, বা অন্য কোনও ওয়েব নোড যুক্ত করুন। অত্যন্ত তীব্র লোড পরীক্ষা করার দরকার নেই।
সার্ভারচেকার

আমি সেই স্ক্রিপ্ট সম্পর্কিত তথ্য এবং আপনার নিজের উত্তরের অন্তর্ভুক্ত লিঙ্কগুলি থেকে প্রাসঙ্গিক স্টাফ যুক্ত উত্তর লিখতে পারলাম, যে প্রশ্নটি আমি একটি সম্ভাব্য সদৃশ হিসাবে চিহ্নিত করেছি to
জেনি ডি

উত্তর:


45
  1. সনাক্ত করুন যে উবুন্টু 14.04 একটি এমপিএম_প্রেফরোক মডিউল দিয়ে চলতে থাকা পিএইচপি দিয়ে অ্যাপাচি 2 ব্যবহার করে , যার মধ্যে একটি সম্পাদনাযোগ্য ফাইল /etc/apache2/mods-enabled/mpm_prefork.conf এ রয়েছে। এছাড়াও, সনাক্ত করুন যে অ্যাপাচি ২.৪-এ শুরু হওয়া, ম্যাক্সক্লিয়েন্টসটির নাম এখনই ম্যাক্সউকুয়েস্ট ওয়ার্কার্স হিসাবে রাখা হয়েছে , এবং ম্যাক্সক্লিয়েন্ট সম্পর্কিত যে কোনও নথিপত্র ম্যাক্সউইকয়েস্ট ওয়ার্কার্সে স্যুইচ করা দরকার।

  2. অস্থায়ীভাবে নিম্নলিখিত কমান্ডটি দিয়ে অ্যাপাচি ওয়েব পরিষেবা বন্ধ করুন:

    sudo পরিষেবা apache2 স্টপ
  1. 5 সেকেন্ড অপেক্ষা করুন এবং তারপরে নিখরচায় সার্ভারে আপনার কত ভার্চুয়াল মেমরি রয়েছে তা জানতে নিম্নলিখিত কমান্ডটি চালান:
    sudo ফ্রি -ht

মেমো: লাইনটি পড়ুন এবং ফ্রি কলামটি দেখুন। এটি আপনি যে পরিমাণ র‌্যামকে আপাচে উত্সর্গ করতে পারেন তা হিসাবে বিবেচনা করুন, যদিও আমি সাধারণত একটি বিফায়ার সার্ভারে (যেমন 4 জিবি) বা 2 জিবি হালকা সার্ভারে 2 জিবি কর্তন করতে চাই। সুতরাং, যদি ফ্রি কলামটি আমার কাছে 13 জিবি বিনামূল্যে বলে থাকে, তবে আমি অ্যাপাচি 11 গিগাবাইট দেওয়ার প্রস্তাব দিই। এটি একটি বেসলাইন। যদি আমরা মাঝে মাঝে লগগুলিতে কোনও ডাটাবেসের সমস্যার মুখোমুখি হই (যেমন 3 দিনের সময়কালে লগগুলিতে 3 বারের মতো) যেটির আরও মেমরির প্রয়োজন হয়, তবে আমরা বিবেচনা করতে পারি যে আমাদের কেবল 11 গিগাবাইটের পরিবর্তে খেলতে হবে 10 গিগাবাইট (এই ক্ষেত্রে) )। যদি আমরা অ্যাপাচি লগগুলিতে মুখোমুখি হই যে সার্ভারটির আরও ম্যাক্সেকুয়েস্ট ওয়ার্কারস প্রয়োজন, তবে এটি নীচে পৃথকভাবে সম্বোধন করব separate

  1. অ্যাপাচি ওয়েব সার্ভার শুরু করুন।
    sudo পরিষেবা apache2 শুরু
  1. ব্রাউজারের 10 টি ট্যাবের মতো খুলুন, আপনার ওয়েবসাইট থেকে আপনার আরও কিছু বা ধীর-লোড পৃষ্ঠাগুলির সাথে সংযুক্ত করুন এবং প্রতিটি ট্যাবে 3-4 বারের মতো রিফ্রেশ করুন।

  2. এটি করার পরে দ্রুত নিম্নলিখিত কমান্ডটি চালান:

    sudo PS -ylC apache2 | awk '{x + = $ 8; y + = 1} END {মুদ্রণ "অ্যাপাচি মেমোরি ইউজ (এমবি):" x / 1024; "গড় প্রক্রিয়া আকার (এমবি):" x / ((y-1) * 1024) print 'মুদ্রণ করুন

দ্রুত 5 বার এটি চালান।

গড় প্রক্রিয়া আকারের মানটি দেখুন এবং আপনি যে 5 বার দৌড়েছিলেন তার মধ্যে গড় মানটি।

এখন নিম্নলিখিত গণিতটি করুন এবং গিগাবাইটকে এমবিতে প্রয়োজনীয় হিসাবে রূপান্তর করতে ভুলবেন না যাতে সমস্ত নম্বর এমবি মানগুলিতে থাকে। সুতরাং, হয় 1024 গুণ বা 1024 দ্বারা ভাগ করুন, আপনার কোন পথে যেতে হবে তার উপর নির্ভর করে।

ম্যাকআরকেয়েস্ট ওয়ার্কার্স = বেসলাইন ফ্রি (বাফার স্পেস সহ) / গড় প্রক্রিয়া আকার

উদাহরণস্বরূপ, আমার কাছে একটি 14 জিবি সার্ভার ছিল, তবে অ্যাপাচি যখন সার্ভারটি বন্ধ করা হয়েছিল তখন দেখায় এটি অলস অবস্থায় 1 জিবি র‌্যাম ব্যবহার করে। তারপরে ওএসের প্রয়োজন হলে আমি আরও 1 জিবি অতিরিক্ত কিছু বাফার স্পেস সরবরাহ করি। তার মানে আমার কাছে 12GB এর বেসলাইন ফ্রি থাকবে। এখন আমাকে এটি অবশ্যই জিবি থেকে এমবিতে রূপান্তর করতে হবে, এবং তাই আমি 12 x 1024 গুণব এবং 12288 পেয়েছি। 12288 এমবিটি আমার বেসলাইন ফ্রি মান। আমার ক্ষেত্রে আমি দেখেছি গড় প্রক্রিয়া আকার 21MB was সুতরাং, আমি 12288/21 নিই এবং আমি আনুমানিক 585 পাই Now এখন, এই মূল্যটি প্রায় অদম্য হয়ে পড়েছে এটি সাধারণ।

  1. /Etc/apache2/mods-enabled/mpm_prefork.conf ফাইলটি সম্পাদনা করুন এবং আপনার ম্যাক্সউয়েভেস্ট ওয়ার্কার গণনার সাথে XXX কে প্রতিস্থাপন করে নিম্নলিখিত ডিফল্টগুলিতে সেট করা বিবেচনা করুন:


`<IfModule mpm_prefork_module>`
  StartServers                    2
  MinSpareServers                 2
  MaxSpareServers                 5
  MaxRequestWorkers               XXX
  ServerLimit                     XXX
  MaxConnectionsPerChild          0
</IfModule>

নোট করুন যে আপনি সেখানে সার্ভারলিমিট প্যারামিটারটি দেখতে পাবেন না। এটি যোগ করুন। এই পরামিতিটি উপস্থিত না থাকলে 256 এ ডিফল্ট হয় তবে ম্যাক্সরেকুয়েস্ট ওয়ার্কার্সের সমান মান হওয়া দরকার বা আপনি একটি ত্রুটি পাবেন।

  1. আপনার অ্যাপাচি কনফিগারেশনের আর একটি সমালোচক বিষয় হ'ল সময়সীমা ভেরিয়েবল সহ /etc/apache2/apache2.conf ফাইল এবং কয়েক সেকেন্ডে পরিমাপ করা হয়। এটি শেষ হওয়ার আগে আপনি কতক্ষণ সার্ভার থেকে পাঠাতে বা গ্রহণ করতে পারবেন। আপনাকে একটি ফাইল আপলোড বা ফাইল ডাউনলোড মনে রাখতে হবে, যেমন আপনার কাছে এমন কোনও ওয়েবসাইট রয়েছে যেখানে লোকেরা সিএসভি বা অন্যান্য বড় ফাইলগুলি আপলোড বা ডাউনলোড করতে পারে, উদাহরণস্বরূপ। এবং আপনাকে একটি ব্যস্ত ডাটাবেস সার্ভার এবং যেখানে পৃষ্ঠাগুলির সময়সীমা শেষ হওয়ার আগে আপনাকে কিছুটা সময় দেওয়ার প্রয়োজন হতে পারে তা মনে রাখা দরকার। আপনি যে টাইমআউটটিকে পরিবর্তনশীল হিসাবে তত ছোট করবেন ওয়েব সার্ভারটি আরও নতুন সংযোগ গ্রহণ করবে। নোট, তবে, এই মানটি খুব কম সেট করা পিএইচপি সেশন ভেরিয়েবলগুলির সাথে বিপর্যয় ডেকে আনতে পারে যদিও ব্রাউজারের সেশন-ভিত্তিক কুকিজের সাথে নয়। সুতরাং, উদাহরণস্বরূপ, ব্রাউজার সেশন কুকিজের পরিবর্তে ওয়েব অ্যাপ্লিকেশন কর্মপ্রবাহের জন্য পিএইচপি সেশন ভেরিয়েবলের উপর নির্ভর করে এমন একটি ওয়েব সার্ভারের জন্য 300 (5 মিনিটের) মান ভাল হতে পারে। 45 টির মান একটি ওয়েব সার্ভারের পক্ষে ভাল হতে পারে যা স্থির বিজ্ঞাপনের অবতরণ পৃষ্ঠাগুলি ছাড়া আর কিছুই সরবরাহ করে না, তবে এমন একটি সার্ভারের জন্য ভয়ঙ্কর হতে পারে যা পিএইচপি সেশন ভেরিয়েবলগুলি খুব বেশি ব্যবহার করতে হবে। সুতরাং, আপনার প্রয়োজনীয় পরিমাণে এই ফাইলটিতে টাইমআউট প্যারামিটার সম্পাদনা করুন। মানটি খুব কম কিনা তা দেখতে এটি আপনার সমস্ত ওয়েব পৃষ্ঠাগুলির সাথে কিছু পরীক্ষা নিতে পারে। আপনি যদি বড় ফাইল আপলোড বা বড় ফাইল ডাউনলোডে সমস্যা না দেখেন তবে এটি 300 এর চেয়ে বেশি সেট না করা সম্ভবত এটি একটি ভাল ধারণা। তবে এমন কোনও সার্ভারের জন্য ভয়ঙ্কর হতে পারে যা পিএইচপি সেশন ভেরিয়েবলগুলি ব্যবহার করতে হবে। সুতরাং, আপনার প্রয়োজনীয় পরিমাণে এই ফাইলটিতে টাইমআউট প্যারামিটার সম্পাদনা করুন। মানটি খুব কম কিনা তা দেখতে এটি আপনার সমস্ত ওয়েব পৃষ্ঠাগুলির সাথে কিছু পরীক্ষা নিতে পারে। আপনি যদি বড় ফাইল আপলোড বা বড় ফাইল ডাউনলোডে সমস্যা না দেখেন তবে এটি 300 এর চেয়ে বেশি সেট না করা সম্ভবত এটি একটি ভাল ধারণা। তবে এমন কোনও সার্ভারের জন্য ভয়ঙ্কর হতে পারে যা পিএইচপি সেশন ভেরিয়েবলগুলি ব্যবহার করতে হবে। সুতরাং, আপনার প্রয়োজনীয় পরিমাণে এই ফাইলটিতে টাইমআউট প্যারামিটার সম্পাদনা করুন। মানটি খুব কম কিনা তা দেখতে এটি আপনার সমস্ত ওয়েব পৃষ্ঠাগুলির সাথে কিছু পরীক্ষা নিতে পারে। আপনি যদি বড় ফাইল আপলোড বা বড় ফাইল ডাউনলোডে সমস্যা না দেখেন তবে এটি 300 এর চেয়ে বেশি না সেট করা সম্ভবত এটি একটি ভাল ধারণা।

  2. এখন আপনার অ্যাপাচি ওয়েব পরিষেবা পুনরায় চালু করুন। আপনি যদি কিছু ভুল করে থাকেন তবে আপাচি সম্ভবত আপনাকে আবার এটি শুরু করার মুহুর্তে এটি সম্পর্কে বলবে এবং আপনি এটি সংশোধন করতে পারবেন।

    sudo পরিষেবা apache2 পুনরায় আরম্ভ করুন
  1. আপনি আগের 10 টি ট্যাব ব্রাউজারের কৌশলটি পুনরাবৃত্তি করুন এবং দেখুন যে আপনি অ্যাপাচি ওয়েব সার্ভার ত্রুটি লগটিতে অ্যাপাচি কনফিগারেশন ত্রুটির সম্মুখীন হন:
    sudo লেজ -f /var/log/apache2/error.log

... এটি থেকে বেরিয়ে আসতে CTRL + C টিপুন, আপনার চাইলে।

ম্যাক্সউকুয়েস্ট ওয়ার্কার্সের প্রয়োজন সম্পর্কে অভিযোগের সন্ধান করুন (এবং সম্প্রতি আপনি ওয়েব সার্ভারটি পুনরায় চালু করার পরে)। আপনি যদি দেখতে পান যে এমনকি সর্বোত্তম ম্যাক্সেকুয়েস্ট ওয়ার্কার্স সেটিংস সহ, তবে আপনার সম্ভবত আপনার ওয়েবসাইট বা ওয়েব অ্যাপ্লিকেশনগুলির জন্য আরও ফায়ার পাওয়ার দরকার। এই বিকল্পগুলি বিবেচনা করুন:

  • বড় ফাইল ডাউনলোড, চিত্র এবং স্ক্রিপ্টগুলির জন্য সিডিএন ব্যবহার করে।
  • ক্লাউডফ্লেয়ার বা অন্যদের মতো ক্যাচিং পরিষেবা ব্যবহার করা।
  • আপনার ওয়েবসাইট বা ওয়েব অ্যাপ্লিকেশন কৌশলটি লোড ব্যালান্সারের পিছনে এক "ওয়েব অ্যাপ" হিসাবে অভিনয় করে একাধিক ওয়েব সার্ভার ব্যবহার করার জন্য Red
  • সার্ভারে আরও র‌্যাম যুক্ত করা হচ্ছে এবং এইভাবে আবার এই গণনাটি করা হচ্ছে।

  1. এখন যখন অ্যাপাচি সার্ভারটি টিউন করা হয়েছে, তবে এটি একরকম বেসলাইনটি সুরযুক্ত। আপনাকে 2-3 সপ্তাহের মধ্যে এটি পরীক্ষা করে দেখতে হবে এবং অ্যাপাচি ত্রুটির লগগুলিতে ম্যাক্সরেকুয়েস্ট ওয়ার্কার সমস্যাগুলি সন্ধান করতে হবে। এর থেকে, আপনি অপ্টিমাইজেশনের বিষয়ে সিদ্ধান্ত নিতে পারেন (পদক্ষেপ 10 দেখুন)। আপনি উবুন্টুতে অ্যাপটি সহ মুনিনও ইনস্টল করতে পারেন এবং সময়ের সাথে সাথে অ্যাপাচি পারফরম্যান্সটি দেখতে পারেন এবং ওয়েব সার্ভারটি যে পরিমাণ ট্রাফিক পরিচালনা করছে তার পরিমাণ সম্পর্কে আপনার কিছু করার দরকারের সিদ্ধান্ত নেওয়ার আগে আপনি বৃদ্ধির ধারণা নিয়ে প্লট করতে পারেন।

“যদিও এই লিঙ্কগুলি প্রশ্নের উত্তর দিতে পারে তবে উত্তরের প্রয়োজনীয় অংশগুলি এখানে অন্তর্ভুক্ত করা এবং রেফারেন্সের জন্য লিঙ্কটি সরবরাহ করা ভাল। লিঙ্কযুক্ত উত্তরগুলি লিঙ্কযুক্ত পৃষ্ঠা পরিবর্তন হলে অবৈধ হতে পারে ”"
জেনি ডি

@ জেনিডি গুড পয়েন্ট! আমি এটা করবো.
সার্ভারচেকার

@ মোডারেটর এই উত্তরটির জন্য আমার ফর্ম্যাটিং সহায়তা দরকার। Step ম ধাপে ইনডেন্টের সাথে কনফ ফাইল হওয়া উচিত ছিল। 11 তম পদক্ষেপটি অভিযুক্ত হওয়ার কথা ছিল না। কোড কমান্ডগুলি শুরু হয় sudoযা কোড হিসাবে প্রদর্শিত হবে, সাধারণ পাঠ্য হিসাবে নয়। আমি ফর্ম্যাট করার ডকুমেন্টেশন অনুসরণ করেছি, কিন্তু এখনও এখানে সংগ্রাম।
সার্ভারচেকার

1
আমি যা করতে পেরেছিলাম তা করেছি - মার্কডাউন সত্যিই খুব ভাল মিশ্র তালিকাগুলি এবং কোড করে না, তবে আমি মনে করি যে যাই হোক আমি এটিকে কিছুটা আরও ভালভাবে পরিচালনা করতে পেরেছি।
জেনি ডি

আমার মতো সেন্টোস নবাগতদের জন্য: PS -lyC অ্যাপাচি 2 এর পরিবর্তে PS -lyU অ্যাপাচি
ইউজার 1928596

3

আপনার প্রতিটি httpd / অ্যাপাচি প্রক্রিয়া কতটা র‌্যাম নেয় তা নির্ভর করে আপনি ম্যাক্সেউকোয়েস্ট ওয়ার্কার্সকে কী উত্থাপন করতে পারবেন তার উপর নির্ভর করে। যদি প্রত্যেকে 50 এমবি করে (কেবল একটি এলোমেলো সংখ্যা বাছাই করে) নেয়, তবে আপনার প্রতি 20 অনুরোধ কর্মী একবারে ব্যবহার করছেন (অর্থাত্ সমবর্তী সংযোগগুলি) 1 জিবি গ্রহণ করবে। সুতরাং সেই উদাহরণে, আপনার সর্বাধিক 8 জিবি * 20 = 160 ম্যাকআরকোয়েস্ট ওয়ার্কার্স থাকতে পারে। তবে আপনি অ্যাপাচের জন্য সমস্ত র‌্যাম ব্যবহার করতে পারবেন না, সেখানে চলমান অন্যান্য জিনিসের জন্য আপনার কিছু সংরক্ষণের প্রয়োজন। কিছু বাড়তি র‌্যাম রেখে পারফরম্যান্সের জন্য সহায়ক হতে পারে কারণ ওএস জিনিসগুলি ক্যাশে করতে এবং পারফরম্যান্সকে গতিতে ব্যবহার করবে (যদিও সার্ভারের অতিরিক্ত দ্রুত হওয়া তুলনামূলকভাবে সংযোগগুলি শেষ না করাই ভাল কারণ সাইটটি ধীর হয়ে যাওয়ার সময় দেখা যাবে) ব্যবহারকারীর ব্রাউজারগুলি যদি সমস্ত ব্যবহার হয়ে যায় তবে কোনও সংযোগ উপলভ্য হওয়ার জন্য অপেক্ষা করে)।


এটি প্রোফাইল করার একটি ভাল উপায় কি? প্রতিটি অ্যাপাচি প্রক্রিয়া লোডের নিচে কতটা র‌্যাম ব্যবহার করে তা দেখতে আমি কোন আদেশগুলি টাইপ করতে পারি? আমাদের মাইএসকিউএল (একটি ওয়ার্ডপ্রেস সাইট) এবং সাধারণ সিস্টেম প্রক্রিয়াগুলির জন্য র‌্যাম রুমও প্রয়োজন।
সার্ভারচেকার

কতগুলি প্রক্রিয়া চলছে তা দেখুন এবং freeমেমরির বেসলাইন পেতে কমান্ডটি চালান । তারপরে MinSpareServers বাড়িয়ে, অ্যাপাচি পুনরায় চালু করে, freeআবার দৌড়াতে এবং গণিতটি চালিয়ে প্রক্রিয়াগুলির সংখ্যা বাড়ান । পরীক্ষা করে দেখুন moreofless.co.uk/apache-memory-usage আরো বিস্তারিত জানার এবং ব্যাখ্যা জন্য।
g491

আমি এখন শিখেছি যে এটি করার একটি দুর্দান্ত দ্রুত উপায় আছে। এটি নীচে আমার উত্তরে ক্লাউডইনসারওয়াইস ডটকম লিঙ্কে বর্ণিত। কমান্ডটি ap.sh হ'ল যে কোনও ব্যক্তি আবিষ্কার করেছিলেন। এছাড়াও, আমি শিখেছি যে ম্যাক্সক্লিয়েন্টস এখন অ্যাপাচি ২.৪++ এ ম্যাক্সরেকুয়েস্ট ওয়ার্কার্স হিসাবে নামকরণ করা হয়েছে।
সার্ভারচেকার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.