it-swarm.com.de

MySQL Beim Lesen von Verbundtabellen wurde eine Zeitüberschreitung beim Lesen von Kommunikationspaketen festgestellt

Ich habe zwei Server (Solomon und Gelassenheit).
Beide Server sind Windows Server (2012 & 2016), IIS, PHP (5.6.31), MySQL (5.5).

Auf Solomon habe ich mehrere Verbundtabellen eingerichtet, die auf Tabellen zur Gelassenheit verweisen. Und ich habe einen Benutzer auf Solomon eingerichtet, der speziell für die Verbindung mit diesen Verbundtabellen eingerichtet ist.

Die Konten werden auf die beiden Server aufgeteilt. Die Hälfte meiner Benutzerkonten ist auf Solomon, die andere Hälfte auf Gelassenheit. Die Anmeldeseite für alle Benutzer ist jedoch ruhig. Auf diese Weise kann der Serenity-Server überprüfen, auf welchen Server dieser Benutzer geleitet werden soll, und leitet dann entweder auf Solomon oder Serenity zur Kennwortseite weiter. Auf diese Weise gehen alle Benutzer durch Gelassenheit, aber nicht alle Benutzer bleiben dort.

Es gibt jedoch einige andere Skripte, die auf Solomon ausgeführt werden und diese Verbundtabellen auf Gelassenheit prüfen. Obwohl der Benutzer zu Solomon übergegangen ist, fragt die Site diese Verbundtabellen immer noch ab und trifft dadurch auf Gelassenheit.

Soweit ich weiß, sollte das kein Problem sein, aber aus Gründen der Gelassenheit erhalte ich in mysqlerror.log viele Warnungen wie folgt: (Benutzername, Datenbankname und IP-Adresse verschleiert)

180430 16:21:00 [Warning] Aborted connection 24784 to db: 'dbname_blah' user: 'federated_user_blah' Host: 'xxx.xxx.xx.xx' (Got timeout reading communication packets)

Auf Solomon bekomme ich diese Warnungen nicht. Außerdem erwähnen 95% dieser Warnungen den Verbundbenutzer, obwohl 99% meiner Abfragen mit einem anderen Benutzer ausgeführt werden. Deshalb vermute ich, dass es ein Problem mit den Verbundtabellen/Benutzern ist.

Ich würde mir darüber keine Sorgen machen, außer dass ich viele Probleme mit der Gelassenheit hatte und ich vermute, dass dies damit zusammenhängt. Heute ist meine Datenbank gerade abgestürzt und ich musste den Server neu starten. Viele verärgerte Kunden.

Andere Symptome

In den letzten Monaten bin ich auf scheinbar gleichzeitige Verbindungsbeschränkungen gestoßen, da ich mehrere Skripte habe, die viele Datenzeilen (normalerweise zwischen 50 und 200) durchlaufen und mit Ajax für jede Zeile ein Sende-E-Mail-Skript aufrufen oder in einem anderen Fall Stunden berechnen. Manchmal führen diese Schleifenskripte nicht alle Aufrufe in der Schleife aus, sondern sterben stattdessen mit 500 Fehlern, insbesondere wenn sich viele Zeilen in der Schleife befinden (wie mehr als 100 Zeilen). Kleinere Schleifen (wie 50 Datensätze) haben normalerweise kein Problem.

Laut Microsoft gibt es in IIS jedoch keine gleichzeitigen Verbindungsbeschränkungen mehr.

Zeitüberschreitungen auf der Website Manchmal können auch nicht alle meiner SQL-Anweisungen die Ausführung beim Laden der Seite beenden. Sie haben nur eine Zeitüberschreitung und geben keine Zeilen zurück. Wenn ich dann die Seite aktualisiere, werden sie normalerweise geladen, aber wenn das Laden länger als ein paar Sekunden dauert, weiß ich, dass einige Anweisungen abgelaufen sind.

Zeitüberschreitungen in MySQL Workbench Wenn ich versuche, eine lange laufende Abfrage in MySQL Workbench auszuführen, tritt immer eine Zeitüberschreitung zwischen 10 und 12 Sekunden auf. Wenn ich also mehr als 30.000 Zeilen gleichzeitig auswählen oder löschen möchte, tritt normalerweise eine Zeitüberschreitung auf, sodass ich immer die Anzahl der Zeilen begrenzen muss, mit denen ich arbeite.

