summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Lindström <jan.lindstrom@mariadb.com>2015-08-26 14:59:33 +0300
committerJan Lindström <jan.lindstrom@mariadb.com>2015-08-26 14:59:33 +0300
commit3ed384baf0f3bf6ffbb5badb0ccc301e028dd289 (patch)
tree0e7849a982960d0f098d844231a441b34b7e47d3
parentcf154cc9d23aa050157d891443a16c90260fbd74 (diff)
parentf66ef6a05d151a884acbc861dbbe0288232317cd (diff)
downloadmariadb-git-3ed384baf0f3bf6ffbb5badb0ccc301e028dd289.tar.gz
Merge pull request #94 from ericherman/evict_table_metric
Evict table metric
-rw-r--r--storage/innobase/include/srv0mon.h2
-rw-r--r--storage/innobase/srv/srv0mon.cc10
-rw-r--r--storage/innobase/srv/srv0srv.cc10
-rw-r--r--storage/xtradb/include/srv0mon.h2
-rw-r--r--storage/xtradb/srv/srv0mon.cc10
-rw-r--r--storage/xtradb/srv/srv0srv.cc10
6 files changed, 40 insertions, 4 deletions
diff --git a/storage/innobase/include/srv0mon.h b/storage/innobase/include/srv0mon.h
index 79a8a5bf848..5964f2c4819 100644
--- a/storage/innobase/include/srv0mon.h
+++ b/storage/innobase/include/srv0mon.h
@@ -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,
diff --git a/storage/innobase/srv/srv0mon.cc b/storage/innobase/srv/srv0mon.cc
index 0bcc876f591..d8254c2b8ed 100644
--- a/storage/innobase/srv/srv0mon.cc
+++ b/storage/innobase/srv/srv0mon.cc
@@ -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,
diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc
index df7cb656d8c..9dd062f3d37 100644
--- a/storage/innobase/srv/srv0srv.cc
+++ b/storage/innobase/srv/srv0srv.cc
@@ -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. */
@@ -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);
}
@@ -2366,6 +2369,7 @@ srv_master_do_idle_tasks(void)
/*==========================*/
{
ullint counter_time;
+ ulint n_evicted = 0;
++srv_main_idle_loops;
@@ -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);
diff --git a/storage/xtradb/include/srv0mon.h b/storage/xtradb/include/srv0mon.h
index 094eb0de610..37d14734c71 100644
--- a/storage/xtradb/include/srv0mon.h
+++ b/storage/xtradb/include/srv0mon.h
@@ -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,
diff --git a/storage/xtradb/srv/srv0mon.cc b/storage/xtradb/srv/srv0mon.cc
index 547d6c8c90b..0b2e29e5f68 100644
--- a/storage/xtradb/srv/srv0mon.cc
+++ b/storage/xtradb/srv/srv0mon.cc
@@ -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,
diff --git a/storage/xtradb/srv/srv0srv.cc b/storage/xtradb/srv/srv0srv.cc
index 5dfb3a35bb9..abe47e91339 100644
--- a/storage/xtradb/srv/srv0srv.cc
+++ b/storage/xtradb/srv/srv0srv.cc
@@ -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. */
@@ -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);
}
@@ -2973,6 +2976,7 @@ srv_master_do_idle_tasks(void)
/*==========================*/
{
ullint counter_time;
+ ulint n_evicted = 0;
++srv_main_idle_loops;
@@ -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);