Skip to content

Commit

Permalink
Merge pull request #94 from ericherman/evict_table_metric
Browse files Browse the repository at this point in the history
Evict table metric
  • Loading branch information
Jan Lindström committed Aug 26, 2015
2 parents cf154cc + f66ef6a commit 3ed384b
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 4 deletions.
2 changes: 2 additions & 0 deletions storage/innobase/include/srv0mon.h
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,8 @@ enum monitor_id_t {
MONITOR_SRV_MEM_VALIDATE_MICROSECOND,
MONITOR_SRV_PURGE_MICROSECOND,
MONITOR_SRV_DICT_LRU_MICROSECOND,
MONITOR_SRV_DICT_LRU_EVICT_COUNT_ACTIVE,
MONITOR_SRV_DICT_LRU_EVICT_COUNT_IDLE,
MONITOR_SRV_CHECKPOINT_MICROSECOND,
MONITOR_OVLD_SRV_DBLWR_WRITES,
MONITOR_OVLD_SRV_DBLWR_PAGES_WRITTEN,
Expand Down
10 changes: 10 additions & 0 deletions storage/innobase/srv/srv0mon.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1196,6 +1196,16 @@ static monitor_info_t innodb_counter_info[] =
MONITOR_NONE,
MONITOR_DEFAULT_START, MONITOR_SRV_DICT_LRU_MICROSECOND},

{"innodb_dict_lru_count_active", "server",
"Number of tables evicted from DICT LRU list in the active loop",
MONITOR_NONE,
MONITOR_DEFAULT_START, MONITOR_SRV_DICT_LRU_EVICT_COUNT_ACTIVE},

{"innodb_dict_lru_count_idle", "server",
"Number of tables evicted from DICT LRU list in the idle loop",
MONITOR_NONE,
MONITOR_DEFAULT_START, MONITOR_SRV_DICT_LRU_EVICT_COUNT_IDLE},

{"innodb_checkpoint_usec", "server",
"Time (in microseconds) spent by master thread to do checkpoint",
MONITOR_NONE,
Expand Down
10 changes: 8 additions & 2 deletions storage/innobase/srv/srv0srv.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2274,6 +2274,7 @@ srv_master_do_active_tasks(void)
{
ib_time_t cur_time = ut_time();
ullint 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. */
Expand Down Expand Up @@ -2334,7 +2335,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_ACTIVE, n_evicted);
MONITOR_INC_TIME_IN_MICRO_SECS(
MONITOR_SRV_DICT_LRU_MICROSECOND, counter_time);
}
Expand Down Expand Up @@ -2366,6 +2369,7 @@ srv_master_do_idle_tasks(void)
/*==========================*/
{
ullint counter_time;
ulint n_evicted = 0;

++srv_main_idle_loops;

Expand Down Expand Up @@ -2403,7 +2407,9 @@ srv_master_do_idle_tasks(void)
}

srv_main_thread_op_info = "enforcing dict cache limit";
srv_master_evict_from_table_cache(100);
n_evicted = srv_master_evict_from_table_cache(100);
MONITOR_INC_VALUE(
MONITOR_SRV_DICT_LRU_EVICT_COUNT_IDLE, n_evicted);
MONITOR_INC_TIME_IN_MICRO_SECS(
MONITOR_SRV_DICT_LRU_MICROSECOND, counter_time);

Expand Down
2 changes: 2 additions & 0 deletions storage/xtradb/include/srv0mon.h
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,8 @@ enum monitor_id_t {
MONITOR_SRV_MEM_VALIDATE_MICROSECOND,
MONITOR_SRV_PURGE_MICROSECOND,
MONITOR_SRV_DICT_LRU_MICROSECOND,
MONITOR_SRV_DICT_LRU_EVICT_COUNT_ACTIVE,
MONITOR_SRV_DICT_LRU_EVICT_COUNT_IDLE,
MONITOR_SRV_CHECKPOINT_MICROSECOND,
MONITOR_OVLD_SRV_DBLWR_WRITES,
MONITOR_OVLD_SRV_DBLWR_PAGES_WRITTEN,
Expand Down
10 changes: 10 additions & 0 deletions storage/xtradb/srv/srv0mon.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1196,6 +1196,16 @@ static monitor_info_t innodb_counter_info[] =
MONITOR_NONE,
MONITOR_DEFAULT_START, MONITOR_SRV_DICT_LRU_MICROSECOND},

{"innodb_dict_lru_count_active", "server",
"Number of tables evicted from DICT LRU list in the active loop",
MONITOR_NONE,
MONITOR_DEFAULT_START, MONITOR_SRV_DICT_LRU_EVICT_COUNT_ACTIVE},

{"innodb_dict_lru_count_idle", "server",
"Number of tables evicted from DICT LRU list in the idle loop",
MONITOR_NONE,
MONITOR_DEFAULT_START, MONITOR_SRV_DICT_LRU_EVICT_COUNT_IDLE},

{"innodb_checkpoint_usec", "server",
"Time (in microseconds) spent by master thread to do checkpoint",
MONITOR_NONE,
Expand Down
10 changes: 8 additions & 2 deletions storage/xtradb/srv/srv0srv.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2881,6 +2881,7 @@ srv_master_do_active_tasks(void)
{
ib_time_t cur_time = ut_time();
ullint 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. */
Expand Down Expand Up @@ -2941,7 +2942,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_ACTIVE, n_evicted);
MONITOR_INC_TIME_IN_MICRO_SECS(
MONITOR_SRV_DICT_LRU_MICROSECOND, counter_time);
}
Expand Down Expand Up @@ -2973,6 +2976,7 @@ srv_master_do_idle_tasks(void)
/*==========================*/
{
ullint counter_time;
ulint n_evicted = 0;

++srv_main_idle_loops;

Expand Down Expand Up @@ -3010,7 +3014,9 @@ srv_master_do_idle_tasks(void)
}

srv_main_thread_op_info = "enforcing dict cache limit";
srv_master_evict_from_table_cache(100);
n_evicted = srv_master_evict_from_table_cache(100);
MONITOR_INC_VALUE(
MONITOR_SRV_DICT_LRU_EVICT_COUNT_IDLE, n_evicted);
MONITOR_INC_TIME_IN_MICRO_SECS(
MONITOR_SRV_DICT_LRU_MICROSECOND, counter_time);

Expand Down

0 comments on commit 3ed384b

Please sign in to comment.