Sicherung schlägt fehl Außerdem sind meine Sicherungen mit MySQLDump fehlgeschlagen. Sie schlagen immer fehl, wenn Sie versuchen, eine ziemlich große Tabelle zu sichern. Die kleineren Tabellen sind kein Problem, aber sie können diese große Tabelle mit etwa 600 MB Daten in 7 Millionen Zeilen nicht sichern.

Inaktive Threads Vor einigen Wochen lief der Server sehr langsam und ich stellte fest, dass Hunderte von inaktiven Datenbank-Threads herumstanden und nicht starben. Ich habe dieses Problem irgendwie gelöst, indem ich mein wait_timeout auf 20 Sekunden gesetzt habe, aber das schien eher ein Patch als eine Lösung zu sein.

Limit für offene Dateien Ich bin auf ein anderes Problem gestoßen, als ich my.ini das Limit für offene Dateien = 4096 hinzugefügt habe, da dies aufgrund einer anderen Einstellung empfohlen wurde angepasst, um zu versuchen, diese Probleme zu lösen, die ich hatte. Das Hinzufügen von open-files-limit = 4096 war jedoch ein großer Fehler, da dies den Server ziemlich tötete. Sobald ich das auskommentierte, funktionierte es wieder normal.

Ich habe all diese Probleme bisher "behoben", aber ich habe das Gefühl, dass ich nicht die Hauptursache all dieser Probleme anspreche, sondern sie nur repariere.

Unterm Strich weiß ich, dass mit meinem Server etwas nicht stimmt, und ich vermute, dass alles mit dieser Warnung zusammenhängt, die ich immer wieder in mysqlerror.log sehe. Kann jemand etwas Licht ins Dunkel bringen, warum ich diese Warnmeldung erhalte? Könnte es ein DNS-Problem sein? Ein Berechtigungsproblem? Ein Fehler in MySQL?

Ich sollte darauf hinweisen, dass meine Server beide sehr beschäftigt sind. Jeder führt mehrere tausend Select-Anweisungen pro Sekunde aus.

Meine gesamte my.ini-Datei (Ich habe Kommentare entfernt, um sie kurz zu halten)

[client]
port=3306

[mysql]
default-character-set=UTF8

[mysqld]
federated

ft_min_Word_len = 3
log_warnings = 2
log_error=c:\inetpub\wwwroot\mysqlerror.log
connect_timeout = 40
wait_timeout = 40  
max_allowed_packet = 500M
net_read_timeout = 600
net_write_timeout = 600
port=3306

basedir="C:/Program Files/MySQL/MySQL Server 5.5/"
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
character-set-server=UTF8
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

max_connections=1500
query_cache_size=50M
table_cache=2000
tmp_table_size=256M
thread_cache_size=64

myisam_max_sort_file_size=100G
myisam_sort_buffer_size=69M
key_buffer_size=384M
read_buffer_size=1MB
read_rnd_buffer_size=256K
sort_buffer_size=256K

innodb_additional_mem_pool_size=3M
innodb_flush_log_at_trx_commit=0
innodb_log_buffer_size=32M
innodb_buffer_pool_size=20G
innodb_log_file_size=256M
innodb_thread_concurrency=66
innodb_log_files_in_group = 2
innodb_log_group_home_dir = "C:/Program Files/MySQL/MySQL Server 5.5/data"
query_cache_type = 1

[mysqld_safe]
log_warnings = 2
log_error=c:\inetpub\wwwroot\mysqlerror.log

GLOBALEN STATUS ANZEIGEN

