it-swarm.asia

كيف تحسب متغير mysql max_connections؟

كيف تحسب رابط الخلية؟

ماذا تأخذ بعين الاعتبار؟

39
Gabriel Solomon

الذهاب لنشر هذا كإجابة ، مع المعلومات ذات الصلة. الصيغ الأساسية هي:

متاح RAM = المخازن المؤقتة + (المخازن المؤقتة لمؤشرات الترابط x max_connections)

max_connections = (متاح RAM - المخازن المؤقتة العامة/مخازن الموضوع

للحصول على قائمة المخازن المؤقتة وقيمها:

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

28
Derek Downey

تحذير! هذا من عام 2011 باستخدام MySQL 5.1.x. استخدم على مسؤوليتك الخاصة

---- ORIGINAL POST ----

فيما يلي صيغة بديلة أخرى في نموذج الإجراء المخزن:

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 وأنت مستخدم مميز. ولكنك تلعب مع الاتصالات القصوى بإدخال الرقم الذي تريده ورؤية النتائج.

11
randomx

أنا أحدق بالرقم الذي أحصل عليه من حساب التفاضل البسيط: المتوقع_number_of_requests_per_second * متوقع_average_request_processing_time * 2.

للضبط لاحقًا ، أستخدم دائمًا نظام المراقبة مع البيانات التاريخية وأحاول أن أحجز 20 ٪ في حالة حدوث بعض الذروة. يكون الأمر أكثر تعقيدًا بعض الشيء عند استخدام بعض الاتصالات المجمعة (والتي عادة ما تكون فكرة جيدة) - ثم تحتاج إلى مراقبة عدد الاتصالات المستخدمة في التجمع.

0
rvs