Xin chào Tôi đang chạy phiên bản mới nhất của Percona Server.
Phiên bản máy chủ: 5.5.24-55 Percona Server (GPL), Phiên bản 26.0
Tôi có một hộp 10 cpu của những đặc điểm này.
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
Nó có SSD và 64GB RAM. Innodb có dung lượng xấp xỉ 10GB, vì vậy innodb_buffer_pool_size được đặt thành 10GB.
Tôi có một bảng như sau:
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 )
)
Nếu tôi bắt đầu với một bảng trống và thực hiện chèn 23.000 hàng thì mất khoảng 10 giây. Nếu sau đó tôi thực hiện một bản cập nhật trong đó mỗi cột của mỗi hàng được cập nhật (tất nhiên trừ biểu tượng_id), sẽ mất hơn một chút như 11-12 giây.
Đây có phải là hiệu suất viết mà tôi nên mong đợi từ Innodb? Có bất kỳ đề nghị để cải thiện hiệu suất này? cập nhật 23.000 hàng là một trường hợp cực đoan, vì thông thường trong một ngày giao dịch tôi cần cập nhật khoảng 1000 hàng mỗi 5 giây (vì vậy, đó là ràng buộc thực tế hơn mà tôi đang xử lý).
Các cài đặt mysql.cnf khác có liên quan tôi đã thay đổi:
innodb_buffer_pool_size = 10G
innodb_log_file_size = 64M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
BTW nếu thay vì Innodb tôi tạo bảng với ĐỘNG CƠ = NHỚ thì mất khoảng 4 giây để thực hiện thao tác chèn, 6 giây để thực hiện cập nhật.
Nhiều TIA nếu ai đó có thể giúp tôi tìm ra điểm chuẩn cho loại truy vấn này hoặc giúp tôi cải thiện thời gian.
Don
PS cài đặt Innodb đầy đủ.
mysql hiển thị các biến toàn cục như 'innodb%'; + ------------------------------------------- + ----- ------------------- + | Biến_ame | Giá trị | + ------------------------------------------- + ----- ------------------- + | innodb_adaptive_flushing | TRÊN | | innodb_adaptive_flushing_method | ước tính | | innodb_adaptive_hash_index | TRÊN | | innodb_adaptive_hash_index_partitions | 1 | | innodb_additable_mem_pool_size | 8388608 | | innodb_autoextend_increment | 8 | | innodb_autoinc_lock_mode | 1 | | innodb_blocking_buffer_pool_restore | TẮT | | innodb_buffer_pool_instances | 1 | | innodb_buffer_pool_restore_at_startup | 0 | | innodb_buffer_pool_shm_checksum | TRÊN | | innodb_buffer_pool_shm_key | 0 | | innodb_buffer_pool_size | 10737418240 | | innodb_change_buffering | tất cả | | innodb_checkpoint_age_target | 0 | | innodb_checksums | TRÊN | | innodb_commit_concurrency | 0 | | innodb_concurrency_tickets | 500 | | innodb_corrupt_table_action | khẳng định | | innodb_data_file_path | ibdata1: 10M: tự động nhập | | innodb_data_home_dir | | | innodb_dict_size_limit | 0 | | innodb_doublewrite | TRÊN | | innodb_doublewrite_file | | | innodb_fake_changes | TẮT | | innodb_fast_checksum | TẮT | | innodb_fast_shutdown | 1 | | innodb_file_format | Linh dương | | innodb_file_format_check | TRÊN | | innodb_file_format_max | Linh dương | | innodb_file_per_table | TẮT | | innodb_flush_log_at_trx_commit | 2 | | innodb_flush_method | O_DIRECT | | innodb_flush_neighbor_pages | khu vực | | innodb_force_load_corrupted | TẮT | | 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 | TẮT | | innodb_lazy_drop_table | 0 | | innodb_lock_wait_timeout | 50 | | innodb_locks_unsafe_for_binlog | TẮT | | 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_denty_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 | TẮT | | innodb_read_ahead | tuyến tính | | innodb_read_ahead_thr Ngưỡng | 56 | | innodb_read_io_threads | 4 | | innodb_recovery_stats | TẮT | | innodb_recovery_update_relay_log | TẮT | | innodb numplication_delay | 0 | | innodb_rollback_on_timeout | TẮT | | innodb_rollback_segments | 128 | | innodb_show_locks_ained | 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 | TRÊN | | innodb_stats_sample_pages | 8 | | innodb_stats_update_need_lock | 1 | | innodb_strict_mode | TẮT | | innodb_support_xa | TRÊN | | innodb_sync_spin_loops | 30 | | innodb_table_locks | TRÊN | | innodb_thread_concurrency | 0 | | innodb_thread_concurrency_timer_basing | TẮT | | innodb_thread_s ngủ_delay | 10000 | | innodb_use_global_flush_log_at_trx_commit | TRÊN | | innodb_use_native_aio | TRÊN | | innodb_use_sys_malloc | TRÊN | | innodb_use_sys_stats_table | TẮT | | innodb_version | 1.1.8-rel26.0 | | innodb_write_io_threads | 4 | + ------------------------------------------- + ----- ------------------- + 90 hàng trong bộ (0,00 giây)
Tôi đã chạy numactl - phần mềm và đây là đầu ra mà tôi có. Các ý kiến từ quản trị viên của tôi được ghi chú bên dưới (như hướng tới giải thích).
root @ prog: / data / mysql # numactl - phần mềm có sẵn: 4 nút (0-3) nút 0 cpus: 0 1 2 3 kích thước nút 0: 32766 MB nút 0 miễn phí: 21480 MB nút 1 cpus: 4 5 6 7 kích thước nút 1: 32768 MB nút 1 miễn phí: 25285 MB nút 2 cpus: 12 13 14 15 kích thước nút 2: 32768 MB nút 2 miễn phí: 20376 MB nút 3 cpus: 8 9 10 11 kích thước nút 3: 32768 MB nút 3 miễn phí: 24898 MB khoảng cách nút: nút 0 1 2 3 0: 10 16 16 16 1: 16 10 16 16 2: 16 16 10 16 3: 16 16 16 10