2013-02-16 36 views
5

मेरे पास एक बहु-प्रक्रिया PHP (सीएलआई) एप्लिकेशन है जो लगातार चलता है। मूल रूप से, मैं PHP के मानक उबंटू 10.04 पैकेज निर्माण (5.3.2-1ubuntu4.18) का उपयोग कर रहा था। हालांकि, मैं स्मृति उपयोग को अनुकूलित करने की कोशिश कर रहा हूं क्योंकि प्रत्येक प्रक्रिया द्वारा उपयोग की जाने वाली मेमोरी की मात्रा किसी भी समय पर चलने वाले कांटे की संख्या को सीमित करती है (क्योंकि मेरे पास सीमित मात्रा में स्मृति उपलब्ध है)। preinheimer द्वारा दी गई सलाह के बाद, मैंने PHP को फिर से संकलित किया, सभी एक्सटेंशन को अक्षम कर दिया और फिर केवल मेरे एप्लिकेशन (mysql, curl, pcntl, posix, और json) के लिए आवश्यक लोगों को पुनः सक्षम कर दिया। मेरे कॉन्फ़िगर आदेश है:डिफॉल्ट उबंटू बिल्ड की तुलना में सीपीयू की भारी मात्रा का उपयोग करके PHP को फिर से संकलित क्यों किया जाता है?

'./configure' '--prefix=/usr/local/phpbare' '--with-config-file-path=/etc \ 
/php5/clibare' '--disable-all' '--with-mysql=mysqlnd' '--with-curl' \ 
'--enable-pcntl' '--enable-posix' '--enable-json' 

इस नए "नंगे हड्डियों" का निर्माण अपने आवेदन चलाने की अनुमति दी है, लेकिन मेरे आश्चर्य करने के लिए, जब मैं चल रहा प्रक्रिया top का उपयोग कर देखते हैं, तो यह स्मृति का एक ही राशि के बारे में के रूप में पहले का उपयोग करता है और (यहां तक ​​कि अधिक समस्याग्रस्त), यह विशाल CPU समय की मात्रा का उपयोग करता है (अक्सर CPU द्वारा 15-20% जब शीर्ष पर रिपोर्ट की गई राशि सामान्यतः 0-1% थी)। क्या यह संभव है कि मुझे कुछ PHP एक्सटेंशन याद आ रहे हैं जो किसी भी तरह से कम कंप्यूटिंग संसाधनों का उपयोग करने के लिए स्क्रिप्ट को अनुकूलित करता है ??? या उबंटू बिल्डिंग शायद उबंटू वास्तुकला के लिए अनुकूलित है, जबकि मेरे कस्टम निर्माण में इन अनुकूलन की कमी है? यदि हां, तो मैं कैसे पता लगा सकता हूं कि उबंटू बिल्ड में कौन सी अनुकूलन का उपयोग किया जाता है, ताकि उन्हें "नंगे हड्डियों" निर्माण में फिर से बनाया जा सके?

root 12952 0.3 0.9 33176 4968 pts/2 S Feb14 11:15 s.php 5 
root 12955 0.3 0.9 32664 4732 pts/2 S Feb14 11:12 s.php 5 
root 12958 0.3 0.9 32664 4796 pts/2 S Feb14 10:51 s.php 5 
root 12961 0.3 0.9 32740 4752 pts/2 S Feb14 11:07 s.php 5 
root 14162 0.3 0.9 33000 4904 pts/2 S Feb14 10:51 s.php 5 
root 14165 0.3 1.0 33256 5340 pts/2 S Feb14 10:56 s.php 5 
root 23426 9.5 1.1 13492 6040 pts/2 S Feb15 151:38 s.php 1 
+1

क्या आप उसी यूनी फ़ाइल का उपयोग कर रहे हैं जब आप स्टॉक उबंटू संस्करण पर थे? –

+0

हाँ। मैंने बस इसे -with-config-file-path द्वारा निर्दिष्ट निर्देशिका में संशोधन किए बिना कॉपी किया है और पुष्टि की है कि इस फ़ाइल का उपयोग php -i => लोड किया गया कॉन्फ़िगरेशन फ़ाइल => /etc/php5/clibare/php.ini – robguinness

+0

के साथ किया जा रहा था आपको वास्तव में मापना चाहिए वह गति है जिस पर स्क्रिप्ट चलती है, सीपीयू उपयोग नहीं। जब आप स्क्रिप्ट चल रहे हों तो वास्तव में _want_ आपके CPU का 100% उपयोग किया जाएगा। – Evert

उत्तर

-1

Opcode संचय को कई बार तेजी से पीएचपी बनाता है:

यहाँ ps aux | grep php से उत्पादन का एक टुकड़ा है, जो नीचे टिप्पणी में मेरी बात को प्रदर्शित करने के लिए किया जाता है। सुनिश्चित करें कि आपके पास APC जैसे एक्सटेंशन हैं।

तुम भी मानक पैकेज का phpinfo() जाँच क्या configure विकल्प यह प्रयोग किया जाता देख सकते हैं और एक ही विकल्पों के साथ पुन: संयोजित कि विन्यास या कुछ और, अलग संकलक या पुस्तकालयों की तरह की बात है कि क्या जांच करने के लिए करने के लिए कर सकता है।

+0

दुर्भाग्य से, उबंटू मानक पैकेज में, phpinfo() से कॉन्फ़िगर कमांड लाइन अक्षम है। लेकिन अन्यथा, कोई भी phpinfo() से कुछ कॉन्फ़िगरेशन जानकारी को अभी भी जोड़ सकता है, बस सटीक कॉन्फ़िगरेशन कमांड नहीं। – robguinness