Aborted_clients 8050
Aborted_connects    5119
Binlog_cache_disk_use   0
Binlog_cache_use    0
Binlog_stmt_cache_disk_use  0
Binlog_stmt_cache_use   0
Bytes_received  99146740665
Bytes_sent  1312788340530
Com_admin_commands  642
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   0
Com_binlog  0
Com_call_procedure  0
Com_change_db   2451188
Com_change_master   0
Com_check   0
Com_checksum    0
Com_commit  0
Com_create_db   8
Com_create_event    0
Com_create_function 0
Com_create_index    0
Com_create_procedure    0
Com_create_server   0
Com_create_table    5
Com_create_trigger  0
Com_create_udf  0
Com_create_user 0
Com_create_view 0
Com_dealloc_sql 0
Com_delete  2298884
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  80433
Com_insert_select   3662
Com_install_plugin  0
Com_kill    143
Com_load    0
Com_lock_tables 796
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  28145718
Com_set_option  2449199
Com_signal  0
Com_show_authors    0
Com_show_binlog_events  0
Com_show_binlogs    0
Com_show_charsets   1
Com_show_collations 1
Com_show_contributors   0
Com_show_create_db  0
Com_show_create_event   0
Com_show_create_func    1900
Com_show_create_proc    0
Com_show_create_table   428
Com_show_create_trigger 3
Com_show_databases  622
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 624
Com_show_function_status    381
Com_show_grants 0
Com_show_keys   12
Com_show_master_status  620
Com_show_open_tables    166496
Com_show_plugins    0
Com_show_privileges 0
Com_show_procedure_status   381
Com_show_processlist    352275
Com_show_profile    0
Com_show_profiles   0
Com_show_relaylog_events    0
Com_show_slave_hosts    0
Com_show_slave_status   0
Com_show_status 33924
Com_show_storage_engines    1
Com_show_table_status   9631732
Com_show_tables 427
Com_show_triggers   481
Com_show_variables  779
Com_show_warnings   0
Com_slave_start 0
Com_slave_stop  0
Com_stmt_close  3543
Com_stmt_execute    3543
Com_stmt_fetch  0
Com_stmt_prepare    3543
Com_stmt_reprepare  0
Com_stmt_reset  0
Com_stmt_send_long_data 0
Com_truncate    0
Com_uninstall_plugin    0
Com_unlock_tables   760
Com_update  190582
Com_update_multi    112
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 4902222
Created_tmp_disk_tables 2044232
Created_tmp_files   16985
Created_tmp_tables  19170929
Delayed_errors  0
Delayed_insert_threads  0
Delayed_writes  0
Flush_commands  1
Handler_commit  30519874
Handler_delete  29441
Handler_discover    0
Handler_prepare 0
Handler_read_first  80100
Handler_read_key    3399084113
Handler_read_last   4209
Handler_read_next   402859087
Handler_read_prev   70204318
Handler_read_rnd    447590174
Handler_read_rnd_next   1384408509
Handler_rollback    30345
Handler_savepoint   0
Handler_savepoint_rollback  0
Handler_update  2708725
Handler_write   954512657
Innodb_buffer_pool_pages_data   165761
Innodb_buffer_pool_bytes_data   2715828224
Innodb_buffer_pool_pages_dirty  12
Innodb_buffer_pool_bytes_dirty  196608
Innodb_buffer_pool_pages_flushed    824631
Innodb_buffer_pool_pages_free   1126267
Innodb_buffer_pool_pages_misc   18692
Innodb_buffer_pool_pages_total  1310720
Innodb_buffer_pool_read_ahead_rnd   0
Innodb_buffer_pool_read_ahead   59353
Innodb_buffer_pool_read_ahead_evicted   0
Innodb_buffer_pool_read_requests    1411093916
Innodb_buffer_pool_reads    102643
Innodb_buffer_pool_wait_free    0
Innodb_buffer_pool_write_requests   2315658
Innodb_data_fsyncs  162458
Innodb_data_pending_fsyncs  0
Innodb_data_pending_reads   0
Innodb_data_pending_writes  0
Innodb_data_read    2682212352
Innodb_data_reads   163586
Innodb_data_writes  967117
Innodb_data_written 1404415488
Innodb_dblwr_pages_written  824631
Innodb_dblwr_writes 25129
Innodb_have_atomic_builtins ON
Innodb_log_waits    0
Innodb_log_write_requests   214508
Innodb_log_writes   97683
Innodb_os_log_fsyncs    112195
Innodb_os_log_pending_fsyncs    0
Innodb_os_log_pending_writes    0
Innodb_os_log_written   145280512
Innodb_page_size    16384
Innodb_pages_created    2314
Innodb_pages_read   163447
Innodb_pages_written    824631
Innodb_row_lock_current_waits   0
Innodb_row_lock_time    48
Innodb_row_lock_time_avg    0
Innodb_row_lock_time_max    15
Innodb_row_lock_waits   59
Innodb_rows_deleted 29441
Innodb_rows_inserted    83161
Innodb_rows_read    3180508723
Innodb_rows_updated 138346
Innodb_truncated_status_writes  0
Key_blocks_not_flushed  0
Key_blocks_unused   319666
Key_blocks_used 36
Key_read_requests   2183276
Key_reads   24
Key_write_requests  28603
Key_writes  0
Last_query_cost 0.000000
Max_used_connections    243
Not_flushed_delayed_rows    0
Open_files  2
Open_streams    0
Open_table_definitions  155
Open_tables 116
Opened_files    8196208
Opened_table_definitions    162
Opened_tables   12879
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  5902
Qcache_free_memory  17741584
Qcache_hits 631937988
Qcache_inserts  27096342
Qcache_lowmem_prunes    4224427
Qcache_not_cached   1048077
Qcache_queries_in_cache 12188
Qcache_total_blocks 32437
Queries 683199489
Questions   683165600
Rpl_status  AUTH_MASTER
Select_full_join    873441
Select_full_range_join  1591
Select_range    18162680
Select_range_check  0
Select_scan 10081022
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    174
Sort_merge_passes   15942
Sort_range  1874836
Sort_rows   91682277
Sort_scan   7671476
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   63848411
Table_locks_waited  4
Tc_log_max_pages_used   0
Tc_log_page_size    0
Tc_log_page_waits   0
Threads_cached  63
Threads_connected   14
Threads_created 1124
Threads_running 1
Uptime  186389
Uptime_since_flush_status   186389

