mariadb/mysql-test/suite/perfschema/include/memory_aggregate_load.inc
Sergei Golubchik 0ea717f51a P_S 5.7.28
2020-03-10 19:24:22 +01:00

506 lines
13 KiB
PHP

# Tests for the performance schema
# ========================================
# HELPER include/memory_aggregate_load.inc
# ========================================
echo "================== Step 1 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
# Notes about this test
#
# get_lock("marker") causes the following memory allocation:
# memory/sql/User_level_lock, 1 malloc, size 16 (size 8 for 32-bit systems).
# release_lock("marker") causes the following memory free:
# memory/sql/User_level_lock, 1 free, size 16 (size 8 for 32-bit systems).
#
# To avoid noise from main, the background threads are disabled.
connect (con1, localhost, user1, , );
echo "================== con1 connected ==================";
--connection default
# Wait for the connect to complete
let $wait_condition=
select count(*) = 1 from performance_schema.threads
where `TYPE`='FOREGROUND' and PROCESSLIST_USER= 'user1';
--source include/wait_condition.inc
echo "================== Step 2 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
--connection con1
set GLOBAL query_cache_size=1000*1024;
select get_lock("marker_1", 10);
select release_lock("marker_1");
set @v1 = repeat("a", 1000);
set @v2 = repeat("b", 2000);
set @v3 = repeat("c", 4000);
echo "================== con1 marker ==================";
--connection default
# Wait for the payload to complete
let $wait_condition=
select count(*) = 1 from performance_schema.events_waits_current
where EVENT_NAME= 'idle';
--source include/wait_condition.inc
echo "================== Step 3 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
# Debugging helpers
# select * from performance_schema.events_waits_history_long;
# select PROCESSLIST_USER, PROCESSLIST_HOST, INSTRUMENTED from performance_schema.threads;
connect (con2, localhost, user2, , );
echo "================== con2 connected ==================";
--connection default
# Wait for the connect to complete
let $wait_condition=
select count(*) = 1 from performance_schema.threads
where `TYPE`='FOREGROUND' and PROCESSLIST_USER= 'user2';
--source include/wait_condition.inc
echo "================== Step 4 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
--connection con2
set GLOBAL query_cache_size=2000*1024;
select get_lock("marker_2", 10);
select release_lock("marker_2");
set @v1 = repeat("a", 1000);
set @v2 = repeat("b", 2000);
set @v3 = repeat("c", 4000);
echo "================== con2 marker ==================";
--connection default
# Wait for the payload to complete
let $wait_condition=
select count(*) = 2 from performance_schema.events_waits_current
where EVENT_NAME= 'idle';
--source include/wait_condition.inc
echo "================== Step 5 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
truncate table performance_schema.memory_summary_by_thread_by_event_name;
echo "================== MEMORY_BY_THREAD truncated ==================";
echo "================== Step 5b ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
connect (con3, localhost, user3, , );
echo "================== con3 connected ==================";
--connection default
# Wait for the connect to complete
let $wait_condition=
select count(*) = 1 from performance_schema.threads
where `TYPE`='FOREGROUND' and PROCESSLIST_USER= 'user3';
--source include/wait_condition.inc
echo "================== Step 6 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
--connection con3
set GLOBAL query_cache_size=500*1024;
select get_lock("marker_3", 10);
select release_lock("marker_3");
set @v1 = repeat("a", 1000);
set @v2 = repeat("b", 2000);
set @v3 = repeat("c", 4000);
echo "================== con3 marker ==================";
--connection default
# Wait for the payload to complete
let $wait_condition=
select count(*) = 3 from performance_schema.events_waits_current
where EVENT_NAME= 'idle';
--source include/wait_condition.inc
echo "================== Step 7 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
connect (con4, localhost, user4, , );
connect (con5, localhost, user4, , );
echo "================== con4/con5 (both user4) connected ==================";
--connection default
# Wait for the connects to complete
let $wait_condition=
select count(*) = 2 from performance_schema.threads
where `TYPE`='FOREGROUND' and PROCESSLIST_USER= 'user4';
--source include/wait_condition.inc
echo "================== Step 8 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
--connection con4
set GLOBAL query_cache_size=4000*1024;
select get_lock("marker_4", 10);
select release_lock("marker_4");
set @v1 = repeat("a", 1000);
set @v2 = repeat("b", 2000);
set @v3 = repeat("c", 4000);
--connection con5
select get_lock("marker_5", 10);
select release_lock("marker_5");
set @v1 = repeat("a", 1000);
set @v2 = repeat("b", 2000);
set @v3 = repeat("c", 4000);
echo "================== con4/con5 marker ==================";
--connection default
# Wait for the payload to complete
let $wait_condition=
select count(*) = 5 from performance_schema.events_waits_current
where EVENT_NAME= 'idle';
--source include/wait_condition.inc
echo "================== Step 9 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
--disconnect con1
--disconnect con5
--connection default
# Wait for the disconnects to complete
let $wait_condition=
select count(*) = 0 from performance_schema.threads
where `TYPE`='FOREGROUND' and PROCESSLIST_USER= 'user1';
--source include/wait_condition.inc
let $wait_condition=
select count(*) = 1 from performance_schema.threads
where `TYPE`='FOREGROUND' and PROCESSLIST_USER= 'user4';
--source include/wait_condition.inc
echo "================== con1/con5 disconnected ==================";
echo "================== Step 10 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
--disconnect con2
--connection default
# Wait for the disconnect to complete
let $wait_condition=
select count(*) = 0 from performance_schema.threads
where `TYPE`='FOREGROUND' and PROCESSLIST_USER= 'user2';
--source include/wait_condition.inc
echo "================== con2 disconnected ==================";
echo "================== Step 11 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
--disconnect con3
--connection default
# Wait for the disconnect to complete
let $wait_condition=
select count(*) = 0 from performance_schema.threads
where `TYPE`='FOREGROUND' and PROCESSLIST_USER= 'user3';
--source include/wait_condition.inc
echo "================== con3 disconnected ==================";
echo "================== Step 12 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
--disconnect con4
--connection default
# Wait for the disconnect to complete
let $wait_condition=
select count(*) = 0 from performance_schema.threads
where `TYPE`='FOREGROUND' and PROCESSLIST_USER= 'user4';
--source include/wait_condition.inc
echo "================== con4 disconnected ==================";
echo "================== Step 13 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
--connection default
truncate performance_schema.memory_summary_by_thread_by_event_name;
echo "================== MEMORY_BY_THREAD truncated ==================";
echo "================== Step 14 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
truncate performance_schema.memory_summary_by_account_by_event_name;
echo "================== MEMORY_BY_ACCOUNT truncated ==================";
echo "================== Step 15 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
truncate performance_schema.memory_summary_by_user_by_event_name;
echo "================== MEMORY_BY_USER truncated ==================";
echo "================== Step 16 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
truncate performance_schema.memory_summary_by_host_by_event_name;
echo "================== MEMORY_BY_HOST truncated ==================";
echo "================== Step 17 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
truncate performance_schema.memory_summary_global_by_event_name;
echo "================== MEMORY_GLOBAL truncated ==================";
echo "================== Step 18 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
truncate performance_schema.accounts;
echo "================== ACCOUNTS truncated ==================";
echo "================== Step 19 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
truncate performance_schema.users;
echo "================== USERS truncated ==================";
echo "================== Step 20 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;
truncate performance_schema.hosts;
echo "================== HOSTS truncated ==================";
echo "================== Step 21 ==================";
--vertical_results
call dump_thread();
execute dump_memory_account;
execute dump_memory_user;
execute dump_memory_host;
execute dump_memory_global;
--horizontal_results
execute dump_accounts;
execute dump_users;
execute dump_hosts;