2017-09-13 263 views
0

2017-09-12T19:04:53.549339Z 0 [注] InnoDB:page_cleaner:1000ms预期循环花费了23911ms。这些设置可能不是最佳的。 (在此期间刷新= 200,被驱逐= 0)。Percona社区版和MySql社区版给出了“InnoDB:page_cleaner:1000ms预期循环花了0ms”?

我在Percona Community Edition和MySql Community Edition上得到这个错误。我想知道这是否只是Percona和MySql社区版的问题......升级到企业版的MySQL有助于解决这个问题吗?

有几个帖子提出了有关将innodb_lru_scan_depth从默认1024降低到256的建议。这并不能真正解决此问题。想知道有没有人在企业版上遇到过这个问题?

[Updating post to include SHOW VARIABLES like 'innodb%'] 
sql> show variables like 'innodb%'; 
+------------------------------------------+------------------------+ 
| Variable_name       | Value     | 
+------------------------------------------+------------------------+ 
| innodb_adaptive_flushing     | ON      | 
| innodb_adaptive_flushing_lwm    | 10      | 
| innodb_adaptive_hash_index    | ON      | 
| innodb_adaptive_hash_index_parts   | 8      | 
| innodb_adaptive_max_sleep_delay   | 150000     | 
| innodb_api_bk_commit_interval   | 5      | 
| innodb_api_disable_rowlock    | OFF     | 
| innodb_api_enable_binlog     | OFF     | 
| innodb_api_enable_mdl     | OFF     | 
| innodb_api_trx_level      | 0      | 
| innodb_autoextend_increment    | 64      | 
| innodb_autoinc_lock_mode     | 1      | 
| innodb_buffer_pool_chunk_size   | 134217728    | 
| innodb_buffer_pool_dump_at_shutdown  | ON      | 
| innodb_buffer_pool_dump_now    | OFF     | 
| innodb_buffer_pool_dump_pct    | 25      | 
| innodb_buffer_pool_filename    | ib_buffer_pool   | 
| innodb_buffer_pool_instances    | 8      | 
| innodb_buffer_pool_load_abort   | OFF     | 
| innodb_buffer_pool_load_at_startup  | ON      | 
| innodb_buffer_pool_load_now    | OFF     | 
| innodb_buffer_pool_size     | 53687091200   | 
| innodb_change_buffer_max_size   | 25      | 
| innodb_change_buffering     | all     | 
| innodb_checksum_algorithm    | crc32     | 
| innodb_checksums       | ON      | 
| innodb_cmp_per_index_enabled    | OFF     | 
| innodb_commit_concurrency    | 0      | 
| innodb_compression_failure_threshold_pct | 5      | 
| innodb_compression_level     | 6      | 
| innodb_compression_pad_pct_max   | 50      | 
| innodb_concurrency_tickets    | 5000     | 
| innodb_data_file_path     | ibdata1:12M:autoextend | 
| innodb_data_home_dir      |      | 
| innodb_deadlock_detect     | ON      | 
| innodb_default_row_format    | dynamic    | 
| innodb_disable_sort_file_cache   | OFF     | 
| innodb_doublewrite      | ON      | 
| innodb_fast_shutdown      | 1      | 
| innodb_file_format      | Barracuda    | 
| innodb_file_format_check     | ON      | 
| innodb_file_format_max     | Barracuda    | 
| innodb_file_per_table     | ON      | 
| innodb_fill_factor      | 100     | 
| innodb_flush_log_at_timeout    | 1      | 
| innodb_flush_log_at_trx_commit   | 2      | 
| innodb_flush_method      | O_DIRECT    | 
| innodb_flush_neighbors     | 1      | 
| innodb_flush_sync      | ON      | 
| innodb_flushing_avg_loops    | 30      | 
| innodb_force_load_corrupted    | OFF     | 
| innodb_force_recovery     | 0      | 
| innodb_ft_aux_table      |      | 
| innodb_ft_cache_size      | 8000000    | 
| innodb_ft_enable_diag_print    | OFF     | 
| innodb_ft_enable_stopword    | ON      | 
| innodb_ft_max_token_size     | 84      | 
| innodb_ft_min_token_size     | 3      | 
| innodb_ft_num_word_optimize    | 2000     | 
| innodb_ft_result_cache_limit    | 2000000000    | 
| innodb_ft_server_stopword_table   |      | 
| innodb_ft_sort_pll_degree    | 2      | 
| innodb_ft_total_cache_size    | 640000000    | 
| innodb_ft_user_stopword_table   |      | 
| innodb_io_capacity      | 15000     | 
| innodb_log_files_in_group    | 2      | 
| innodb_log_group_home_dir    | ./      | 
| innodb_log_write_ahead_size    | 8192     | 
| innodb_lru_scan_depth     | 256     | 
| innodb_max_dirty_pages_pct    | 75.000000    | 
| innodb_max_dirty_pages_pct_lwm   | 0.000000    | 
| innodb_max_purge_lag      | 0      | 
| innodb_max_purge_lag_delay    | 0      | 
| innodb_max_undo_log_size     | 1073741824    | 
| innodb_monitor_disable     |      | 
| innodb_monitor_enable     |      | 
| innodb_monitor_reset      |      | 
| innodb_monitor_reset_all     |      | 
| innodb_numa_interleave     | OFF     | 
| innodb_old_blocks_pct     | 37      | 
| innodb_old_blocks_time     | 1000     | 
| innodb_online_alter_log_max_size   | 134217728    | 
| innodb_open_files      | 400     | 
| innodb_optimize_fulltext_only   | OFF     | 
| innodb_page_cleaners      | 4      | 
| innodb_page_size       | 16384     | 
| innodb_print_all_deadlocks    | OFF     | 
| innodb_purge_batch_size     | 300     | 
| innodb_purge_rseg_truncate_frequency  | 128     | 
| innodb_purge_threads      | 4      | 
| innodb_random_read_ahead     | OFF     | 
| innodb_read_ahead_threshold    | 56      | 
| innodb_read_io_threads     | 4      | 
| innodb_read_only       | OFF     | 
| innodb_replication_delay     | 0      | 
| innodb_rollback_on_timeout    | OFF     | 
| innodb_rollback_segments     | 128     | 
| innodb_sort_buffer_size     | 1048576    | 
| innodb_spin_wait_delay     | 6      | 
| innodb_stats_auto_recalc     | ON      | 
| innodb_stats_include_delete_marked  | OFF     | 
| innodb_stats_method      | nulls_equal   | 
| innodb_stats_on_metadata     | OFF     | 
| innodb_stats_persistent     | ON      | 
| innodb_stats_persistent_sample_pages  | 20      | 
| innodb_stats_sample_pages    | 8      | 
| innodb_stats_transient_sample_pages  | 8      | 
| innodb_status_output      | OFF     | 
| innodb_status_output_locks    | OFF     | 
| innodb_strict_mode      | ON      | 
| innodb_support_xa      | ON      | 
| innodb_sync_array_size     | 1      | 
| innodb_sync_spin_loops     | 30      | 
| innodb_table_locks      | ON      | 
| innodb_temp_data_file_path    | ibtmp1:12M:autoextend | 
| innodb_thread_concurrency    | 16      | 
| innodb_thread_sleep_delay    | 0      | 
| innodb_tmpdir       |      | 
| innodb_undo_directory     | ./      | 
| innodb_undo_log_truncate     | OFF     | 
| innodb_undo_logs       | 128     | 
| innodb_undo_tablespaces     | 0      | 
| innodb_use_native_aio     | ON      | 
| innodb_version       | 5.7.18     | 
| innodb_write_io_threads     | 16      | 
+------------------------------------------+------------------------+ 
+0