GLOBALE VARIABLEN ANZEIGEN;

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   STATEMENT
binlog_stmt_cache_size  32768
bulk_insert_buffer_size 8388608
character_set_client    utf8
character_set_connection    utf8
character_set_database  utf8
character_set_filesystem    binary
character_set_results   utf8
character_set_server    utf8
character_set_system    utf8
character_sets_dir  C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\
collation_connection    utf8_general_ci
collation_database  utf8_general_ci
collation_server    utf8_general_ci
completion_type NO_CHAIN
concurrent_insert   AUTO
connect_timeout 40
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
event_scheduler OFF
expire_logs_days    0
flush   OFF
flush_time  1800
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    C:\ProgramData\MySQL\MySQL Server 5.5\Data\Serenity.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    Serenity
ignore_builtin_innodb   OFF
init_connect    
init_file   
init_slave  
innodb_adaptive_flushing    ON
innodb_adaptive_hash_index  ON
innodb_additional_mem_pool_size 3145728
innodb_autoextend_increment 8
innodb_autoinc_lock_mode    1
innodb_buffer_pool_instances    1
innodb_buffer_pool_size 21474836480
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  0
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  33554432
innodb_log_file_size    268435456
innodb_log_files_in_group   2
innodb_log_group_home_dir   C:\Program Files\MySQL\MySQL Server 5.5\data
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_print_all_deadlocks  OFF
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   66
innodb_thread_sleep_delay   10000
innodb_use_native_aio   ON
innodb_use_sys_malloc   ON
innodb_version  5.5.45
innodb_write_io_threads 4
interactive_timeout 28800
join_buffer_size    131072
keep_files_on_create    OFF
key_buffer_size 402653184
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 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 OFF
log_bin_trust_function_creators OFF
log_error   c:\inetpub\wwwroot\mysqlerror.log
log_output  FILE
log_queries_not_using_indexes   OFF
log_slave_updates   OFF
log_slow_queries    OFF
log_warnings    2
long_query_time 10.000000
low_priority_updates    OFF
lower_case_file_system  ON
lower_case_table_names  1
max_allowed_packet  524288000
max_binlog_cache_size   18446744073709547520
max_binlog_size 1073741824
max_binlog_stmt_cache_size  18446744073709547520
max_connect_errors  10
max_connections 1500
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  524288000
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 72351744
myisam_stats_method nulls_unequal
myisam_use_mmap OFF
named_pipe  OFF
net_buffer_length   16384
net_read_timeout    600
net_retry_count 10
net_write_timeout   600
new OFF
old OFF
old_alter_table OFF
old_passwords   OFF
open_files_limit    9548
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\Serenity.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
query_alloc_block_size  8192
query_cache_limit   1048576
query_cache_min_res_unit    4096
query_cache_size    52428800
query_cache_type    ON
query_cache_wlock_invalidate    OFF
query_prealloc_size 8192
range_alloc_block_size  4096
read_buffer_size    1048576
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   0
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_max_allowed_packet    1073741824
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\Serenity-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    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
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    Eastern Daylight Time
table_definition_cache  400
table_open_cache    2000
thread_cache_size   64
thread_concurrency  10
thread_handling one-thread-per-connection
thread_stack    262144
time_format %H:%i:%s
time_zone   SYSTEM
timed_mutexes   OFF
tmp_table_size  268435456
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.45
version_comment MySQL Community Server (GPL)
version_compile_machine x86
version_compile_os  Win64
wait_timeout    40

