From e9d00e859e3854bf8f71873caa69c060e670350b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Eeden?= Date: Fri, 21 Aug 2015 16:55:20 +0200 Subject: [PATCH] Add eviction count for table cache lru cleanup --- storage/innobase/include/srv0mon.h | 1 + storage/innobase/srv/srv0mon.cc | 5 +++++ storage/innobase/srv/srv0srv.cc | 5 ++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/storage/innobase/include/srv0mon.h b/storage/innobase/include/srv0mon.h index 8d94240..1bd67fd 100644 --- a/storage/innobase/include/srv0mon.h +++ b/storage/innobase/include/srv0mon.h @@ -380,6 +380,7 @@ enum monitor_id_t { MONITOR_SRV_MEM_VALIDATE_MICROSECOND, MONITOR_SRV_PURGE_MICROSECOND, MONITOR_SRV_DICT_LRU_MICROSECOND, + MONITOR_SRV_DICT_LRU_EVICT_COUNT, MONITOR_SRV_CHECKPOINT_MICROSECOND, MONITOR_OVLD_SRV_DBLWR_WRITES, MONITOR_OVLD_SRV_DBLWR_PAGES_WRITTEN, diff --git a/storage/innobase/srv/srv0mon.cc b/storage/innobase/srv/srv0mon.cc index b557dbf..f26a645 100644 --- a/storage/innobase/srv/srv0mon.cc +++ b/storage/innobase/srv/srv0mon.cc @@ -1156,6 +1156,11 @@ static monitor_info_t innodb_counter_info[] = MONITOR_NONE, MONITOR_DEFAULT_START, MONITOR_SRV_DICT_LRU_MICROSECOND}, + {"innodb_dict_lru_count", "server", + "Number of tables evicted from DICT LRU list", + MONITOR_NONE, + MONITOR_DEFAULT_START, MONITOR_SRV_DICT_LRU_EVICT_COUNT}, + {"innodb_checkpoint_usec", "server", "Time (in microseconds) spent by master thread to do checkpoint", MONITOR_NONE, diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc index ea090c7..e119efa 100644 --- a/storage/innobase/srv/srv0srv.cc +++ b/storage/innobase/srv/srv0srv.cc @@ -1998,6 +1998,7 @@ srv_master_do_active_tasks(void) { ib_time_t cur_time = ut_time(); uintmax_t counter_time = ut_time_us(NULL); + ulint n_evicted = 0; /* First do the tasks that we are suppose to do at each invocation of this function. */ @@ -2049,7 +2050,9 @@ srv_master_do_active_tasks(void) if (cur_time % SRV_MASTER_DICT_LRU_INTERVAL == 0) { srv_main_thread_op_info = "enforcing dict cache limit"; - srv_master_evict_from_table_cache(50); + n_evicted = srv_master_evict_from_table_cache(50); + MONITOR_INC_VALUE( + MONITOR_SRV_DICT_LRU_EVICT_COUNT, n_evicted); MONITOR_INC_TIME_IN_MICRO_SECS( MONITOR_SRV_DICT_LRU_MICROSECOND, counter_time); }