অ্যাপাচি মেমরি ব্যবহার অপ্টিমাইজেশন


11

অ্যাপাচি আমার সার্ভারের মেমরির প্রচুর পরিমাণে এটি ক্রাশ হওয়ার কারণ ব্যবহার করছে। সার্ভারে আমার 4 জিবি র‌্যাম রয়েছে।

আমি এটির পারফরম্যান্সটি উন্নত করার জন্য অ্যাপাচি সেটিংস টিউন করার চেষ্টা করছি তবে আমি এটিতে বেশ নতুন।

আমি এই নিবন্ধটির পরামর্শ অনুসরণ করার চেষ্টা করছিলাম তবে আমি কীভাবে জিনিসগুলি গণনা করব তা নিশ্চিত নই এবং মনে হয় আমি এটিকে আরও খারাপ করে দিচ্ছি।

আমার শীর্ষগুলি পড়ে:

11697 apache    15   0  322m  37m 4048 S  0.0  0.9   0:00.52 httpd
13602 apache    15   0  323m  37m 3944 S  0.0  0.9   0:00.50 httpd
11786 apache    15   0  322m  36m 4052 S  0.0  0.9   0:00.50 httpd
12525 apache    15   0  322m  36m 4040 S  0.0  0.9   0:00.63 httpd
11806 apache    15   0  322m  36m 3952 S  0.0  0.9   0:00.42 httpd
11731 apache    15   0  322m  36m 4036 S  0.0  0.9   0:00.46 httpd
11717 apache    16   0  322m  36m 3956 S  0.0  0.9   0:00.54 httpd
11659 apache    15   0  322m  36m 3980 S  0.0  0.9   0:00.49 httpd

সুতরাং, এটি হবে

MaxClients = 3000/ (322-37) = 10

এটা কি সঠিক? এছাড়াও, অন্যান্য পরামিতিগুলির যেমন মিনস্পারসার্ভারস, ম্যাক্স্পায়ার সার্ভারস, ম্যাক্সেরেক্সেস্টপিয়ারচিল্ড, স্টার্টসার্ভারস, মিনস্পারথ্রেডস, ম্যাক্সপ্যারেথ্রেডস, থ্রেডসপ্রেইচিল্ড, ম্যাক্সেরেস্কেস্টপিয়ারচিল্ডের মানগুলি কী হওয়া উচিত?

কেউ আমাকে সাহায্য করবে?

হালনাগাদ

আপনারা যা পরামর্শ দিয়েছেন তা আমি চেষ্টা করেছি। এটি কাজ করে তবে কিছুক্ষণের জন্য। সার্ভারটি শুরু হওয়ার পরে কিছুক্ষণ পরে মেমরির ব্যবহার বাড়তে থাকে এবং কখনই কমে না।

আমি বোঝাতে চাইছি, সার্ভারটি শুরু করার পরে, আসুন অনলাইনে 500 জন ব্যবহারকারীকে ধরে নেওয়া যাক। সার্ভার এক্স র‌্যাম ব্যবহার করবে। তার ২ ঘন্টা পরে অনলাইনে একই 500 জন ব্যবহারকারী সহ সার্ভারটি 10 ​​এক্স র‌্যাম গ্রহণ করবে।

এটি এড়ানোর কোনও উপায় আছে বা আমাকে সময়-সময় সার্ভারটি দেখতে এবং পুনরায় চালু করতে হবে?


1
আপনার প্রশ্নের আপডেট যুক্ত করার সময়, দয়া করে উত্তর পোস্ট করার পরিবর্তে মূলটি সম্পাদনা করুন। এটি আবার প্রথম পৃষ্ঠার শীর্ষে প্রশ্ন bumping যোগ বোনাস আছে।
বেন পিলব্রো

উত্তর:


14

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

টিউন MaxClientsকরার একটি উপায় হ'ল সিস্টেমের মেমোরির ব্যবহারটি পর্যবেক্ষণ করা এবং প্রয়োজনীয়তা অনুসারে সেটআপ আপ / ডাউনটি সামঞ্জস্য করা। যদি সার্ভারটি পরিবর্তন করতে শুরু করে তবে এটিকে সম্পাদনা করুন। সার্ভারে যদি ফ্রি মেমরি থাকে তবে এটি আপ করুন।

