I have three in production MySQL database (5.7) with about 160GB of Data. The largest table is about 20GB, and the largest schema is about 40GB. I think all tables are innodb table. Currently I don't know about the configuration of the MySQL server machine. And I was asked to purchase a new server to replace the old one. This database is really slow and cannot hold more than 100 connections. I used this query to get the max_memory:
SELECT ( @@key_buffer_size
+ @@query_cache_size
+ @@innodb_buffer_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
+ @@tmp_table_size )
) / (1024 * 1024 * 1024) AS MAX_MEMORY_GB;
And It gives me 54.7040(GB) as result. I assume this could be close to the server's physical RAM size? One thing I feel strange is the the innodb_buffer_pool_size is only around 4GB. With this query: SHOW VARIABLES LIKE 'innodb_buffer_pool%';
The result is.
innodb_buffer_pool_instances 1
innodb_buffer_pool_size 4294967296
I think this is misconfigured. Am I right? I'm planning to purchase an 64 core CPU with 512 GB of RAM to host it. And I'm planning to upgrade them from MySQL 5.7 to 8.0. Will this becomes a huge performance bump? And do you guys think I should combine the three databases into one on the new server or still host three database instance? And if I combine them into a one database. What will be the reasonable buffer_pool_size that I need to set. I'm new to database, so my question might be silly. Thanks for your help and advises!
Update: Attached the show global status
Aborted_clients, 24213
Aborted_connects, 0
Binlog_cache_disk_use, 268
Binlog_cache_use, 2245790
Binlog_stmt_cache_disk_use, 0
Binlog_stmt_cache_use, 0
Bytes_received, 45415670865
Bytes_sent, 77195756974
Com_admin_commands, 39693518
Com_assign_to_keycache, 0
Com_alter_db, 0
Com_alter_db_upgrade, 0
Com_alter_event, 0
Com_alter_function, 0
Com_alter_procedure, 0
Com_alter_server, 0
Com_alter_table, 5
Com_alter_tablespace, 0
Com_analyze, 0
Com_begin, 0
Com_binlog, 0
Com_call_procedure, 0
Com_change_db, 72471
Com_change_master, 0
Com_check, 0
Com_checksum, 0
Com_commit, 1719583
Com_create_db, 0
Com_create_event, 0
Com_create_function, 0
Com_create_index, 0
Com_create_procedure, 0
Com_create_server, 0
Com_create_table, 175
Com_create_trigger, 0
Com_create_udf, 0
Com_create_user, 0
Com_create_view, 0
Com_dealloc_sql, 0
Com_delete, 8943
Com_delete_multi, 0
Com_do, 0
Com_drop_db, 0
Com_drop_event, 0
Com_drop_function, 0
Com_drop_index, 0
Com_drop_procedure, 0
Com_drop_server, 0
Com_drop_table, 176
Com_drop_trigger, 0
Com_drop_user, 0
Com_drop_view, 0
Com_empty_query, 0
Com_execute_sql, 0
Com_flush, 6
Com_grant, 0
Com_ha_close, 0
Com_ha_open, 0
Com_ha_read, 0
Com_help, 0
Com_insert, 2376493
Com_insert_select, 2
Com_install_plugin, 0
Com_kill, 9757
Com_load, 0
Com_lock_tables, 0
Com_optimize, 0
Com_preload_keys, 0
Com_prepare_sql, 0
Com_purge, 0
Com_purge_before_date, 0
Com_release_savepoint, 0
Com_rename_table, 0
Com_rename_user, 0
Com_repair, 0
Com_replace, 351
Com_replace_select, 0
Com_reset, 0
Com_resignal, 0
Com_revoke, 0
Com_revoke_all, 0
Com_rollback, 67359939
Com_rollback_to_savepoint, 0
Com_savepoint, 0
Com_select, 66889461
Com_set_option, 132188966
Com_signal, 0
Com_show_authors, 0
Com_show_binlog_events, 0
Com_show_binlogs, 21
Com_show_charsets, 5090
Com_show_collations, 1344
Com_show_contributors, 0
Com_show_create_db, 0
Com_show_create_event, 0
Com_show_create_func, 0
Com_show_create_proc, 0
Com_show_create_table, 20611
Com_show_create_trigger, 0
Com_show_databases, 207
Com_show_engine_logs, 0
Com_show_engine_mutex, 0
Com_show_engine_status, 2
Com_show_events, 0
Com_show_errors, 0
Com_show_fields, 12249
Com_show_function_status, 27
Com_show_grants, 6
Com_show_keys, 361
Com_show_master_status, 19
Com_show_open_tables, 0
Com_show_plugins, 0
Com_show_privileges, 0
Com_show_procedure_status, 27
Com_show_processlist, 381
Com_show_profile, 0
Com_show_profiles, 0
Com_show_relaylog_events, 0
Com_show_slave_hosts, 0
Com_show_slave_status, 3
Com_show_status, 8077
Com_show_storage_engines, 14
Com_show_table_status, 11
Com_show_tables, 838
Com_show_triggers, 82
Com_show_variables, 13196
Com_show_warnings, 0
Com_slave_start, 0
Com_slave_stop, 0
Com_stmt_close, 536
Com_stmt_execute, 536
Com_stmt_fetch, 0
Com_stmt_prepare, 536
Com_stmt_reprepare, 0
Com_stmt_reset, 0
Com_stmt_send_long_data, 0
Com_truncate, 0
Com_uninstall_plugin, 0
Com_unlock_tables, 3
Com_update, 174401
Com_update_multi, 0
Com_xa_commit, 0
Com_xa_end, 0
Com_xa_prepare, 0
Com_xa_recover, 0
Com_xa_rollback, 0
Com_xa_start, 0
Compression, OFF
Connections, 33107958
Created_tmp_disk_tables, 15056
Created_tmp_files, 3067
Created_tmp_tables, 76714
Delayed_errors, 0
Delayed_insert_threads, 0
Delayed_writes, 0
Flush_commands, 5
Handler_commit, 42098418
Handler_delete, 50581
Handler_discover, 0
Handler_prepare, 8244948
Handler_read_first, 187940
Handler_read_key, 210889806
Handler_read_last, 2562
Handler_read_next, 235534577
Handler_read_prev, 944581109
Handler_read_rnd, 1984245
Handler_read_rnd_next, 4128983877
Handler_rollback, 32895675
Handler_savepoint, 0
Handler_savepoint_rollback, 0
Handler_update, 35296124
Handler_write, 31003805
Innodb_buffer_pool_pages_data, 262063
Innodb_buffer_pool_pages_dirty, 181
Innodb_buffer_pool_pages_flushed, 1073914
Innodb_buffer_pool_pages_free, 0
Innodb_buffer_pool_pages_misc, 81
Innodb_buffer_pool_pages_total, 262144
Innodb_buffer_pool_read_ahead_rnd, 0
Innodb_buffer_pool_read_ahead, 573918785
Innodb_buffer_pool_read_ahead_evicted, 465869
Innodb_buffer_pool_read_requests, 1583154591
Innodb_buffer_pool_reads, 6918613
Innodb_buffer_pool_wait_free, 0
Innodb_buffer_pool_write_requests, 23935481
Innodb_data_fsyncs, 4531875
Innodb_data_pending_fsyncs, 1
Innodb_data_pending_reads, 0
Innodb_data_pending_writes, 0
Innodb_data_read, 3315879936
Innodb_data_reads, 580850961
Innodb_data_writes, 5054458
Innodb_data_written, 46713856
Innodb_dblwr_pages_written, 536957
Innodb_dblwr_writes, 18531
Innodb_have_atomic_builtins, ON
Innodb_log_waits, 0
Innodb_log_write_requests, 3243758
Innodb_log_writes, 4481087
Innodb_os_log_fsyncs, 4496724
Innodb_os_log_pending_fsyncs, 1
Innodb_os_log_pending_writes, 0
Innodb_os_log_written, 3918738944
Innodb_page_size, 16384
Innodb_pages_created, 47610
Innodb_pages_read, 580851446
Innodb_pages_written, 536957
Innodb_row_lock_current_waits, 0
Innodb_row_lock_time, 8749
Innodb_row_lock_time_avg, 11
Innodb_row_lock_time_max, 114
Innodb_row_lock_waits, 771
Innodb_rows_deleted, 50581
Innodb_rows_inserted, 4969966
Innodb_rows_read, 2753561383
Innodb_rows_updated, 582607
Innodb_truncated_status_writes, 0
Key_blocks_not_flushed, 0
Key_blocks_unused, 6698
Key_blocks_used, 261
Key_read_requests, 2125947
Key_reads, 36
Key_write_requests, 198899
Key_writes, 0
Last_query_cost, 0.000000
Max_used_connections, 94
Not_flushed_delayed_rows, 0
Open_files, 3
Open_streams, 0
Open_table_definitions, 400
Open_tables, 43
Opened_files, 208257
Opened_table_definitions, 87043
Opened_tables, 92483
Performance_schema_cond_classes_lost, 0
Performance_schema_cond_instances_lost, 0
Performance_schema_file_classes_lost, 0
Performance_schema_file_handles_lost, 0
Performance_schema_file_instances_lost, 0
Performance_schema_locker_lost, 0
Performance_schema_mutex_classes_lost, 0
Performance_schema_mutex_instances_lost, 0
Performance_schema_rwlock_classes_lost, 0
Performance_schema_rwlock_instances_lost, 0
Performance_schema_table_handles_lost, 0
Performance_schema_table_instances_lost, 0
Performance_schema_thread_classes_lost, 0
Performance_schema_thread_instances_lost, 0
Prepared_stmt_count, 0
Qcache_free_blocks, 0
Qcache_free_memory, 0
Qcache_hits, 0
Qcache_inserts, 0
Qcache_lowmem_prunes, 0
Qcache_not_cached, 0
Qcache_queries_in_cache, 0
Qcache_total_blocks, 0
Queries, 304460265
Questions, 303968470
Rpl_status, AUTH_MASTER
Select_full_join, 967
Select_full_range_join, 0
Select_range, 38133
Select_range_check, 0
Select_scan, 228931
Slave_heartbeat_period, 0.000
Slave_open_temp_tables, 0
Slave_received_heartbeats, 0
Slave_retried_transactions, 0
Slave_running, OFF
Slow_launch_threads, 0
Slow_queries, 2533
Sort_merge_passes, 1465
Sort_range, 32838342
Sort_rows, 1875805
Sort_scan, 9814
Ssl_accept_renegotiates, 0
Ssl_accepts, 0
Ssl_callback_cache_hits, 0
Ssl_cipher,
Ssl_cipher_list,
Ssl_client_connects, 0
Ssl_connect_renegotiates, 0
Ssl_ctx_verify_depth, 0
Ssl_ctx_verify_mode, 0
Ssl_default_timeout, 0
Ssl_finished_accepts, 0
Ssl_finished_connects, 0
Ssl_session_cache_hits, 0
Ssl_session_cache_misses, 0
Ssl_session_cache_mode, NONE
Ssl_session_cache_overflows, 0
Ssl_session_cache_size, 0
Ssl_session_cache_timeouts, 0
Ssl_sessions_reused, 0
Ssl_used_session_cache_entries, 0
Ssl_verify_depth, 0
Ssl_verify_mode, 0
Ssl_version,
Table_locks_immediate, 36266242
Table_locks_waited, 0
Tc_log_max_pages_used, 0
Tc_log_page_size, 0
Tc_log_page_waits, 0
Threads_cached, 3
Threads_connected, 27
Threads_created, 8926
Threads_running, 4
Uptime, 159095
Uptime_since_flush_status, 159095
Update 2: Thanks to Rick James, This is the show variables. I don't have access to slow log now. But I will take a look at your website and learn about it.
auto_increment_increment 1
auto_increment_offset 1
autocommit ON
automatic_sp_privileges ON
back_log 50
basedir C:\Program Files\MySQL\MySQL Server 5.5\
big_tables OFF
binlog_cache_size 32768
binlog_direct_non_transactional_updates OFF
binlog_format ROW
binlog_stmt_cache_size 32768
bulk_insert_buffer_size 8388608
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8
character_set_filesystem binary
character_set_results utf8mb4
character_set_server utf8
character_set_system utf8
character_sets_dir C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\
collation_connection utf8mb4_general_ci
collation_database utf8_general_ci
collation_server utf8_general_ci
completion_type NO_CHAIN
concurrent_insert AUTO
connect_timeout 10
datadir C:\ProgramData\MySQL\MySQL Server 5.5\data\
date_format %Y-%m-%d
datetime_format %Y-%m-%d %H:%i:%s
default_storage_engine InnoDB
default_week_format 0
delay_key_write ON
delayed_insert_limit 100
delayed_insert_timeout 300
delayed_queue_size 1000
div_precision_increment 4
engine_condition_pushdown ON
error_count 0
event_scheduler OFF
expire_logs_days 0
external_user
flush OFF
flush_time 1800
foreign_key_checks ON
ft_boolean_syntax + -><()~*:""&|
ft_max_word_len 84
ft_min_word_len 4
ft_query_expansion_limit 20
ft_stopword_file (built-in)
general_log OFF
general_log_file C:\ProgramData\MySQL\MySQL Server 5.5\data\PC.log
group_concat_max_len 1024
have_compress YES
have_crypt NO
have_csv YES
have_dynamic_loading YES
have_geometry YES
have_innodb YES
have_ndbcluster NO
have_openssl DISABLED
have_partitioning YES
have_profiling YES
have_query_cache YES
have_rtree_keys YES
have_ssl DISABLED
have_symlink YES
hostname Vibrant7-PC
identity 0
ignore_builtin_innodb OFF
init_connect
init_file
init_slave
innodb_adaptive_flushing ON
innodb_adaptive_hash_index ON
innodb_additional_mem_pool_size 33554432
innodb_autoextend_increment 8
innodb_autoinc_lock_mode 1
innodb_buffer_pool_instances 1
innodb_buffer_pool_size 4294967296
innodb_change_buffering all
innodb_checksums ON
innodb_commit_concurrency 0
innodb_concurrency_tickets 500
innodb_data_file_path ibdata1:10M:autoextend
innodb_data_home_dir
innodb_doublewrite ON
innodb_fast_shutdown 1
innodb_file_format Antelope
innodb_file_format_check ON
innodb_file_format_max Antelope
innodb_file_per_table OFF
innodb_flush_log_at_trx_commit 1
innodb_flush_method
innodb_force_load_corrupted OFF
innodb_force_recovery 0
innodb_io_capacity 200
innodb_large_prefix OFF
innodb_lock_wait_timeout 50
innodb_locks_unsafe_for_binlog OFF
innodb_log_buffer_size 16777216
innodb_log_file_size 1073741824
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_purge_batch_size 20
innodb_purge_threads 0
innodb_random_read_ahead OFF
innodb_read_ahead_threshold 56
innodb_read_io_threads 4
innodb_replication_delay 0
innodb_rollback_on_timeout OFF
innodb_rollback_segments 128
innodb_spin_wait_delay 6
innodb_stats_method nulls_equal
innodb_stats_on_metadata ON
innodb_stats_sample_pages 8
innodb_strict_mode OFF
innodb_support_xa ON
innodb_sync_spin_loops 30
innodb_table_locks ON
innodb_thread_concurrency 25
innodb_thread_sleep_delay 10000
innodb_use_native_aio ON
innodb_use_sys_malloc ON
innodb_version 1.1.8
innodb_write_io_threads 4
insert_id 0
interactive_timeout 28800
join_buffer_size 131072
keep_files_on_create OFF
key_buffer_size 8388608
key_cache_age_threshold 300
key_cache_block_size 1024
key_cache_division_limit 100
large_files_support ON
large_page_size 0
large_pages OFF
last_insert_id 0
lc_messages en_US
lc_messages_dir C:\Program Files\MySQL\MySQL Server 5.5\share\
lc_time_names en_US
license GPL
local_infile ON
lock_wait_timeout 31536000
log OFF
log_bin ON
log_bin_trust_function_creators OFF
log_error C:\ProgramData\MySQL\MySQL Server 5.5\data\PC.err
log_output FILE
log_queries_not_using_indexes OFF
log_slave_updates OFF
log_slow_queries OFF
log_warnings 1
long_query_time 10.000000
low_priority_updates OFF
lower_case_file_system ON
lower_case_table_names 1
max_allowed_packet 1048576
max_binlog_cache_size 18446744073709547520
max_binlog_size 1073741824
max_binlog_stmt_cache_size 18446744073709547520
max_connect_errors 10
max_connections 100
max_delayed_threads 20
max_error_count 64
max_heap_table_size 16777216
max_insert_delayed_threads 20
max_join_size 18446744073709551615
max_length_for_sort_data 1024
max_long_data_size 1048576
max_prepared_stmt_count 16382
max_relay_log_size 0
max_seeks_for_key 4294967295
max_sort_length 1024
max_sp_recursion_depth 0
max_tmp_tables 32
max_user_connections 0
max_write_lock_count 4294967295
metadata_locks_cache_size 1024
min_examined_row_limit 0
multi_range_count 256
myisam_data_pointer_size 6
myisam_max_sort_file_size 107374182400
myisam_mmap_size 18446744073709551615
myisam_recover_options OFF
myisam_repair_threads 1
myisam_sort_buffer_size 2147483648
myisam_stats_method nulls_unequal
myisam_use_mmap OFF
named_pipe OFF
net_buffer_length 16384
net_read_timeout 30
net_retry_count 10
net_write_timeout 60
new OFF
old OFF
old_alter_table OFF
old_passwords OFF
open_files_limit 2670
optimizer_prune_level 1
optimizer_search_depth 62
optimizer_switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on
performance_schema OFF
performance_schema_events_waits_history_long_size 10000
performance_schema_events_waits_history_size 10
performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000
performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000
performance_schema_max_mutex_classes 200
performance_schema_max_mutex_instances 1000000
performance_schema_max_rwlock_classes 30
performance_schema_max_rwlock_instances 1000000
performance_schema_max_table_handles 100000
performance_schema_max_table_instances 50000
performance_schema_max_thread_classes 50
performance_schema_max_thread_instances 1000
pid_file C:\ProgramData\MySQL\MySQL Server 5.5\data\PC.pid
plugin_dir C:\Program Files\MySQL\MySQL Server 5.5\lib\plugin\
port 3306
preload_buffer_size 32768
profiling OFF
profiling_history_size 15
protocol_version 10
proxy_user
pseudo_thread_id 40772511
query_alloc_block_size 8192
query_cache_limit 1048576
query_cache_min_res_unit 4096
query_cache_size 0
query_cache_type ON
query_cache_wlock_invalidate OFF
query_prealloc_size 8192
rand_seed1 0
rand_seed2 0
range_alloc_block_size 4096
read_buffer_size 65536
read_only OFF
read_rnd_buffer_size 262144
relay_log
relay_log_index
relay_log_info_file relay-log.info
relay_log_purge ON
relay_log_recovery OFF
relay_log_space_limit 0
report_host
report_password
report_port 3306
report_user
rpl_recovery_rank 0
secure_auth OFF
secure_file_priv
server_id 1
shared_memory OFF
shared_memory_base_name MYSQL
skip_external_locking ON
skip_name_resolve OFF
skip_networking OFF
skip_show_database OFF
slave_compressed_protocol OFF
slave_exec_mode STRICT
slave_load_tmpdir C:\Windows\TEMP
slave_net_timeout 3600
slave_skip_errors OFF
slave_transaction_retries 10
slave_type_conversions
slow_launch_time 2
slow_query_log OFF
slow_query_log_file C:\ProgramData\MySQL\MySQL Server 5.5\data\PC-slow.log
socket MySQL
sort_buffer_size 262144
sql_auto_is_null OFF
sql_big_selects ON
sql_big_tables OFF
sql_buffer_result OFF
sql_log_bin ON
sql_log_off OFF
sql_low_priority_updates OFF
sql_max_join_size 18446744073709551615
sql_mode STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
sql_notes ON
sql_quote_show_create ON
sql_safe_updates ON
sql_select_limit 18446744073709551615
sql_slave_skip_counter 0
sql_warnings OFF
ssl_ca
ssl_capath
ssl_cert
ssl_cipher
ssl_key
storage_engine InnoDB
stored_program_cache 256
sync_binlog 0
sync_frm ON
sync_master_info 0
sync_relay_log 0
sync_relay_log_info 0
system_time_zone Pacific Daylight Time
table_definition_cache 400
table_open_cache 256
thread_cache_size 8
thread_concurrency 10
thread_handling one-thread-per-connection
thread_stack 262144
time_format %H:%i:%s
time_zone SYSTEM
timed_mutexes OFF
timestamp 1630002865
tmp_table_size 543162368
tmpdir C:\Windows\TEMP
transaction_alloc_block_size 8192
transaction_prealloc_size 4096
tx_isolation REPEATABLE-READ
unique_checks ON
updatable_views_with_limit YES
version 5.5.21-log
version_comment MySQL Community Server (GPL)
version_compile_machine x86
version_compile_os Win64
wait_timeout 28800
warning_count 0
Innodb_buffer_pool_read_requests
vsInnodb_buffer_pool_reads
shows there is sufficient buffer pool size.Threads_connected
(27),Threads_running
(4) tell me that its a slow time of day, or theMax_used_connections
is an anomaly (guessing connections waiting on table cache). I'd base the new hardware calculations of the actual memory/cpu used in your current situation.