আমি একটি ভিপিএসে একটি ওয়েব সার্ভার স্থাপন করার চেষ্টা করছি। আমার সমস্যাটি হ'ল পিএইচপি-সিজি প্রক্রিয়াগুলির মেমরির ব্যবহার সময়ের সাথে সাথে বৃদ্ধি পায় যদিও ওয়েবসাইটটি কোনও ট্র্যাফিকই পাচ্ছে না। (এটি আপাতত ফায়ারওয়ালের পিছনে রয়েছে)
ভিপিএসে 360 এমবি র্যাম রয়েছে। আমি ডেবিয়ান লেনি 32 বিট এবং এর লাইটটিপিডি এবং পিএইচপি 5-সিজি প্যাকেজ ব্যবহার করছি। কিছু কনফিগার পরিবর্তন (নীচে তালিকাভুক্ত) বাদে আমি ডিবিয়ান দ্বারা স্টক সেটআপ ব্যবহার করছি।
ওয়েবসাইটটি দ্রুপাল ভিত্তিক। ড্রুপালের ডেভেল মডিউলটি ব্যবহার করে, আমি বলতে পারি যে পিএইচপি স্ক্রিপ্টগুলির মেমরির ব্যবহারটি গড়ে 20KB এর চেয়ে কম এবং এটি কখনও 8 এমবি ছাড়িয়ে যায় না।
এখানে আউটপুট থেকে প্রাসঙ্গিক অংশ ps aux
:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
www-data 29871 0.0 1.7 54552 6368 ? Ss Aug12 0:00 /usr/bin/php-cgi
www-data 29873 0.0 7.4 65808 27468 ? S Aug12 0:00 /usr/bin/php-cgi
www-data 29874 0.0 3.7 55808 13736 ? S Aug12 0:00 /usr/bin/php-cgi
www-data 29875 0.0 4.3 58040 16204 ? S Aug12 0:00 /usr/bin/php-cgi
www-data 29876 0.0 4.4 57444 16288 ? S Aug12 0:00 /usr/bin/php-cgi
www-data 29877 0.0 1.7 54552 6368 ? Ss Aug12 0:00 /usr/bin/php-cgi
www-data 29879 0.0 9.6 67140 35684 ? S Aug12 0:26 /usr/bin/php-cgi
www-data 29880 0.0 6.6 59172 24492 ? S Aug12 0:23 /usr/bin/php-cgi
www-data 29881 0.0 7.1 59784 26388 ? S Aug12 0:22 /usr/bin/php-cgi
www-data 29882 0.0 7.4 60880 27440 ? S Aug12 0:23 /usr/bin/php-cgi
- পিএইচপি-সিগি এত বড় হওয়া কি স্বাভাবিক?
- সেটিংসের ভিত্তিতে পিএইচপি-সিজি মেমরির ব্যবহারের অনুমান করা কি সম্ভব?
- পিএইচপি-সিজি প্রক্রিয়াগুলির মেমরির খরচ কমাতে কোনও টিপস?
জ্ঞাত মেমরি ফাঁস বাগগুলি অনুসন্ধান করলে প্রাসঙ্গিক কোনও ফল পাওয়া যায় নি। এবং আমি অবাক হব যদি ডিফল্ট ডেবিয়ান প্যাকেজগুলি / কনফিগারেশনে এর সাথে স্পষ্টভাবে মেমরি ফাঁস হয়। একই হোস্টের অন্যান্য ব্যবহারকারীদের এই সমস্যা নেই।
আমি এ পর্যন্ত যা করেছি তা PHP_FCGI_MAX_REQUESTS
কম মূল্যে সেট করা হয়েছে যাতে পিএইচপি-সিজি প্রক্রিয়াগুলি দ্রুত পুনর্ব্যবহারযোগ্য হয়। আমি যখন ab
উচ্চ লোড অনুকরণ করতে ব্যবহার করি তখন এটি খুব ভাল কাজ করে। প্রক্রিয়াগুলি 10MB এর চেয়ে বেশি বেড়ে যাওয়ার আগে দ্রুত মারা যায়। তবে, নিম্ন থেকে মাঝারি লোডের অধীনে সমস্ত প্রক্রিয়া অবিচ্ছিন্নভাবে বৃদ্ধি পায় (লোড ভারসাম্যের কারণে) এবং তাদের বেশিরভাগই একসাথে ২৮ এমবি + গ্রাস করে, আমার ভিপিএসকে অদলবদলের ঝুঁকিতে ফেলে। দয়া করে মনে রাখবেন যে কোনও ধরণের ট্র্যাফিক ছাড়াই, প্রক্রিয়াগুলি অবিচ্ছিন্নভাবে বৃদ্ধি পায়।
আমি পিএইচপি-সিজি প্রসেসের সংখ্যা হ্রাস করতে পারি, তবে এটি ঠিক করার চেয়ে অনেক বেশি কাজের মতো অনুভব করে। পিএইচপি-সিজি যদি সাধারণত এভাবে বাড়ত তবে আমি অবাক হব।
এছাড়াও, পিএইচপি-সিজিআই প্রক্রিয়ার জন্য মোট আরএসএস সংখ্যার সংক্ষিপ্তসার দেয়:
$ ps -C php-cgi -o rss= | awk '{s+=$1}END{print s/1024}'
195.738
তবুও, free -m
নিম্নলিখিত আউটপুট দেয়:
total used free shared buffers cached
Mem: 360 351 8 0 33 190
-/+ buffers/cache: 127 232
Swap: 255 0 255
- আমি কিছু অনুপস্থিত করছি? হোস্টের পিএইচপি-সিজি প্রক্রিয়াগুলির মোট আবাসিক মেমরির তুলনায় ব্যবহৃত মেমরিটি (বাফার ছাড়াই) কম কীভাবে আসে?
আমার নিম্নলিখিত পিএইচপি এক্সটেনশন রয়েছে:
পিএইচপি 5-সিজি পিএইচপি 5-সাধারণ পিএইচপি 5-কার্ল php5-gd php5-mysql php5-xcache
xcache.size
24M সেট করা আছে। এটি 32M ব্যবহার করে তবে এটি হ্রাস করতে কোনও সুবিধা হয়নি। xcache.var_size
বাকী প্লাগইনগুলি স্টক কনফিগারেশন ব্যবহার করছে to এক্সক্যাশ অ্যাডমিন পৃষ্ঠাগুলি দেখায় যে এক্সক্যাচ 1MB এর চেয়ে কম ব্যবহার করছে।
পিএইচপি এর memory_limit
32M সেট করা হয়।
এখানে আমার ফাস্টসিজিআই কনফিগারেশন রয়েছে:
fastcgi.server = ( ".php" =>
((
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/tmp/php.socket",
"max-procs" => 2,
"idle-timeout" => 20,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "4",
"PHP_FCGI_MAX_REQUESTS" => "1000"
),
"bin-copy-environment" => (
"PATH", "SHELL", "USER"
),
"broken-scriptfilename" => "enable"
))
)
আমি কম বেশি বা কম স্টক ব্যবহার করছি lighttpd.conf
যা ডিবিয়ান দিয়ে জাহাজে আসে।
আমি সরবরাহ করতে পারেন যে অন্য কোনও তথ্য আছে দয়া করে আমাকে জানান।
কোন সাহায্য প্রশংসা করা হয়। আমি কয়েক দিন ধরে এটির সমস্যা সমাধানের চেষ্টা করছি। আমার ধারণা শেষ হয়ে গেছে।