mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
506 lines
13 KiB
PHP
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;
|
|
|