नमस्ते, मैं Percona सर्वर के सबसे हाल के संस्करण को चला रहा हूं।
सर्वर संस्करण: 5.5.24-55 Percona सर्वर (GPL), रिलीज़ 26.0
मेरे पास इन विशेषताओं का 10 सीपीयू बॉक्स है।
processor : 0
vendor_id : AuthenticAMD
cpu family : 16
model : 9
model name : AMD Opteron(tm) Processor 6128
stepping : 1
microcode : 0x10000d9
cpu MHz : 800.000
cache size : 512 KB
इसमें एसएसडी और 64 जीबी की रैम है। Innodb लगभग 10GB है, इसलिए innodb_buffer_pool_size 10GB पर सेट है।
मेरे पास एक तालिका है जो इस प्रकार है:
create table TODAY
( symbol_id integer not null
, openp decimal(10,4)
, high decimal(10,4)
, low decimal(10,4)
, last decimal(10,4) not null
, volume int
, last_updated datetime -- the time of the last quote update
, prev decimal(10,4) null
, PRIMARY KEY ( symbol_id )
)
अगर मैं एक खाली तालिका के साथ शुरू करता हूं और 23,000 पंक्तियों का एक सम्मिलित करता हूं, तो लगभग 10 सेकंड लगते हैं। अगर मैं बाद में एक अपडेट करता हूं, जहां हर पंक्ति के प्रत्येक कॉलम को अपडेट किया जाता है (सिंबल_डाइट को छोड़कर) तो यह 11-12 सेकंड की तरह थोड़ा अधिक होता है।
क्या यह मूल रूप से लेखन प्रदर्शन है जिसकी मुझे इनोडब से उम्मीद करनी चाहिए? क्या इस प्रदर्शन में सुधार के लिए कोई सुझाव है? 23,000 पंक्तियों को अद्यतन करना एक चरम मामला है, जैसा कि आमतौर पर एक व्यापारिक दिन के दौरान मुझे हर 5 सेकंड में लगभग 1000 पंक्तियों को अपडेट करने की आवश्यकता होती है (इसलिए, यह अधिक यथार्थवादी बाधा है जिससे मैं निपट रहा हूं)।
अन्य प्रासंगिक mysql.cnf सेटिंग्स मैंने बदल दी हैं:
innodb_buffer_pool_size = 10G
innodb_log_file_size = 64M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
BTW अगर इन्सोडब के बजाय मैं इंजन = मेमोरी के साथ तालिका बनाता हूं, तो इसे सम्मिलित करने के लिए लगभग 4 सेकंड लगते हैं, अपडेट करने के लिए 6 सेकंड।
कई टीआईए अगर कोई मेरी मदद कर सकता है तो पता लगा सकता है कि इस प्रकार की क्वेरी के लिए बेंचमार्क क्या है, या मुझे समय को बेहतर बनाने में मदद करता है।
डॉन
पुनश्च पूर्ण Innodb सेटिंग्स।
mysql> 'innodb%' जैसे वैश्विक चर दिखाएं; + ------------------------------------------- + ----- ------------------- + | चर_नाम | मान | + ------------------------------------------- + ----- ------------------- + | innodb_adaptive_flushing | पर | | innodb_adaptive_flushing_method | अनुमान | | innodb_adaptive_hash_index | पर | | innodb_adaptive_hash_index_partitions | 1 | | innodb_additional_mem_pool_size | 8388608 | | innodb_autoextend_increment | 8 | | innodb_autoinc_lock_mode | 1 | | innodb_blocking_buffer_pool_restore | उतर | | innodb_buffer_pool_instances | 1 | | innodb_buffer_pool_restore_at_startup | 0 | | innodb_buffer_pool_shm_checksum | पर | | innodb_buffer_pool_shm_key | 0 | | innodb_buffer_pool_size | 10737418240 | | innodb_change_buffering | सभी | | innodb_checkpoint_age_target | 0 | | innodb_checksums | पर | | innodb_commit_concurrency | 0 | | innodb_concurrency_ticket | 500 | | innodb_corrupt_table_action | मुखर | | innodb_data_file_path | ibdata1: 10M: autoextend | | innodb_data_home_dir | | | innodb_dict_size_limit | 0 | | innodb_doublewrite | पर | | innodb_doublewrite_file | | | innodb_fake_changes | उतर | | innodb_fast_checksum | उतर | | innodb_fast_shutdown | 1 | | innodb_file_format | एंटीलोप | | innodb_file_format_check | पर | | innodb_file_format_max | एंटीलोप | | innodb_file_per_table | उतर | | innodb_flush_log_at_trx_commit | 2 | | innodb_flush_method | O_DIRECT | | innodb_flush_neighbor_pages | क्षेत्र | | innodb_force_load_corrupted | उतर | | innodb_force_recovery | 0 | | innodb_ibuf_accel_rate | 100 | | innodb_ibuf_active_contract | 1 | | innodb_ibuf_max_size | 5368692736 | | innodb_import_table_from_xtrabackup | 0 | | innodb_io_capacity | 200 | | innodb_kill_idle_transaction | 0 | | innodb_large_prefix | उतर | | innodb_lazy_drop_table | 0 | | innodb_lock_wait_timeout | 50 | | innodb_locks_unsafe_for_binlog | उतर | | innodb_log_block_size | 512 | | innodb_log_buffer_size | 8388608 | | innodb_log_file_size | 67108864 | | innodb_log_files_in_group | 2 | | innodb_log_group_home_dir | ./ | | innodb_max_dirty_pages_pct | 75 | | innodb_max_purge_lag | 0 | | innodb_mirrored_log_groups | 1 | | innodb_old_blocks_pct | 37 | | innodb_old_blocks_time | 0 | | innodb_open_files | 300 | | innodb_page_size | 16384 | | innodb_purge_batch_size | 20 | | innodb_purge_threads | 1 | | innodb_random_read_ahead | उतर | | innodb_read_ahead | रेखीय | | innodb_read_ahead_threshold | 56 | | innodb_read_io_threads | 4 | | innodb_recovery_stats | उतर | | innodb_recovery_update_relay_log | उतर | | innodb_replication_delay | 0 | | innodb_rollback_on_timeout | उतर | | innodb_rollback_seolution | 128 | | innodb_show_locks_held | 10 | | innodb_show_verbose_locks | 0 | | innodb_spin_wait_delay | 6 | | innodb_stats_auto_update | 1 | | innodb_stats_method | nulls_equal | | innodb_stats_on_metadata | पर | | innodb_stats_sample_pages | 8 | | innodb_stats_update_need_lock | 1 | | innodb_strict_mode | उतर | | innodb_support_xa | पर | | innodb_sync_spin_loops | 30 | | innodb_table_locks | पर | | innodb_thread_concurrency | 0 | | innodb_thread_concurrency_timer_based | उतर | | innodb_thread_sleep_delay | 10000 | | innodb_use_global_flush_log_at_trx_commit | पर | | innodb_use_native_aio | पर | | innodb_use_sys_malloc | पर | | innodb_use_sys_stats_table | उतर | | innodb_version | 1.1.8-rel26.0 | | innodb_write_io_threads | 4 | + ------------------------------------------- + ----- ------------------- + सेट में 90 पंक्तियाँ (0.00 सेकंड)
मैं numactl --hardware को चलाता था और यहाँ मुझे मिलने वाला आउटपुट है। मेरे व्यवस्थापक की टिप्पणी नीचे दी गई है (व्याख्या की ओर)।
root @ prog: / data / mysql # numactl --hardware उपलब्ध: 4 नोड्स (0-3) नोड 0 सीपीस: 0 1 2 3 नोड 0 आकार: 32766 एमबी नोड 0 निःशुल्क: 21480 एमबी नोड 1 सीपी: 4 5 6 7 नोड 1 आकार: 32768 एमबी नोड 1 मुफ्त: 25285 एमबी नोड 2 सीपी: 12 13 14 15 नोड 2 आकार: 32768 एमबी नोड 2 मुफ्त: 20376 एमबी नोड 3 सीपी: 8 9 10 11 नोड 3 आकार: 32768 एमबी नोड 3 नि: शुल्क: 24898 एमबी नोड दूरी: नोड 0 1 2 3 0: 10 16 16 16 1: 16 10 16 16 2: 16 16 10 16 3: 16 16 16 10