MySQL InnoDB database ‘hangs’

innodbMySQLoptimizationperformance

I have a problem with a MySql server causing it to freeze all the time. In phpMyAdmin when this happens I can see in "Show Processlist" are lots of processes for User "unauthenticated user" with Command "connect" and State "reading from net".

The database is using InnoDB but I also use one table running MyISAM to be able to perform full text search. The server has about 4GB memory, less than 1GB in use.

I have been using the slow Query Log from MySql to find the queries not using indexes. I also think I need to do some changes / tweaking on the server variables. I really could use some help here and therefore I'm posting both SHOW GLOBAL STATUS and SHOW GLOBAL VARIABLES here and maybe you can give me some ideas how I should set the variables?

EDIT: I realized I was using pooling=false in my connection string to the database. I changed this to default pooling=true and now the performance seems much better. Could that have been the problem?

Current SHOW GLOBAL STATUS:

Aborted_clients     156
Aborted_connects    16
Binlog_cache_disk_use   0
Binlog_cache_use    0
Binlog_stmt_cache_disk_use  0
Binlog_stmt_cache_use   0
Bytes_received  7579352758
Bytes_sent  141001605296
Com_admin_commands  1082
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     0
Com_alter_tablespace    0
Com_analyze     0
Com_begin   48
Com_binlog  0
Com_call_procedure  0
Com_change_db   6598162
Com_change_master   0
Com_check   0
Com_checksum    0
Com_commit  0
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    0
Com_create_trigger  0
Com_create_udf  0
Com_create_user     0
Com_create_view     0
Com_dealloc_sql     0
Com_delete  142688
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  0
Com_drop_trigger    0
Com_drop_user   0
Com_drop_view   0
Com_empty_query     0
Com_execute_sql     0
Com_flush   0
Com_grant   0
Com_ha_close    0
Com_ha_open     0
Com_ha_read     0
Com_help    0
Com_insert  1445224
Com_insert_select   920
Com_install_plugin  0
Com_kill    11
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     0
Com_replace_select  0
Com_reset   0
Com_resignal    0
Com_revoke  0
Com_revoke_all  0
Com_rollback    0
Com_rollback_to_savepoint   0
Com_savepoint   0
Com_select  4083099
Com_set_option  13201112
Com_signal  0
Com_show_authors    0
Com_show_binlog_events  0
Com_show_binlogs    21
Com_show_charsets   0
Com_show_collations     6596863
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   1777
Com_show_create_trigger     24
Com_show_databases  18
Variable_name   Value
Com_show_engine_logs    0
Com_show_engine_mutex   0
Com_show_engine_status  0
Com_show_events     0
Com_show_errors     0
Com_show_fields     1247
Com_show_function_status    1
Com_show_grants     2
Com_show_keys   0
Com_show_master_status  3
Com_show_open_tables    0
Com_show_plugins    31
Com_show_privileges     0
Com_show_procedure_status   1
Com_show_processlist    13
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     12
Com_show_storage_engines    0
Com_show_table_status   1187
Com_show_tables     78
Com_show_triggers   1184
Com_show_variables  6596881
Com_show_warnings   586
Com_slave_start     0
Com_slave_stop  0
Com_stmt_close  0
Com_stmt_execute    0
Com_stmt_fetch  0
Com_stmt_prepare    0
Com_stmt_reprepare  0
Com_stmt_reset  0
Com_stmt_send_long_data     0
Com_truncate    0
Com_uninstall_plugin    0
Com_unlock_tables   48
Com_update  659355
Com_update_multi    8320
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     6597009
Created_tmp_disk_tables     25939
Created_tmp_files   17999
Created_tmp_tables  14262327
Delayed_errors  0
Delayed_insert_threads  0
Delayed_writes  0
Flush_commands  1
Handler_commit  6316749
Handler_delete  51862
Handler_discover    0
Handler_prepare     0
Handler_read_first  264718
Handler_read_key    461015559
Handler_read_last   1132
Handler_read_next   927027451
Handler_read_prev   898395515
Handler_read_rnd    2145244
Handler_read_rnd_next   3970915350
Handler_rollback    133
Handler_savepoint   0
Handler_savepoint_rollback  0
Handler_update  2718211
Handler_write   3653943074
Innodb_buffer_pool_pages_data   54158
Innodb_buffer_pool_pages_dirty  496
Innodb_buffer_pool_pages_flushed    8415286
Innodb_buffer_pool_pages_free   1
Innodb_buffer_pool_pages_misc   11376
Innodb_buffer_pool_pages_total  65535
Innodb_buffer_pool_read_ahead_rnd   0
Innodb_buffer_pool_read_ahead   680486
Innodb_buffer_pool_read_ahead_evicted   463292
Innodb_buffer_pool_read_requests    3339098369
Innodb_buffer_pool_reads    5192591
Innodb_buffer_pool_wait_free    0
Innodb_buffer_pool_write_requests   16630766
Innodb_data_fsyncs  2177985
Innodb_data_pending_fsyncs  0
Innodb_data_pending_reads   0
Innodb_data_pending_writes  0
Innodb_data_read    103331024896
Innodb_data_reads   6306700
Innodb_data_writes  6345720
Innodb_data_written     139541615616
Innodb_dblwr_pages_written  4207643
Innodb_dblwr_writes     73094
Innodb_have_atomic_builtins     ON
Innodb_log_waits    0
Innodb_log_write_requests   1261730
Innodb_log_writes   1998194
Innodb_os_log_fsyncs    2032461
Variable_name   Value
Innodb_os_log_pending_fsyncs    0
Innodb_os_log_pending_writes    0
Innodb_os_log_written   1648348672
Innodb_page_size    16384
Innodb_pages_created    20015
Innodb_pages_read   6306691
Innodb_pages_written    4207643
Innodb_row_lock_current_waits   0
Innodb_row_lock_time    3
Innodb_row_lock_time_avg    1
Innodb_row_lock_time_max    1
Innodb_row_lock_waits   2
Innodb_rows_deleted     51862
Innodb_rows_inserted    1444543
Innodb_rows_read    2489728185
Innodb_rows_updated     1528769
Innodb_truncated_status_writes  0
Key_blocks_not_flushed  0
Key_blocks_unused   13
Key_blocks_used     13
Key_read_requests   734915677
Key_reads   10415027
Key_write_requests  121904
Key_writes  113773
Last_query_cost     0.000000
Max_used_connections    90
Not_flushed_delayed_rows    0
Open_files  0
Open_streams    0
Open_table_definitions  113
Open_tables     4
Opened_files    1266796
Opened_table_definitions    109
Opened_tables   6207864
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  680
Qcache_free_memory  1672056
Qcache_hits     1252252
Qcache_inserts  4010949
Qcache_lowmem_prunes    334062
Qcache_not_cached   72286
Qcache_queries_in_cache     1115
Qcache_total_blocks     3259
Queries     47199162
Questions   47183133
Rpl_status  AUTH_MASTER
Select_full_join    988
Select_full_range_join  0
Select_range    158563
Select_range_check  0
Select_scan     14053416
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    132
Sort_merge_passes   8997
Sort_range  715335
Sort_rows   18485859
Sort_scan   173741
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   10953974
Variable_name   Value
Table_locks_waited  1791
Tc_log_max_pages_used   0
Tc_log_page_size    0
Tc_log_page_waits   0
Threads_cached  86
Threads_connected   4
Threads_created     90
Threads_running     1
Uptime  347948
Uptime_since_flush_status   347948