我怀疑社区与企业在这方面没有代码差异。 –

+0

谢谢,瑞克。曾经遇到过上述错误?任何经过测试的解决方案和解决方案? – user8604757

+0

不可以。你能详细说明当时发生了什么吗? –

回答

0

(不是一个答案,但一些信息和链接从更新日志) (链接是相对于dev.mysql.com)

----- 2015年8月3日发布5.7.8候选 - 功能增加或改变 - 的InnoDB -----

为innodb_purge_threads(/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_purge_threads)和innodb_page_cleaners(/ DOC/refman默认值/ 5.7/en/innodb-parameters.html#sysvar_innodb_page_cleaners)从1更改为4.如果页面清理器线程数超过缓冲池实例数,则innodb_p age_cleaners(/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_page_cleaners)自动设置为与innodb_buffer_pool_instances(/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_buffer_pool_instances)相同的值。

----- 2014年9月25日5.7.5里程碑15 - 功能增加或改变 - InnoDB的-----

为了获得最佳的关断和恢复性能,停机和恢复阶段,现在是由MySQL 5.7.4中引入的多线程页面清理器功能(innodb_page_cleaners(http://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_page_cleaners))支持。 (错误#18805275)

----- 2014-03-31 5.7.4里程碑14 - 功能增加或改变 - InnoDB的,性能-----

的InnoDB现在支持多个线程page_cleaner用于从缓冲池实例中清除脏页。一个新的系统变量innodb_page_cleaners用于指定page_cleaner线程的数量。默认值1维护只有一个page_cleaner线程的pre-MySQL 5.7.4配置。此增强功能基于MySQL 5.6.2中完成的工作,该工作引入了单页面清理器线程,以从InnoDB主线程卸载缓冲池清除工作。

----- 2011-10-03 5.6.3里程碑6 - 功能增加或改变 - InnoDB的,性能-----

工作继续卸载从冲洗(http://dev.mysql.com/doc/refman/5.6/en/glossary.html#glos_flush)操作InnoDB主线程,而不是在page_cleaner线程中执行它们。对缓冲池刷新算法的最新更改可以提高某些I/O限制工作负载的性能,特别是在具有多个缓冲池实例的配置中。您可以通过调整innodb_lru_scan_depth(http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_lru_scan_depth)和innodb_flush_neighbors(http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_flush_neighbors)配置选项的设置来控制此功能。要找到最佳设置,请将上述设置的每个组合与自适应哈希索引(http://dev.mysql.com/doc/refman/5.6/en/glossary.html#glos_adaptive_hash_index)和双写缓冲区(http://dev.mysql.com/doc/refman/5.6/en/glossary.html#glos_doublewrite_buffer)都打开和关闭。有关更多详细信息,请参阅调整InnoDB缓冲池刷新(http://dev.mysql.com/doc/refman/5.6/en/innodb-lru-background-flushing.html)。

=======

推荐阅读背景冲洗的文章,点击Affects me在bugs.mysql.com任何相关的错误,如 81899和/或 76661

另外,... innodb_io_capacity = 15000似乎很高,即使是SSD。

+0

谢谢,里克!我将通过上面的链接并使用各种配置参数来查看。再次感谢! – user8604757

+0

嗨瑞克...我试着改变my.cnf中的几个参数。然而,没有任何工作......问题依然存在:-(只是想知道这是否是MySQLCommunity Edition中的一个错误..遇到这个帖子 - https://bugs.mysql.com/bug.php?id=76661。 – user8604757

+0

配置更改:\t [09/14] = innodb_buffer_pool_size 50GB \t innodb_io_capacity = 15000 \t innodb_io_capacity_max = 25000 \t innodb_lru_scan_depth = 256 \t innodb_write_io_threads = 16 [09/21] \t innodb_flush_neighbor = 0 [09/22 ] \t innodb_log_file_size = 100GB \t innodb_log_files_in_group = 5 [09/25] \t innodb_change_buffer_max_size = 50 \t innodb_log_buffer_size = 4GB \t innodb_max_dirty_pages_pct_lwm = 30 \t innodb_thread_concurrency参数= 0 \t innodb_write_io_threads = 64 [09/26] \t innodb_concurrency_tickets = 500 \t innodb_lru_scan_depth = 512 \t innodb_thread_concurrency参数= 16 – user8604757