SHOW ENGINE INNODB STATUS;

Passte nicht in diesen Beitrag, also habe ich ihn in Pastebin gepostet: https://Pastebin.com/raw/GiJB8rCg

SOLOMON

Die folgenden sind von Solomon. Alle diese Solomon-Werte wurden am Samstagmittag gemessen, zu einer Zeit, in der nur sehr wenig Verkehr auf dem Server vorhanden ist.

Solomon my.ini https://Pastebin.com/raw/Y9SjtPWv

Solomon Globalen Status anzeigen https://Pastebin.com/raw/WJArViTq

Solomon Globale Variablen anzeigen https://Pastebin.com/raw/ff6t5euN

Solomon Show Engine InnoDB-Status https://Pastebin.com/raw/J2Yy54uF

2
Vincent

Mir ist jetzt klar, dass dieser Fehler auftritt, wenn inaktive Threads durch wait_timeout beendet werden. Mit anderen Worten, wenn wait_timeout auf 40 gesetzt ist und Leerlauf-Threads bis zu 40 Sekunden bleiben, wird der Fehler protokolliert, sobald sie 40 Sekunden erreichen und beendet werden: "Timeout beim Lesen von Kommunikationspaketen" .

Normalerweise können Sie verhindern, dass Threads durch wait_timeout getötet werden, indem Sie mysql_close () in Skripten aufrufen, wenn die Verbindung nicht mehr benötigt wird.

Leider funktioniert das nicht bei Abfragen, die über Verbundtabellen durchgeführt werden. Wenn eine Abfrage für eine Verbundtabelle ausgeführt wird, wird die Verbindung, die sie auf dem anderen Server herstellt, nicht von mysql_close () beendet. (Deshalb habe ich so viele Leerlaufverbindungen und warum werden sie nur durch wait_timeout getötet.)

1
Vincent

Beobachtungen:

  • Version: 5.5.45
  • 64 GB RAM
  • Betriebszeit = 2d 03:46:29
  • Sie laufen unter Windows.
  • Laufende 64-Bit-Version
  • Sie scheinen InnoDB vollständig (oder größtenteils) auszuführen.

Die wichtigeren Themen:

key_buffer_size = 20M
innodb_buffer_pool_instances = 16
long_query_time = 1
max_heap_table_size = 256M
thread_cache_size = 0
join_buffer_size = 1M

Es klingt so, als ob 64 GB für diesen Datensatz übertrieben sind. Wenn der Datensatz erheblich wächst, setzen Sie innodb_buffer_pool_size = 40G.

Es scheint einige Fragen zu geben, die verbessert werden könnten. Schalten Sie das Slowlog ein. warte einen Tag; Dann sehen Sie, welche Abfragen die "schlimmsten" sind. (Einige der folgenden Details weisen auf fehlende Indizes und/oder schlecht formulierte Abfragen hin.)

Es gibt weit mehr DELETEs als INSERTs; Was geht?

CREATE DATABASE ungefähr 4 mal am Tag; Was geht?

SHOW FUNCTION STATUS mehrmals pro Stunde; Was geht?

Es werden viele scheinbar unnötige SHOW Befehle ausgeführt. Dies könnte eine Belastung für das System sein.

Details und andere Beobachtungen:

( Key_blocks_used * 1024 / key_buffer_size ) = 36 * 1024 / 384M = 0.01% - Prozent des verwendeten Schlüsselpuffers. Hochwassermarke. - Verringern Sie key_buffer_size, um unnötige Speichernutzung zu vermeiden.

( innodb_buffer_pool_size / _ram ) = 20480M / 65536M = 31.2% -% von RAM wird für InnoDB buffer_pool verwendet

( (key_buffer_size / 0.20 + innodb_buffer_pool_size / 0.70) / _ram ) = (384M / 0.20 + 20480M / 0.70) / 65536M = 47.6% - Der größte Teil des verfügbaren RAM sollte für das Caching zur Verfügung gestellt werden. - http://mysql.rjweb.org/doc.php/memory

( innodb_buffer_pool_size / innodb_buffer_pool_instances ) = 20480M / 1 = 20480MB - Größe jeder buffer_pool-Instanz. - Eine Instanz sollte mindestens 1 GB groß sein. Haben Sie in sehr großem RAM 16 Instanzen.

