आप mysql max_connections चर की गणना कैसे करते हैं?


38

आप mysql max_connections की गणना कैसे करते हैं?

आप क्या ध्यान में रखते हैं?


2
अच्छा सवाल है, और मैं इसका जवाब भी जानना चाहता था। इसके बारे में इस पुराने ब्लॉग के माध्यम से पढ़ना: mysqlhacker.com/kabir/performance/…
डेरेक डाउनी

जवाबों:


27

प्रासंगिक जानकारी के साथ इसे उत्तर के रूप में पोस्ट करने जा रहे हैं। मूल सूत्र हैं:

उपलब्ध RAM = ग्लोबल बफ़र्स + (थ्रेड बफ़र्स x max_connections)

max_connections = (उपलब्ध रैम - ग्लोबल बफर) / थ्रेड बफ़र्स

बफ़र्स और उनके मूल्यों की सूची प्राप्त करने के लिए:

SHOW VARIABLES LIKE '%buffer%';

यहां बफ़र्स की सूची दी गई है और वे ग्लोबल या थ्रेड हैं:

ग्लोबल बफ़र्स : key_buffer_size, innodb_buffer_pool_size, innodb_log_buffer_size, innodb_additional_mem_pool_size, net_buffer_size, query_cache_size

थ्रेड बफ़र्स : Sort_buffer_size, myisam_sort_buffer_size, read_buffer_size, join_buffer_size, read_rnd_buffer_size, thread_stack


1
केसीडी ने इस लिंक को एक अधिकतम मेमोरी कैलकुलेटर के रूप में प्रदान किया: mysqlcalculator.com
डेरेक डाउनी

डेरेक, क्या आप का अर्थ है "वैश्विक बफ़र्स = सभी वैश्विक बफ़र्स चर का SUM और थ्रेड बफ़र्स = सभी थ्रेड बफ़र्स चर का योग"?
Mat

11

चेतावनी! यह 2011 से MySQL 5.1.x का उपयोग कर रहा है। अपने जोखिम पार इस्तेमाल करें

---- मूल पोस्ट ----

संग्रहीत कार्यविधि फ़ॉर्म में एक और वैकल्पिक सूत्र यहां दिया गया है:

DELIMITER //
CREATE PROCEDURE sproc_show_max_memory ( OUT max_memory DECIMAL(7,4))
BEGIN
SELECT ( @@key_buffer_size + @@query_cache_size + @@tmp_table_size + @@innodb_buffer_pool_size + @@innodb_additional_mem_pool_size + @@innodb_log_buffer_size + @@max_connections * ( @@read_buffer_size + @@read_rnd_buffer_size + @@sort_buffer_size + @@join_buffer_size + @@binlog_cache_size + @@thread_stack ) ) / 1073741824 AS MAX_MEMORY_GB INTO max_memory;
END//
DELIMITER ;
CALL sproc_show_max_memory(@show_max_memory);
SELECT @show_max_memory;

मैं आपके MySQL डेटाबेस> संस्करण 5.1.x का उपयोग कर रहा हूं और आप एक विशेषाधिकार प्राप्त उपयोगकर्ता हैं। लेकिन आप जो भी नंबर चाहते हैं उसे डालकर और परिणाम देखने के लिए अधिकतम कनेक्शन के साथ खेलते हैं।


1
मैंने अभी आपका सूत्र पढ़ा है। बहुत सुंदर !!! BTW +1 !!!
रोलैंडमाइसीडीडीबीए

2
यह शायद 5.5 और 5.6 के सभी परिवर्तनों को देखते हुए इस सूत्र को फिर से प्रस्तुत करने का समय है, लेकिन यह अभी भी एक तरह का काम है।
randomx


0

मैं उस नंबर के साथ घूर रहा हूं, जो मुझे साधारण कैलुलेशन से मिल रहा है: अपेक्षित_नंबर_ऑफ_क्रैक्वेस्ट_पर_सॉकोंड * अपेक्षित_ऑवर्स_रेक्वेस्ट_प्रोसेसिंग_टाइम * 2।

बाद में ट्यूनिंग के लिए, मैं हमेशा ऐतिहासिक डेटा के साथ निगरानी प्रणाली का उपयोग कर रहा हूं और कुछ चोटी के मामले में 20% आरक्षित रखने की कोशिश कर रहा हूं। जब आप कुछ कनेक्शन पूलिंग (जो आमतौर पर एक अच्छा विचार है) का उपयोग कर रहे हैं तो यह थोड़ा अधिक जटिल है - तब आपको पूल में उपयोग किए गए कनेक्शनों की संख्या की निगरानी करने की आवश्यकता होती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.