আপনি অ্যাপাচি এর মেমরি ব্যবহার দেখে সর্বাধিক মান অনুমান করতে পারেন। প্রক্রিয়াগুলি মেমরি অনুসারে বাছাই করতে শুরু করুন topএবং টিপুন M। আপনার কিছু দেখতে হবে:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
18698 apache    17   0  141m  59m  41m S  0.0  1.6   4:57.46 httpd
18591 apache    17   0  141m  59m  41m S  0.0  1.5   4:54.79 httpd
22917 apache    16   0  141m  57m  39m S  0.0  1.5   4:57.44 httpd
18595 apache    16   0  142m  57m  38m S  0.0  1.5   5:23.43 httpd
18697 apache    16   0  139m  56m  41m S  0.0  1.5   5:09.29 httpd
18735 apache    25   0  141m  56m  38m S  0.0  1.5   5:05.32 httpd

প্রতি অ্যাপাচে ইনস্ট্যান্সের আনুমানিক মেমরির ব্যবহার পেতে আরইএস এবং এসএইচআর কলামগুলি বিয়োগ করুন। এই ক্ষেত্রে এটি প্রায় 16MB B যদি আমার 4 গিগাবাইট র‍্যাম থাকে এবং এটি 3 গিগাবাইট অ্যাপাচি ব্যবহার করার জন্য চান তবে আমার ম্যাক্সক্লিয়েন্টস সেটিংটি প্রায় হবে:

MaxClients = 3000/16 = 188

সুতরাং, এই ক্ষেত্রে, আমি 150-200 এর মান দিয়ে শুরু করতে পারি তবে আমি মেমরির ব্যবহারটি দেখব এবং যদি এটি কখনও সোয়াপ ব্যবহারের কাছাকাছি আসতে শুরু করে তবে আমি ম্যাক্সক্লিয়েন্টসকে 10-20% হ্রাস করতে পারি। আরও মনে রাখবেন যে 3 গিগাবাইটের মানটি একটি এলোমেলো উদাহরণ। সার্ভারগুলিতে কেবল অ্যাপাচি চলমান রয়েছে আমি প্রায় 4 জিবি প্রায় সমস্তই ব্যবহার করতে সক্ষম হতে পারি। অন্যান্য ক্ষেত্রে আমি অন্যান্য অ্যাপ্লিকেশন, সিস্টেম বা ক্যাশে থাকা বাকী কেবল অ্যাপাচি-র জন্য কেবল 1 বা 2GB চাই want

সম্পাদনা করুন: অতিরিক্ত প্রশ্নের উত্তর দেওয়া

ম্যাক্সক্লিয়েন্টস বা অন্যান্য অ্যাপাচি কনফিগারেশন প্যারামিটারগুলির সাধারণত কোনও ম্যাজিক মান নেই যা আপনার সার্ভারকে হঠাৎ দ্বিগুণ দ্রুত করে তুলবে। কিছু সার্ভার ম্যাক্সক্লিয়েন্টস 10 বা 1000 কিনা তা ঠিকঠাক চলতে দেখাবে There দুটি প্রধান ক্ষেত্রে ম্যাক্সক্লিয়েন্টস সেটিংটি "খারাপ" রয়েছে:

  • খুব কম : যখন ম্যাক্সক্লিয়েন্টস খুব কম হয় আপনি এমন পরিস্থিতিতে পৌঁছে যাবেন যেখানে সমস্ত অ্যাপাচি ক্লায়েন্ট ব্যবহার করা হচ্ছে এবং নতুন সংযোগগুলি পরবর্তী ক্লায়েন্ট উপলব্ধ হওয়ার জন্য অপেক্ষা করে একটি কাতারে যাবে। আপনি যদি অ্যাপাচি'র মোড_স্ট্যাটাস সক্ষম করে থাকেন তবে যে কোনও এক সময় কত ক্লায়েন্ট ব্যস্ত রয়েছেন তার রিয়েল টাইম ভিউ পেতে পারেন। এই রাজ্যটি নির্ণয় করা তুলনামূলকভাবে সহজ কারণ হাই ট্র্যাফিকের সময় সাইটটি ধীরে ধীরে হয়ে উঠবে এবং সমস্ত ক্লায়েন্ট ব্যবহারের জন্য লক্ষ্য করা যায়।
  • খুব বেশি : ম্যাক্সক্লিয়েন্টস যখন খুব বেশি হয় আপনি সমস্ত র‌্যাম ক্লান্ত করার ক্ষেত্রে এড়াতে পারবেন এবং অদলবদলটি ব্যবহার শুরু করবেন। এটি যখন ঘটে তখন আপনার সাইটের কার্য সম্পাদন মূলত শূন্যে নেমে আসবে (র‌্যাম এবং ডিস্কের মধ্যে গতির পার্থক্য বিবেচনা করুন)। এই রাজ্যটি পর্যবেক্ষণ এবং নির্ণয় করা আরও অনেক কঠিন হতে পারে যেহেতু কোনও সার্ভার উচ্চ ম্যাক্সক্লিয়েন্টের সাথে ট্রাফিকের স্পাইক না পাওয়া পর্যন্ত ঠিক ঠিক চলবে। উদাহরণস্বরূপ, এমন একটি সাইটে যা ঘণ্টায় কয়েকটা হিট পায় আমি ম্যাক্সক্লিয়েন্টসকে 1000 এ সেট করতে পারি, এটি র‌্যামের পক্ষে সমর্থনের চেয়ে অনেক বেশি, তবে অ্যাপাচি-র কারণে কোনও সমস্যা কেবল একবারে এক বা দুটি ক্লায়েন্ট ব্যবহার করা দরকার হয়নি। ট্র্যাফিকের স্পাইক পেয়ে আমি কেবল তখনই সমস্যাটি চিহ্নিত করব, র‌্যাম ক্লান্ত না হওয়া এবং অদলবদলের প্রয়োজন না হওয়া অবধি একযোগে ব্যবহৃত ক্লায়েন্টের সংখ্যা বৃদ্ধি করব।

