मैंने देखा है कि top
या ps
PHP प्रक्रिया के लिए स्मृति उपयोग के रूप में रिपोर्ट के बारे में काफी अंतर है, इसकी प्रक्रिया की तुलना में प्रक्रिया क्या है (memory_get_usage
के साथ)।PHP वास्तव में कितनी मेमोरी का उपयोग कर रहा है?
वास्तव में प्रक्रिया का उपयोग कितनी मेमोरी है?
मेरी क्षुधा में से एक के साथ निम्न कोड चलाते समय:
echo "Memory usage: " . pretty_bytes(memory_get_usage()) . PHP_EOL;
echo "Peak memory usage: " . pretty_bytes(memory_get_peak_usage()) . PHP_EOL;
echo "'Actual' memory usage: " . pretty_bytes(memory_get_usage(true)) . PHP_EOL;
echo "'Actual' peak memory usage: " . pretty_bytes(memory_get_peak_usage(true)) . PHP_EOL;
$ps_output = exec("ps --pid " . getmypid() . " --no-headers -o rss");
echo "'Memory usage according to ps: " . pretty_bytes(intval($ps_output) * 1000);
एक यादृच्छिक बिंदु पर उत्पादन किया गया था: क्योंकि मैं
Memory usage: 4.77 MB
Peak memory usage: 4.99 MB
'Actual' memory usage: 5.00 MB
'Actual' peak memory usage: 5.00 MB
Memory usage according to ps: 17.66 MB
मेरी विशेष मामले में, यह चिंता का विषय है मैं कुछ श्रमिकों और डेमॉन चला रहा हूँ।
जब मैं PHP स्मृति सीमा को उदा। इनमें से प्रत्येक डेमॉन के लिए 128 एमबी, पीएचपी के अपने माप के अनुसार 128 एमबी तक पहुंचने के बाद ही प्रक्रियाएं मारे जाएंगी। हालांकि, ps
के अनुसार, प्रक्रिया उस समय लगभग 200 एमबी का उपयोग कर रही होगी।
धन्यवाद @ बोवेबी। यह और इवो के उत्तर ने हमें समस्या में अंतर्दृष्टि का पर्याप्त स्तर दिया है हाथ से इस मुद्दे से निपटने के लिए। – Robbert