অ্যাপাচে ম্যাক্সক্লিয়েন্টস। আমার প্রসেসের আকারটি কীভাবে জানব?


9

Http://httpd.apache.org/docs/2.2/misc/perf-tuning.html থেকে

ওয়েবসারভারের কার্যকারিতাকে প্রভাবিত করে এমন একক বৃহত্তম হার্ডওয়্যার ইস্যুটি হ'ল র্যাম। কোনও ওয়েবসার্ভারকে কখনই অদলবদল করা উচিত নয়, কারণ অদলবদল করা প্রতিটি অনুরোধের বিলম্বকে বাড়িয়ে তোলে যা ব্যবহারকারীরা "দ্রুত যথেষ্ট" বিবেচনা করে। এটি ব্যবহারকারীদের থামাতে এবং পুনরায় লোড করতে এবং আরও বোঝা বাড়িয়ে তোলে। আপনি ম্যাক্সক্লিয়েন্টস সেটিংটি নিয়ন্ত্রণ করতে পারেন এবং করা উচিত, যাতে আপনার সার্ভারটি এতগুলি বাচ্চাটিকে সোপান শুরু না করে awn এটি করার জন্য এই পদ্ধতিটি সহজ: শীর্ষের মতো কোনও সরঞ্জামের মাধ্যমে আপনার প্রক্রিয়া তালিকাটি দেখে আপনার গড় অ্যাপাচি প্রক্রিয়াটির আকার নির্ধারণ করুন এবং এটিকে অন্যান্য প্রসেসের জন্য কিছু জায়গা রেখে আপনার মোট উপলব্ধ মেমরিতে ভাগ করুন।

মূল সমস্যাটি হ'ল আমি বুঝতে পারি না যে আকারটি কীভাবে জানব, কারণ, আমার কাছে 38d এর বেশি আর httpd এর আকার নেই

তবে, যদি আমাদের ম্যাক্সক্লিয়েন্টসের জন্য সংখ্যা নির্ধারণ করা প্রয়োজন, এবং আমার 4 গিগাবাইট র্যাম রয়েছে, তাই আমি পেয়েছি: 972, সুতরাং আমার ম্যাক্সক্লিয়েন্টে 900 এর মতো ব্যবহার করা উচিত?


4
"আমার 3838 এর বেশি আর httpd এর আকার নেই" - আমি মনে করি যখন আমি "HUH" বলি তখন আমি সবার পক্ষে কথা বলি?
womble

উত্তর:


9

প্রথমে আপনার অ্যাপাচি প্রক্রিয়াগুলির একটির পিআইডি নির্ধারণ করুন।

তারপরে আপনি এর মতো কিছু করতে পারেন:

cat /proc/PIDHERE/status | grep VmRSS

এটি সেই নির্দিষ্ট প্রক্রিয়াটির (বর্তমান) বাসিন্দা-নির্ধারিত আকারের ফলস্বরূপ:

VmRSS: 304456 kB

এই মানটি যেমন শোনা যায় তেমনি এটি র্যামের বাসিন্দা প্রক্রিয়ার আকার।

তারপরে আপনার পরিমাপের এককটিকে স্বাভাবিক করুন ( 4GB * 1024 * 1024 = 4,194,304 KB)। বিভক্ত করা:

4194304 KB / 304456 KB = 13.77 processes

আপনার সিস্টেমে সম্ভবত অন্যান্য প্রক্রিয়াগুলি চলছে যা স্মৃতিশক্তিও গ্রাস করবে এবং আদর্শভাবে আপনি অদলবদলকে হ্রাস করতে চান, সুতরাং আপনি সম্ভবত 13 টি অ্যাপাচি ম্যাকসিলেটগুলি কনফিগার করতে চান না (আমার নম্বরগুলি ব্যবহার করে), আপনি কিছু পরিমাণ কম চান (আপনার বিবেচনার ভিত্তিতে) )।

এটি একটি অপরিশোধিত অনুমান; লোডের উপর নির্ভর করে আপনার অ্যাপাচি প্রক্রিয়াগুলির আকার সময়ের সাথে বাড়তে পারে।


1
আরএসএসে ভাগ করা পৃষ্ঠাগুলি অন্তর্ভুক্ত করা না হলেও এর মধ্যে অনুলিপিযুক্ত অনুলিপিযুক্ত পেজগুলি অন্তর্ভুক্ত রয়েছে - অর্থাৎ (আরএসএসের যোগফল) / (শারীরিক স্মৃতি) এর চেয়ে বেশি প্রক্রিয়াগুলির জন্য কোনও মেশিনে স্থান রয়েছে। আমার উত্তর অন্য কোথাও দেখুন - ভাল পারফরম্যান্সের জন্য মুক্ত স্থান অপরিহার্য।
13-15

4

পরীক্ষার পরিস্থিতি থেকে সর্বাধিক ক্লায়েন্টদের ভবিষ্যদ্বাণী করা একটি সূচনা পয়েন্ট - তবে সমস্যাটি সঠিকভাবে সমাধান করার জন্য আপনার অ্যাপ্লিকেশনটি সত্যিকারের ট্র্যাফিকের সাথে কী আচরণ করছে তা পরিমাপ করা শুরু করতে হবে।

ধরে নিচ্ছি আপনার অ্যাপাচি প্রাক-কাঁটাচালনা চলছে ...