যদিও আমি আপনার সার্ভার, অ্যাপ্লিকেশন, বা ট্র্যাফিকের বিশদ জানি না তবে আমি নিম্নলিখিত বিন্দু হিসাবে নিম্নলিখিত কনফিগারেশন মানগুলি প্রস্তাব করতে পারি। এগুলি ব্যবহার করে দেখুন, সার্ভারের বোঝা এবং ব্যবহার নিরীক্ষণ করুন এবং প্রয়োজনীয় সেটিংস পরিবর্তন করুন।

  • মোড_স্ট্যাটাস : এটি সক্ষম করুন যাতে আপনি অ্যাপাচের ব্যবহার দেখতে পান। আরও উন্নত পরিসংখ্যানগুলির জন্য জবিবিক্স / নাগিওসের মতো একটি মনিটরিং অ্যাপ্লিকেশন ইনস্টল করুন যাতে আপনি সার্ভারের ব্যবহার এবং ট্র্যাফিকের নিদর্শনগুলি ট্র্যাক করতে পারেন।
  • ম্যাক্সক্লিয়েন্টস : 100-200 এর মান নির্ধারণ করুন। আমি নিশ্চিত না হলে কম মান দিয়ে শুরু করব এবং মেমরি / সিপিইউ / অ্যাপাচি ব্যবহার নিরীক্ষণ করব। এটি টুইট করার প্রধান প্যারামিটার হবে।
  • ম্যাকআরকুইয়েস্টস পার্চিল্ড : এটি অ্যাপাচি ক্লায়েন্ট / শিশু পুনরায় আরম্ভ হবে তা সুনির্দিষ্ট করে। কোনও ভুল মান নেই (যদিও খুব ছোট মানগুলি অকার্যকর হতে পারে) এবং এটি আপনার পরিবেশনায় কোন বিষয়বস্তুর উপর নির্ভর করবে। গতিশীল কন্টেন্টের জন্য একটি বড় অ-শূন্য মান (1000 বলুন) আপনার httpd প্রক্রিয়াগুলি অবশেষে খুব বড় হওয়া থেকে থামিয়ে দেবে।
  • অন্যান্য প্যারামিটার : আমি বাকি পরামিতিগুলির বিশদ বেঞ্চমার্কিং করি নি তবে আপনি যদি খুব কম বা খুব উচ্চ মানগুলিতে সেট না করেন তবে তাদের তুলনামূলকভাবে সামান্য প্রভাব থাকতে হবে। বেশিরভাগ সাইটের ক্ষেত্রে ডিফল্ট ব্যবহার করা ভাল should প্যারামিটারগুলির সম্পূর্ণ বিবরণের জন্য অ্যাপাচি প্রেফের্ক বা ওয়ার্কার মডিউল ডকুমেন্টেশন দেখুন এবং যা প্রতিটি মডিউলে ব্যবহৃত হয় (আপনি যে প্যারামিটারটি ব্যবহার করেন না তার সাথে টিউন করার চেষ্টা করার কোনও মানে নেই)।
  • বেঞ্চমার্কিং : আপনি প্যারামিটারগুলি সামঞ্জস্য করার সাথে সাথে আমি আপনার সার্ভারের সামর্থ্যগুলিতে একটি পরিমাণগত নম্বর পেতে অ্যাব (অ্যাপাচিবেঞ্চ) বা অবরোধের মতো একটি বেঞ্চমার্কিং সরঞ্জাম ব্যবহার করার পরামর্শ দেব। অনুভূতি বা আরও খারাপের উপর নির্ভর করা, এটি ক্র্যাশ হয়ে গেছে কিনা তা দেখার জন্য, ওয়েব সার্ভারের পরামিতিগুলির সাথে টিউন করা ভাল পদ্ধতি নয়।

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