Current SHOW GLOBAL VARIABLES:

auto_increment_increment    1
auto_increment_offset   1
autocommit  ON
automatic_sp_privileges     ON
back_log    50
basedir     /usr
big_tables  OFF
binlog_cache_size   32768
binlog_direct_non_transactional_updates     OFF
binlog_format   STATEMENT
binlog_stmt_cache_size  32768
bulk_insert_buffer_size     8388608
character_set_client    latin1
character_set_connection    latin1
character_set_database  latin1
character_set_filesystem    binary
character_set_results   latin1
character_set_server    latin1
character_set_system    utf8
character_sets_dir  /usr/share/mysql/charsets/
collation_connection    latin1_swedish_ci
collation_database  latin1_swedish_ci
collation_server    latin1_swedish_ci
completion_type     NO_CHAIN
concurrent_insert   AUTO
connect_timeout     10
datadir     /var/lib/mysql/
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
event_scheduler     OFF
expire_logs_days    0
flush   OFF
flush_time  0
foreign_key_checks  ON
ft_boolean_syntax   + -><()~*:""&|
ft_max_word_len     84
ft_min_word_len     3
ft_query_expansion_limit    20
ft_stopword_file    (built-in)
general_log     OFF
general_log_file    /var/lib/mysql/db.log
group_concat_max_len    1024
have_compress   YES
have_crypt  YES
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    silldb5
ignore_builtin_innodb   OFF
init_connect    
init_file   
init_slave  
innodb_adaptive_flushing    ON
innodb_adaptive_hash_index  ON
innodb_additional_mem_pool_size     8388608
innodb_autoextend_increment     8
innodb_autoinc_lock_mode    1
innodb_buffer_pool_instances    1
innodb_buffer_pool_size     1073741824
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  8388608
innodb_log_file_size    5242880
innodb_log_files_in_group   2
innodb_log_group_home_dir   ./
Variable_name   Value
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   0
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
interactive_timeout     28800
join_buffer_size    131072
keep_files_on_create    OFF
key_buffer_size     16384
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
lc_messages     en_US
lc_messages_dir     /usr/share/mysql/
lc_time_names   en_US
license     GPL
local_infile    ON
lock_wait_timeout   31536000
locked_in_memory    OFF
log     OFF
log_bin     OFF
log_bin_trust_function_creators     OFF
log_error   /var/lib/mysql/db.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  OFF
lower_case_table_names  0
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     2000
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   18446744073709551615
max_sort_length     1024
max_sp_recursion_depth  0
max_tmp_tables  32
max_user_connections    0
max_write_lock_count    18446744073709551615
metadata_locks_cache_size   1024
min_examined_row_limit  0
multi_range_count   256
myisam_data_pointer_size    6
myisam_max_sort_file_size   9223372036853727232
myisam_mmap_size    18446744073709551615
myisam_recover_options  OFF
myisam_repair_threads   1
myisam_sort_buffer_size     8388608
myisam_stats_method     nulls_unequal
myisam_use_mmap     OFF
net_buffer_length   2048
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    10000
optimizer_prune_level   1
Variable_name   Value
optimizer_search_depth  62
optimizer_switch    index_merge=on,index_merge_union=on,index_merge_so...
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    /var/run/mysqld/mysqld.pid
plugin_dir  /usr/lib64/mysql/plugin
port    3306
preload_buffer_size     32768
profiling   OFF
profiling_history_size  15
protocol_version    10
query_alloc_block_size  8192
query_cache_limit   1048576
query_cache_min_res_unit    4096
query_cache_size    8388608
query_cache_type    ON
query_cache_wlock_invalidate    OFF
query_prealloc_size     8192
range_alloc_block_size  4096
read_buffer_size    262144
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
skip_external_locking   ON
skip_name_resolve   ON
skip_networking     OFF
skip_show_database  OFF
slave_compressed_protocol   OFF
slave_exec_mode     STRICT
slave_load_tmpdir   /tmp
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     /var/lib/mysql/slow.log
socket  /var/lib/mysql/mysql.sock
sort_buffer_size    32768
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    
sql_notes   ON
sql_quote_show_create   ON
sql_safe_updates    OFF
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
sync_binlog     0
sync_frm    ON
sync_master_info    0
sync_relay_log  0
sync_relay_log_info     0
system_time_zone    CET
table_definition_cache  400
table_open_cache    4
thread_cache_size   100
thread_concurrency  8
thread_handling     one-thread-per-connection
thread_stack    524288
time_format     %H:%i:%s
Variable_name   Value
time_zone   SYSTEM
timed_mutexes   OFF
tmp_table_size  16777216
tmpdir  /tmp
transaction_alloc_block_size    8192
transaction_prealloc_size   4096
tx_isolation    REPEATABLE-READ
unique_checks   ON
updatable_views_with_limit  YES
version     5.5.20
version_comment     MySQL Community Server (GPL) by Remi
version_compile_machine     x86_64
version_compile_os  Linux
wait_timeout    28800

Best Answer

Initial thought is that you have a process that is connecting to the database for something and then crashing at the client end. It's not exiting gracefully and is leaving the connection open. This is using up the available connections to MySQL and eventually MySQL runs out. The engine isn't so much as hanging but running out of connections.

What you've done by enabling connection pooling will help, but you still have the issue of the number of clients trying to connect at once.

Try running ps axf from the command line while you're seeing this problem to see what is running that could be holding this number of connections open.