Httpd প্রসেসের সংখ্যা এবং 'ফ্রি' এর আউটপুট গণনা করতে একটি ক্রোন জব সেট আপ করুন। মনে রাখবেন যে যদি আপনার ওয়েবসার্ভার স্থানীয় ফাইলগুলি থেকে কোনও বিষয়বস্তু সরবরাহ করে (এবং অনেক ক্ষেত্রে এটি নাও থাকে) ক্যাশে / বাফারগুলির জন্য উপলব্ধ মেমরির পরিমাণ পারফরম্যান্সে বড় প্রভাব ফেলবে। অর্থাত্ যদি আপনি অদলবদলের বিষয়টিতে পৌঁছে যান তবে আপনার ওয়েব সম্পাদনা সম্ভবত ভয়াবহ!

একবার আপনি কিছু ডেটা পেয়ে গেলে, এটি একটি চার্টে প্লট করুন এবং এর উপর কমপক্ষে স্কোয়ারের রিগ্রেশন করুন - আপনি যে ক্লায়েন্টের উপরে এইচডিডি মেমরি ব্যবহারের জন্য আপনার টার্গেট সীমাতে পৌঁছেছেন তার সংখ্যা খুঁজে বের করার জন্য এক্সট্রাপোলেট করুন। মেমরি টার্গেটের জন্য একটি সূচনা পয়েন্টটি দৈহিক মেমরির 80% / সামগ্রীর আকারের 80% এর চেয়ে কম হবে।

(দ্রষ্টব্য আপনি যদি MinSpareServers খুব উচ্চ মান সেট করে থাকেন তবে ফলাফলগুলি সঠিক নাও হতে পারে)

#!/bin/bash

LOGFILE='/var/log/httpd/memusage'
PIDS = `ps -ef | grep httpd | grep -v grep | wc -l`
MEM = `free | grep 'buffers/cache'`
DAY = `date '%Y-%m-%d %H:%M:%S'`
echo ${DAY} ${PIDS} ${MEM} >>LOGFILE

একটি আদর্শ বিশ্বে, আপনি একই লগ ফাইলে ইউআরএল প্রতিক্রিয়া সময়ও পরিমাপ করতে চান - তবে এটি আরও জটিল হয়ে উঠছে।


আমার জন্য, 11 টি ক্লায়েন্ট চলছে কিনা বা যখন সার্ভারটি 86 বা 151 ক্লায়েন্টে পৌঁছেছে (এবং সার্ভারটি ক্র্যাশ করেছে) বাফার / ক্যাশে খুব অল্প পরিবর্তন হয়। আপনি আপনার এমইএম ভেরিয়েবলটি দেখতে কী প্রত্যাশা করবেন? আমি দুটি নম্বর পেয়েছি, তাই ভাবছি উবুন্টু 12.04 আপনার প্রত্যাশা ব্যতীত অন্য কিছু দিচ্ছে।
পিটারবি

'ফ্রি' চালানোর চেষ্টা করুন এবং আপনি কী দেখবেন তা দেখতে পাবেন (2 সংখ্যা)। যদি এটি সত্য হয় যে বিভিন্ন সংখ্যক প্রক্রিয়া সহ এই সংখ্যায় সামান্যতম পার্থক্য রয়েছে তবে হয় আপনি ইভেন্ট ভিত্তিক সার্ভারটি চালাচ্ছেন বা আপনার ম্যাক্সস্পেসারভার সেটিংসটি নির্বোধ। যদি আপনি আউটপুটটির নমুনা এবং আপনার httpd.conf এর প্রাসঙ্গিক অংশগুলি পোস্ট করেন তবে আমাদের আরও ভাল ছবিটি থাকতে পারে?
সিমকিবিয়ান

.... এবং "ক্রাশ"? কি দুর্ঘটনা?
সিমসিবিয়ান

দুঃখিত, httpd.conf সেটিংস এবং নমুনা আউটপুট জন্য পেস্টবিন .com/ aHZCagVn দেখুন । 'ক্র্যাশ' বলতে আমার অর্থ অনেক বেশি ক্লায়েন্ট, সার্ভারটি মেমরির বাইরে চলে যায় এবং লক আপ হয়। আরও জানতে দয়া করে পেস্টবিন . com/fnXzBfQL দেখুন।
পিটারবি

1
@ পিটারবি আরও সম্ভবত মনে হয় যে মাইএসকিউএলডি এই সমস্যাটি সৃষ্টি করছে। যখন কার্নেলের OOM হত্যাকারী প্রথমে / proc / PID / oom_score_adj এর মানের ভিত্তিতে সবচেয়ে খারাপ অপরাধীদের হত্যা করে। আপনার আউটপুট প্রমাণ হিসাবে, mysqld প্রথম গিয়েছে। আপনার ভিএম এর সীমাবদ্ধতার মধ্যে ফিট করার জন্য আপনাকে আরও উপযুক্তভাবে মাই সিএনএফ-এ সেটিংস সামঞ্জস্য করতে হবে। একটি / অস্থায়ী / কর্মক্ষেত্র হিসাবে, আপনি OOM হত্যাকারী লাথি মারা এড়াতে পারবেন কিনা তা দেখার জন্য অতিরিক্ত ভার্চুয়াল মেমরির জন্য একটি swapfile যুক্ত করার চেষ্টা করুন; আপনি একবার আপনার আসল সমস্যাটি চিহ্নিত করার পরে এটি থেকে মুক্তি পান get
লুপফ্রোভার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.