( Innodb_buffer_pool_pages_free * 16384 / innodb_buffer_pool_size ) = 1,126,267 * 16384 / 20480M = 85.9% - buffer pool free - buffer_pool_size ist größer als der Arbeitssatz; könnte es verringern

( Innodb_buffer_pool_pages_free / Innodb_buffer_pool_pages_total ) = 1,126,267 / 1310720 = 85.9% - Pct von buffer_pool derzeit nicht verwendet - innodb_buffer_pool_size zu größer als nötig?

( Innodb_pages_written / Innodb_buffer_pool_write_requests ) = 824,631 / 2315658 = 35.6% - Schreibanforderungen, die auf die Festplatte gelangen mussten - Überprüfen Sie innodb_buffer_pool_size

( Innodb_buffer_pool_bytes_data / innodb_buffer_pool_size ) = 2,715,828,224 / 20480M = 12.6% - Prozentsatz des von Daten belegten Pufferpools - Ein kleiner Prozentsatz kann zeigt an, dass der Pufferpool unnötig groß ist.

( Innodb_os_log_written / (Uptime / 3600) / innodb_log_files_in_group / innodb_log_file_size ) = 145,280,512 / (186389 / 3600) / 2 / 256M = 0.00523 - Verhältnis - (siehe Protokoll)

( Uptime / 60 * innodb_log_file_size / Innodb_os_log_written ) = 186,389 / 60 * 256M / 145280512 = 5,739 - Minuten zwischen InnoDB-Protokollrotationen Ab 5.6.8 kann dies dynamisch geändert werden. Stellen Sie sicher, dass Sie auch my.cnf ändern. - (Die Empfehlung von 60 Minuten zwischen den Umdrehungen ist etwas willkürlich.) Passen Sie innodb_log_file_size an. (Kann in AWS nicht geändert werden.)

( innodb_file_per_table ) = OFF - Legen Sie jede Datei in einen eigenen Tabellenbereich - (Sehr empfehlenswert, insbesondere für große Tabellen)

( innodb_stats_on_metadata ) = ON - Tabelle beim Berühren von Statistiken erneut analysieren. - ON verlangsamt wahrscheinlich bestimmte SHOWs und information_schema-Zugriffe.

( innodb_thread_concurrency ) = 66 - 0 = Lassen Sie InnoDB das Beste für concurrency_tickets entscheiden. - Auf 0 oder 64 setzen. Dies kann die CPU einschränken.

( innodb_print_all_deadlocks ) = OFF - Gibt an, ob alle Deadlocks protokolliert werden sollen. - Wenn Sie von Deadlocks geplagt sind, schalten Sie diese ein. Achtung: Wenn Sie viele Deadlocks haben, kann dies viel auf die Festplatte schreiben.

( net_buffer_length / max_allowed_packet ) = 16,384 / 500M = 0.00%

( local_infile ) = ON - local_infile = ON ist ein potenzielles Sicherheitsproblem

( bulk_insert_buffer_size / _ram ) = 8M / 65536M = 0.01% - Puffer für mehrzeilige INSERTs und LOAD DATA - Zu groß könnte die Größe gefährden RAM size. Zu klein könnte solche Operationen behindern.

( Qcache_lowmem_prunes ) = 4,224,427 / 186389 = 23 /sec - In QC ist kein Platz mehr - erhöhen Sie query_cache_size

( Qcache_inserts - Qcache_queries_in_cache ) = (27096342 - 12188) / 186389 = 145 /sec - Invalidierungen/Sek.

( (query_cache_size - Qcache_free_memory) / Qcache_queries_in_cache / query_alloc_block_size ) = (50M - 17741584) / 12188 / 8192 = 0.347 - query_alloc_block_size vs Formel - Passen Sie query_alloc_block_size an

( Questions ) = 683,165,600 / 186389 = 3665 /sec - Abfragen (außerhalb von SP) - "qps" -> 2000 kann Server belasten

( Queries ) = 683,199,489 / 186389 = 3665 /sec - Abfragen (einschließlich innerhalb von SP) -> 3000 kann Server belasten

( Created_tmp_tables ) = 19,170,929 / 186389 = 102 /sec - Häufigkeit der Erstellung von "temporären" Tabellen als Teil komplexer SELECTs.

