लगभग 4 महीने पहले हमने MS SQL सर्वर से MySQL 5.5 में माइग्रेट किया था । तब से हम लगभग 25 दिनों में एक बार एक मुद्दे का सामना कर रहे हैं, जहां से CentOS स्मृति से बाहर चला जाता है और परिणामस्वरूप यह MySQL को मारता है। MySQL safe mysql को पुनरारंभ करता है इसलिए डेटाबेस केवल एक या दो मिनट के लिए पूरी तरह से डाउन हो जाता है, लेकिन CentOS mysqld थ्रेड को मारने से पहले हम घंटों तक प्रदर्शन और कनेक्टिविटी के नुकसान का सामना कर सकते हैं।
हम आम तौर पर 1 बजे से सुबह 5 बजे तक मुद्दों को देखते हैं , लेकिन उस दिन के दौरान जब यातायात उच्चतम होता है जो इस स्थिति के बारे में वास्तव में चकित करता है। आम तौर पर 1 बजे से सुबह 5 बजे तक कनेक्टिविटी और प्रदर्शन के मुद्दों को देखने के बावजूद, mysql सर्वर आमतौर पर 4 AM या 5 AM के आसपास मारा जाता है, उसी समय mysqldump चलता है।
हमने सोचा mysqldump
कि अपराधी हो सकता है। हालाँकि, यह रोजाना सुबह 4 बजे शुरू होता है, लेकिन हम कुछ रातों में 1 बजे तक समस्याओं को देखते हैं। इसके अलावा स्विच के mysqldump
साथ चल रहा है --opt
, इसलिए यह डंप प्रक्रिया के दौरान बहुत सारे डेटा को बफर नहीं करना चाहिए।
हमने उस बैकअप ऐप पर भी विचार किया जिसका हम उपयोग कर रहे हैं जो डंप फ़ाइलों को प्राप्त करता है और उन्हें टेप करने के लिए बैक करता है। हमने समय बदल दिया कि यह सुबह 6 बजे तक चलता है और समस्या अपरिवर्तित थी।
हमारे पास कई नौकरियां हैं जो समय-समय पर रात भर चलती हैं, लेकिन कोई भी बहुत गहन संसाधन नहीं है और सभी को चलाने में बहुत लंबा समय नहीं लगता है।
यहाँ कुछ आँकड़े हैं जिनके साथ हम काम कर रहे हैं और my.cnf
फ़ाइल में वर्तमान प्रविष्टियाँ । जिन चीजों के लिए हम कोशिश कर सकते हैं, उनकी कोई मदद या सुझाव बहुत सराहना करेंगे।
सर्वर आँकड़े :
- इंटेल (R) Xeon (R) CPU E5530 @ 2.40GHz
- सीपीयू कोर: 4
- मेमोरी: 12293480 (12 गिग्स)
OS :
- सेंटोस 5.5
- लिनक्स 2.6.18-274.12.1.el5 # 1 एसएमपी टीयू 29 नवंबर 13:37:46 ईएसटी 2011 x86_64 x86_64 x86_64 GNU / लिनक्स
my.cnf:
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-name-resolve
ssl-ca=<file location>
ssl-cert=<file location>
ssl-key=<file location>
back_log = 50
max_connections = 500
table_open_cache = 2048
table_definition_cache = 9000
max_allowed_packet = 16M
binlog_cache_size = 1M
max_heap_table_size = 64M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size = 130
thread_concurrency = 16
query_cache_size = 64M
query_cache_limit = 1M
ft_min_word_len = 4
default-storage-engine=INNODB
thread_stack = 192K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 64M
log-bin=/log/mysql/mysql-bin
expire_logs_days=7
binlog_format=mixed
key_buffer_size = 32M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 7G
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 2
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 70
innodb_lock_wait_timeout = 120
[mysql]
no-auto-rehash
[mysqld_safe]
open-files-limit = 8192