diff options
Diffstat (limited to 'mysql-test/suite/perfschema/t/sizing_growth.test')
-rw-r--r-- | mysql-test/suite/perfschema/t/sizing_growth.test | 478 |
1 files changed, 0 insertions, 478 deletions
diff --git a/mysql-test/suite/perfschema/t/sizing_growth.test b/mysql-test/suite/perfschema/t/sizing_growth.test deleted file mode 100644 index d6944d2aee0..00000000000 --- a/mysql-test/suite/perfschema/t/sizing_growth.test +++ /dev/null @@ -1,478 +0,0 @@ -# Tests for PERFORMANCE_SCHEMA - ---source include/not_embedded.inc ---source include/have_perfschema.inc - -# -# Important note: -# this test is extremely sensitive to how threads are running inside the server, -# so it has it's own -master.opt file, to enforce it runs alone in mysqld -# - -# Setup - -flush status; -flush tables; - -# Remove to debug ---disable_result_log - -# Make sure the internal server caches are all full -select * from performance_schema.mutex_instances; -select * from performance_schema.rwlock_instances; -select * from performance_schema.cond_instances; -select * from performance_schema.file_instances; - -select count(*) from performance_schema.mutex_instances - into @v0_mutex_instances; - -select count(*) from performance_schema.rwlock_instances - into @v0_rwlock_instances; - -select count(*) from performance_schema.cond_instances - into @v0_cond_instances; - -select count(*) from performance_schema.file_instances - into @v0_file_instances; - -select count(*) from performance_schema.mutex_instances - into @v1_mutex_instances; - -select count(*) from performance_schema.rwlock_instances - into @v1_rwlock_instances; - -select count(*) from performance_schema.cond_instances - into @v1_cond_instances; - -select count(*) from performance_schema.file_instances - into @v1_file_instances; - -select count(name), name from performance_schema.mutex_instances - group by name; - -select count(name), name from performance_schema.rwlock_instances - group by name; - -select count(name), name from performance_schema.cond_instances - group by name; - -select count(event_name), event_name from performance_schema.file_instances - group by event_name; - -begin; -create table test.t1(a int) engine = innodb; -create table test.t2(a int) engine = innodb; -create table test.t3(a int) engine = innodb; -create table test.t4(a int) engine = innodb; -create table test.t5(a int) engine = innodb; -create table test.t6(a int) engine = innodb; -create table test.t7(a int) engine = innodb; -create table test.t8(a int) engine = innodb; -create table test.t9(a int) engine = innodb; -create table test.t10(a int) engine = innodb; - -# Make sure there is at least 1 table handle, -# to fully initialize the storage engine share if needed. -select * from test.t1; -select * from test.t2; -select * from test.t3; -select * from test.t4; -select * from test.t5; -select * from test.t6; -select * from test.t7; -select * from test.t8; -select * from test.t9; -select * from test.t10; -commit; - -select count(*) from performance_schema.mutex_instances - into @v2_mutex_instances; - -select count(*) from performance_schema.rwlock_instances - into @v2_rwlock_instances; - -select count(*) from performance_schema.cond_instances - into @v2_cond_instances; - -select count(*) from performance_schema.file_instances - into @v2_file_instances; - -select count(name), name from performance_schema.mutex_instances - group by name; - -select count(name), name from performance_schema.rwlock_instances - group by name; - -select count(name), name from performance_schema.cond_instances - group by name; - -select count(event_name), event_name from performance_schema.file_instances - group by event_name; - -select @v2_mutex_instances, @v1_mutex_instances, @v0_mutex_instances; -select @v2_rwlock_instances, @v1_rwlock_instances, @v0_rwlock_instances; -select @v2_cond_instances, @v1_cond_instances, @v0_cond_instances; -select @v2_file_instances, @v1_file_instances, @v0_file_instances; - -select round((@v2_mutex_instances - @v1_mutex_instances) / 10) - into @mutex_per_share; -select round((@v2_rwlock_instances - @v1_rwlock_instances) / 10) - into @rwlock_per_share; -select round((@v2_cond_instances - @v1_cond_instances) / 10) - into @cond_per_share; -select round((@v2_file_instances - @v1_file_instances) / 10) - into @file_per_share; - -connect (con1, localhost, root,,); -select "con1 connected"; - -connect (con2, localhost, root,,); -select "con2 connected"; - -connect (con3, localhost, root,,); -select "con3 connected"; - -connect (con4, localhost, root,,); -select "con4 connected"; - -connect (con5, localhost, root,,); -select "con5 connected"; - -connect (con6, localhost, root,,); -select "con6 connected"; - -connect (con7, localhost, root,,); -select "con7 connected"; - -connect (con8, localhost, root,,); -select "con8 connected"; - -connect (con9, localhost, root,,); -select "con9 connected"; - -connect (con10, localhost, root,,); -select "con10 connected"; - -connection default; - -select count(*) from performance_schema.mutex_instances - into @v3_mutex_instances; - -select count(*) from performance_schema.rwlock_instances - into @v3_rwlock_instances; - -select count(*) from performance_schema.cond_instances - into @v3_cond_instances; - -select count(*) from performance_schema.file_instances - into @v3_file_instances; - -select count(name), name from performance_schema.mutex_instances - group by name; - -select count(name), name from performance_schema.rwlock_instances - group by name; - -select count(name), name from performance_schema.cond_instances - group by name; - -select count(event_name), event_name from performance_schema.file_instances - group by event_name; - -select @v3_mutex_instances, @v2_mutex_instances; -select @v3_rwlock_instances, @v2_rwlock_instances; -select @v3_cond_instances, @v2_cond_instances; -select @v3_file_instances, @v2_file_instances; - -select round((@v3_mutex_instances - @v2_mutex_instances) / 10) - into @mutex_per_con; -select round((@v3_rwlock_instances - @v2_rwlock_instances) / 10) - into @rwlock_per_con; -select round((@v3_cond_instances - @v2_cond_instances) / 10) - into @cond_per_con; -select round((@v3_file_instances - @v2_file_instances) / 10) - into @file_per_con; - ---connection con1 - -lock table test.t1 write, test.t2 write, test.t3 write, test.t4 write, -test.t5 write, test.t6 write, test.t7 write, test.t8 write, test.t9 write, -test.t10 write; - ---send -select t1.*, t2.*, t3.*, t4.*, t5.*, t6.*, t7.*, t8.*, t9.*, t10.* - from t1, t2, t3, t4, t5, t6, t7, t8, t9, t10; - ---connection con2 - ---send -select t1.*, t2.*, t3.*, t4.*, t5.*, t6.*, t7.*, t8.*, t9.*, t10.* - from t1, t2, t3, t4, t5, t6, t7, t8, t9, t10; - ---connection con3 - ---send -select t1.*, t2.*, t3.*, t4.*, t5.*, t6.*, t7.*, t8.*, t9.*, t10.* - from t1, t2, t3, t4, t5, t6, t7, t8, t9, t10; - ---connection con4 - ---send -select t1.*, t2.*, t3.*, t4.*, t5.*, t6.*, t7.*, t8.*, t9.*, t10.* - from t1, t2, t3, t4, t5, t6, t7, t8, t9, t10; - ---connection con5 - ---send -select t1.*, t2.*, t3.*, t4.*, t5.*, t6.*, t7.*, t8.*, t9.*, t10.* - from t1, t2, t3, t4, t5, t6, t7, t8, t9, t10; - ---connection con6 - ---send -select t1.*, t2.*, t3.*, t4.*, t5.*, t6.*, t7.*, t8.*, t9.*, t10.* - from t1, t2, t3, t4, t5, t6, t7, t8, t9, t10; - ---connection con7 - ---send -select t1.*, t2.*, t3.*, t4.*, t5.*, t6.*, t7.*, t8.*, t9.*, t10.* - from t1, t2, t3, t4, t5, t6, t7, t8, t9, t10; - ---connection con8 - ---send -select t1.*, t2.*, t3.*, t4.*, t5.*, t6.*, t7.*, t8.*, t9.*, t10.* - from t1, t2, t3, t4, t5, t6, t7, t8, t9, t10; - ---connection con9 - ---send -select t1.*, t2.*, t3.*, t4.*, t5.*, t6.*, t7.*, t8.*, t9.*, t10.* - from t1, t2, t3, t4, t5, t6, t7, t8, t9, t10; - ---connection con10 - ---send -select t1.*, t2.*, t3.*, t4.*, t5.*, t6.*, t7.*, t8.*, t9.*, t10.* - from t1, t2, t3, t4, t5, t6, t7, t8, t9, t10; - -connection default; - -select count(*) from performance_schema.mutex_instances - into @v4_mutex_instances; - -select count(*) from performance_schema.rwlock_instances - into @v4_rwlock_instances; - -select count(*) from performance_schema.cond_instances - into @v4_cond_instances; - -select count(*) from performance_schema.file_instances - into @v4_file_instances; - -select count(name), name from performance_schema.mutex_instances - group by name; - -select count(name), name from performance_schema.rwlock_instances - group by name; - -select count(name), name from performance_schema.cond_instances - group by name; - -select count(event_name), event_name from performance_schema.file_instances - group by event_name; - -select @v4_mutex_instances, @v3_mutex_instances; -select @v4_rwlock_instances, @v3_rwlock_instances; -select @v4_cond_instances, @v3_cond_instances; -select @v4_file_instances, @v3_file_instances; - -select round((@v4_mutex_instances - @v3_mutex_instances) / 10) - into @mutex_per_handle; -select round((@v4_rwlock_instances - @v3_rwlock_instances) / 10) - into @rwlock_per_handle; -select round((@v4_cond_instances - @v3_cond_instances) / 10) - into @cond_per_handle; -select round((@v4_file_instances - @v3_file_instances) / 10) - into @file_per_handle; - ---connection con1 ---reap - -unlock tables; - ---connection con2 ---reap - ---connection con3 ---reap - ---connection con4 ---reap - ---connection con5 ---reap - ---connection con6 ---reap - ---connection con7 ---reap - ---connection con8 ---reap - ---connection con9 ---reap - ---connection con10 ---reap - ---disconnect con1 ---disconnect con2 ---disconnect con3 ---disconnect con4 ---disconnect con5 ---disconnect con6 ---disconnect con7 ---disconnect con8 ---disconnect con9 ---disconnect con10 - ---connection default - -drop table test.t1; -drop table test.t2; -drop table test.t3; -drop table test.t4; -drop table test.t5; -drop table test.t6; -drop table test.t7; -drop table test.t8; -drop table test.t9; -drop table test.t10; - ---enable_result_log - -# -# This test must have *_lost = 0, -# otherwise the measurement is just wrong. -# - -show status like "performance_schema%"; - -# -# Expecting 2: -# - wait/synch/mutex/sql/MDL_wait::LOCK_wait_status -# - wait/synch/mutex/sql/TABLE_SHARE::LOCK_ha_data -# plus mutexes used inside the storage engine -# This is very storage engine dependent -# For innodb: -# - wait/synch/mutex/innodb/autoinc_mutex -# - wait/synch/mutex/innodb/os_mutex -# Note that depending on the platform, -# and the version of the compiler used, -# code in the server may use either native platform atomics -# or a mutex. -# Note also that in DEBUG builds, code uses more mutexes. -# Because of all these parameters, -# this test is disabled, as predicting an exact number is difficult. -# -# commented: select @mutex_per_share <= 5; - -# -# Expecting 1: -# - wait/synch/rwlock/sql/MDL_lock::rwlock -# plus rwlocks used inside the storage engine -# This is very storage engine dependent -# -select @rwlock_per_share <= 3; - -# -# Expecting 0: -# -select @cond_per_share; - -# -# Expecting 1: -# - wait/io/file/sql/FRM -# plus files used inside the storage engine -# This is very storage engine dependent -# -select @file_per_share <= 3; - -# -# Expecting 3: -# - wait/synch/mutex/mysys/my_thread_var::mutex -# - wait/synch/mutex/mysys/THR_LOCK::mutex -# - wait/synch/mutex/sql/THD::LOCK_thd_data -# -select @mutex_per_con; - -# -# Expecting 1: -# - wait/synch/rwlock/sql/MDL_context::LOCK_waiting_for -# -select @rwlock_per_con; - -# -# Expecting 2: -# - wait/synch/cond/mysys/my_thread_var::suspend -# - wait/synch/cond/sql/MDL_context::COND_wait_status -# -select @cond_per_con; - -# -# Expecting 0: -# -select @file_per_con; - -# -# Expecting 0: -# -select @mutex_per_handle; - -# -# Expecting 0: -# -select @rwlock_per_handle; - -# -# Expecting 0: -# -select @cond_per_handle; - -# -# Expecting 0: -# -select @file_per_handle; - -# -# IMPORTANT NOTE: -# when any measurement here changes, the heuristics -# in storage/perfschema/pfs_autosize.cc need to be updated. -# Note that this in turns will lead to different estimations for automated -# sizing, and imply to update the results for sizing_*. -# - -# commented: (@mutex_per_share <= 5) -# Mutexes are not instrumented by default, -# not enforcing mutex estimates - -select if( - (@rwlock_per_share <= 3) - AND (@cond_per_share = 0) - AND (@file_per_share <= 3) - AND (@mutex_per_con = 3) - AND (@rwlock_per_con = 1) - AND (@cond_per_con = 2) - AND (@file_per_con = 0) - AND (@mutex_per_handle = 0) - AND (@rwlock_per_handle = 0) - AND (@cond_per_handle = 0) - AND (@file_per_handle = 0), - "OK: heuristics are up to date", - "FAILED: heuristics need to be updated") - as status; - |