2011-06-28 17 views
33

मैं कैसे देख सकता हूं कि वर्तमान अनुरोध के दौरान अपाचे पर चल रहे PHP में mysql_connect के माध्यम से वर्तमान अनुरोध के दौरान कितने कनेक्शन खोले गए हैं?मैं कैसे देख सकता हूं कि कितने MySQL कनेक्शन खुले हैं?

मुझे पता है कि अगर मैं उसी पैरामीटर के साथ mysql_connect फ़ंक्शन 100 बार कॉल करता हूं, तो यह हमेशा एक ही कनेक्शन लिंक लौटाएगा। एक बार कनेक्शन पहले से मौजूद होने पर यह नया कनेक्शन शुरू नहीं करेगा।

लेकिन मैं सिर्फ यह सुनिश्चित करना चाहता हूं कि mysql_connect एक नया प्रारंभ नहीं कर रहा है।

मैं एक विरासत प्रणाली के साथ काम कर रहा हूं जिसमें कई mysql_connect फ़ंक्शन कॉल शामिल हैं।

क्या अपाचे में कोई सेटिंग है या क्या मैं अपाचे या MySQL लॉग फ़ाइल में कनेक्शन की इस संख्या को लॉग कर सकता हूं?

+0

एक बार कनेक्शन सफलतापूर्वक बनाया गया है तो आप इसे लॉग कर सकते हैं। – deW1

उत्तर

46

मुझे लगता है कि कई तरीकों से कर रहे हैं:

SHOW STATUS WHERE `variable_name` = 'Threads_connected' 

या आप एक SHOW PROCESSLIST करते हैं और Id स्तंभ में अनन्य मानों को पा सकते हैं। पुराने PHP एपीआई mysql में, mysql_list_processes फ़ंक्शन है जो SHOW PROCESSLIST जैसा ही है।

लेकिन पहले व्यक्ति को आपके लिए काम करना चाहिए। और शायद आप अन्य STATUS variables

+1

थैंक्स पर खोले गए कनेक्शन की संख्या को समाप्त करना था .. इससे मदद मिलती है !! – Sahal

3

कनेक्शन की संख्या प्राप्त करने के लिए आप MySQL कमांड शो प्रक्रिया सूची का उपयोग कर सकते हैं।

+0

प्रक्रिया सूची दिखाएगी कि MySQL सर्वर सही है? या यह दिखाता है कि कितने कनेक्शन खुलते हैं? – Sahal

+0

प्रोसेसलिस्ट प्रक्रिया दिखाती है, लेकिन यह momemnt – X10nD

+0

पर है हाँ, आप इस समय सही हैं, मुझे लगता है कि वह किसी दिए गए पल – gmhk

0

मुझे नहीं लगता कि आप कनेक्शन की संख्या देख सकते हैं, लेकिन कनेक्शन को MySQL सर्वर से सीमित कर सकते हैं।

9

वर्तमान कनेक्शन स्थिति जानने के लिए पसंद कर सकते हैं:

mysqladmin status 

Threads: गणना में देखो। वर्तमान कनेक्शन के बारे में अधिक विस्तृत जानकारी आदेशों के साथ प्राप्त किया जा सकता:

[email protected]:~$ mysqladmin -uroot -ppass extended-status | grep Threads 
| Threads_cached       | 0   | 
| Threads_connected      | 3   | 
| Threads_created       | 3   | 
| Threads_running       | 1   | 

[email protected]:~$ mysqladmin -uroot -ppass processlist 
+----+------+-----------+----+---------+------+-------+------------------+ 
| Id | User | Host  | db | Command | Time | State | Info    | 
+----+------+-----------+----+---------+------+-------+------------------+ 
| 53 | root | localhost | | Sleep | 258 |  |     | 
| 54 | root | localhost | | Sleep | 253 |  |     | 
| 58 | root | localhost | | Query | 0 |  | show processlist | 
+----+------+-----------+----+---------+------+-------+------------------+ 

FYI करेंmysqladmin -v -uroot -ppass processlistshow full processlist के अनुरूप है।

आदेश किसी भी अद्वितीय उपसर्ग को छोटा किया जा सकता है, और एक साथ बुलाया:

[email protected]:~$ mysqladmin -v -uroot -ppass proc stat 
+----+------+-----------+----+---------+------+-------+-----------------------+ 
| Id | User | Host  | db | Command | Time | State | Info     | 
+----+------+-----------+----+---------+------+-------+-----------------------+ 
| 53 | root | localhost | | Sleep | 951 |  |      | 
| 54 | root | localhost | | Sleep | 946 |  |      | 
| 65 | root | localhost | | Query | 0 |  | show full processlist | 
+----+------+-----------+----+---------+------+-------+-----------------------+ 
Uptime: 1675 Threads: 3 Questions: 171 Slow queries: 0 Opens: 235 
Flush tables: 1 Open tables: 57 Queries per second avg: 0.102 
28

कनेक्शन के बारे में और अपने विशेष मामले चर में अन्य उपयोगी चर रहे हैं Connections पता लगाना यदि आपके कोड बहुत अधिक कनेक्शन बना रही है मदद कर सकता है । कोड चलाने से पहले और बाद में बस इसे मानें।

# mysql -e 'SHOW STATUS WHERE variable_name LIKE "Threads_%" OR variable_name = "Connections"' 

+-------------------+-------+ 
| Variable_name  | Value | 
+-------------------+-------+ 
| Connections  | 22742 | 
| Threads_cached | 1  | 
| Threads_connected | 87 | 
| Threads_created | 549 | 
| Threads_running | 51 | 
+-------------------+-------+ 
  • कनेक्शन

    कनेक्शन प्रयासों की संख्या (सफल हो या नहीं) MySQL सर्वर के लिए।

  • धागा कैश में धागे की संख्या Threads_cached।

  • Threads_connected

    वर्तमान में खुले कनेक्शनों की संख्या।

  • Threads_created

    कनेक्शन को संभालने के लिए बनाया थ्रेड की संख्या। यदि Threads_created बड़ा है, तो आप thread_cache_size मान को बढ़ाना चाहते हैं। कैश मिस दर की गणना थ्रेड्स_क्रेटेड/कनेक्शन के रूप में की जा सकती है।

  • धागे कि सो नहीं कर रहे हैं की संख्या Threads_running।

संबंधित मुद्दे

 संबंधित मुद्दे