( Created_tmp_disk_tables ) = 2,044,232 / 186389 = 11 /sec - Häufigkeit der Erstellung von Festplatten "temporären" Tabellen als Teil komplexer SELECTs - Erhöhen Sie tmp_table_size und max_heap_table_size. Überprüfen Sie die Regeln für temporäre Tabellen, wenn MEMORY anstelle von MyISAM verwendet wird. Möglicherweise können geringfügige Schema- oder Abfrageänderungen MyISAM vermeiden. Bessere Indizes und eine Neuformulierung von Abfragen helfen eher.

( tmp_table_size ) = 256M - Begrenzung der Größe von [~ # ~] Speicher [~ # ~] temporäre Tabellen, die zur Unterstützung von SELECT verwendet werden - Verringern Sie tmp_table_size, um zu vermeiden, dass nicht genügend RAM zur Verfügung steht. Vielleicht nicht mehr als 64 Millionen.

( (Com_insert + Com_update + Com_delete + Com_replace) / Com_commit ) = (80433 + 190582 + 2298884 + 0) / 0 = INF - Anweisungen pro Commit (unter der Annahme aller InnoDB) - Niedrig: Kann helfen, Abfragen in Transaktionen zu gruppieren; Hoch: Lange Transaktionen belasten verschiedene Dinge.

( Com_delete / Com_insert ) = 2,298,884 / 80433 = 2858.1% - Löscht/fügt ein (als pct). (Ignoriert LOAD, REPLACE usw.)

( Select_full_join ) = 873,441 / 186389 = 4.7 /sec - Verknüpfungen ohne Index - Fügen Sie den in JOINs verwendeten Tabellen geeignete Indizes hinzu.

( Select_scan ) = 10,081,022 / 186389 = 54 /sec - vollständige Tabellenscans - Indizes hinzufügen/Abfragen optimieren (es sei denn, es handelt sich um winzige Tabellen)

( Select_scan / Com_select ) = 10,081,022 / 28145718 = 35.8% -% der Auswahlen führen einen vollständigen Tabellenscan durch. (Kann durch gespeicherte Routinen getäuscht werden.) - Indizes hinzufügen/Abfragen optimieren

( log_slow_queries ) = OFF - Gibt an, ob langsame Abfragen protokolliert werden sollen. (Vor 5.1.29, 5.6.1)

( slow_query_log ) = OFF - Gibt an, ob langsame Abfragen protokolliert werden sollen. (5.1.12)

( long_query_time ) = 10.000000 = 10 - Cutoff (Sekunden) zum Definieren einer "langsamen" Abfrage. - Schlagen Sie 2 vor

( Com_change_db ) = 2,451,188 / 186389 = 13 /sec - Kommt wahrscheinlich aus USE-Anweisungen. - Ziehen Sie in Betracht, eine Verbindung mit der Datenbank herzustellen, die Syntax db.tbl zu verwenden, falsche USE-Anweisungen zu entfernen usw.

( Connections ) = 4,902,222 / 186389 = 26 /sec - Verbindungen - Wartezeit erhöhen; Pooling verwenden?

( thread_cache_size ) = 64 - Wie viele zusätzliche Prozesse müssen beibehalten werden (Nicht relevant bei Verwendung von Thread-Pooling) (Automatische Größe ab 5.6.8; basierend auf max_connections) - 0 ist gut für Windows

Ungewöhnlich groß:

(Com_select + Qcache_hits) / (Com_insert + Com_update + Com_delete + Com_replace) = 256
Bytes_sent = 7043271 /sec
Com_create_db = 0.15 /HR
Com_delete = 12 /sec
Com_kill = 2.8 /HR
Com_show_create_func = 37 /HR
Com_show_databases = 12 /HR
Com_show_function_status = 7.4 /HR
Com_show_master_status = 12 /HR
Com_show_open_tables = 0.89 /sec
Com_show_procedure_status = 7.4 /HR
Com_show_processlist = 1.9 /sec
Com_show_status = 0.18 /sec
Com_show_table_status = 52 /sec
Handler_read_rnd = 2401 /sec
Innodb_buffer_pool_pages_free = 1.13e+6
Qcache_hits = 3390 /sec
Qcache_inserts = 145 /sec
Select_range = 97 /sec
Select_range / Com_select = 64.5%
Sort_scan = 41 /sec
max_long_data_size = 500MB
net_read_timeout = 600
net_write_timeout = 600

Abnormale Zeichenfolgen:

ft_min_Word_len = 3
have_crypt = NO
innodb_force_load_corrupted = OFF
lower_case_file_system = ON
0
Rick James

Vorschläge, die für Solomon my.cnf-ini im Abschnitt [mysqld] berücksichtigt werden sollten - nicht mehr als eine pro Tag und Monitor -, halten Sie datierte Kopien jeder Konfiguration bereit, die bei Bedarf zum schnellen Austausch verwendet werden.

wait_timeout = 3600 # ab 40 Sekunden kann die Anzahl der ~ 32k handler_rollback reduzieren

innodb_concurrency_tickets = 5000 # von 500 reduzieren die Rückkehr in die Warteschlange

read_buffer_size = 128K # von 1M, um innodb_rows_read zu reduzieren

max_connections = 330 # von 900 zu reduzieren RAM Footprint max_used_conn war 270

innodb_io_capacity = 800 # von standardmäßig 200 (es sei denn, Ihr Medium ist ALT

innodb_buffer_pool_instances = 8 # von 1 Standard, um Konflikte zu minimieren

innodb_purge_threads = 1 # von 0, um den Haupt-Thread-Konflikt zu reduzieren

log_queries_not_using_indexes = OFF # from ON Nur verwenden, wenn FOCUSED auf lqnui

min_examined_row_limit = 20000 # von 0 für eine weniger langsame Abfrageerkennung

long_query_time = 20 # von 4, um ~ 3 Millionen in GStatus erkannte slow_queries zu reduzieren

expire_logs_days = 5 # von 0 für begrenzte historische Protokolle

key_buffer_size = 1M # von 384M werden nur 25 16K-Blöcke verwendet

innodb_buffer_pool_size = 10G # von 20G weniger als 5G verwendet

innodb_read_ahead_threashold = 8 # von 56 bis RD im nächsten Ausmaß früher

max_write_lock_count = 16 # von der RIESIGEN Nummer, um RD nach nn req zuzulassen

open_files_limit = 30000 # von 6958 calc zur Unterstützung von ~ 5M, geöffnet in 6 Tagen

query_cache_min_res_unit = 512 # von 4096, um weitere Ergebnisse in der Qualitätskontrolle zu speichern

thread_cache_size = 100 # von 64 vorgeschlagenen CAP in v8 refman, um OOM zu vermeiden

max_heap_table_size = 256M # von 16M - sollte immer = tmp_table_size sein

sort_buffer_size = 2M # von 256 KB - reduziert sort_merge_passes

Es wird mehr Analysen und Vorschläge geben, wenn Fortschritte beobachtet/gemessen werden.

0
Wilson Hauck

Vorschläge zur Berücksichtigung der Gelassenheit my.cnf-ini im Abschnitt [mysqld] - nicht mehr als eine pro Tag und Überwachung - bewahren Sie datierte Kopien jeder Konfiguration auf, die bei Bedarf für einen schnellen Austausch verwendet werden.

wait_timeout=3600  # from 40 seconds may reduce handler_rollback count
innodb_concurrency_tickets=5000  # from 500 reduce getting back in queue
skip_name_resolve=ON  # from OFF if not REQUIRED, see refman
read_buffer_size=128K  # from 1M to reduce innodb_rows_read
max_connections=300  # from 1500 to reduce RAM footprint max_used_conn was 243
innodb_io_capacity=800  # from default of 200 (unless your media is OLD)
expire_logs_days=5  # from 0 for limited historical logs
key_buffer_size=1M  # from 384M only 36 16K blocks used
innodb_buffer_pool_size=10G  # from 20G  less than 5G used
innodb_read_ahead_threashold=8  # from 56 to RD next extent earlier
max_write_lock_count=16  # from HUGE number to allow RD after nn req
open_files_limit=30000  # from 9548 calc to support 8M opened in 2 days
query_cache_min_res_unit=512 # from 4096 to store more results in QC
slow_query_log=ON  # from OFF - minimize ASAP - will take TIME
thread_cache_size=100  # from 64  suggested CAP in v8 refman to avoid OOM
max_heap_table_size=256M  # from 16M - should always = tmp_table_size
sort_buffer_size=2M  # from 256K - will reduce sort_merge_passes

Es wird mehr Analysen und Vorschläge geben, wenn Fortschritte beobachtet/gemessen werden.

0
Wilson Hauck