Merge pull request #262 from kn007/patch-1

Non importance changes
This commit is contained in:
Jean-Marie Renouard 2016-10-27 21:16:16 +02:00 committed by GitHub
commit 9daf5cf42e

View file

@ -681,7 +681,7 @@ sub mysql_setup {
$opt{port} = ( $opt{port} eq 0 ) ? 3306 : $opt{port}; $opt{port} = ( $opt{port} eq 0 ) ? 3306 : $opt{port};
# If we're doing a remote connection, but forcemem wasn't specified, we need to exit # If we're doing a remote connection, but forcemem wasn't specified, we need to exit
if ( $opt{'forcemem'} eq 0 if ( $opt{'forcemem'} eq 0
&& ( $opt{host} ne "127.0.0.1" ) && ( $opt{host} ne "127.0.0.1" )
&& ( $opt{host} ne "localhost" ) ) && ( $opt{host} ne "localhost" ) )
{ {
@ -1343,7 +1343,7 @@ sub get_kernel_info() {
'fs.aio-max-nr > 1M (echo 1048576 > /proc/sys/fs/aio-max-nr)'; 'fs.aio-max-nr > 1M (echo 1048576 > /proc/sys/fs/aio-max-nr)';
} }
else { else {
infoprint "Max Number of AIO events is > 1M."; infoprint "Max Number of AIO events is > 1M.";
} }
} }
@ -1658,7 +1658,7 @@ sub get_replication_status {
badprint badprint
"This replication slave is not running but seems to be configured."; "This replication slave is not running but seems to be configured.";
} }
if ( defined($io_running) if ( defined($io_running)
&& $io_running =~ /yes/i && $io_running =~ /yes/i
&& $sql_running =~ /yes/i ) && $sql_running =~ /yes/i )
{ {
@ -1767,7 +1767,7 @@ sub check_architecture {
} }
elsif ( `uname` =~ /Darwin/ && `uname -m` =~ /x86_64/ ) { elsif ( `uname` =~ /Darwin/ && `uname -m` =~ /x86_64/ ) {
# Darwin gibas.local 12.3.0 Darwin Kernel Version 12.3.0: Sun Jan 6 22:37:10 PST 2013; root:xnu-2050.22.13~1/RELEASE_X86_64 x86_64 # Darwin gibas.local 12.3.0 Darwin Kernel Version 12.3.0: Sun Jan 6 22:37:10 PST 2013; root:xnu-2050.22.13~1/RELEASE_X86_64 x86_64
$arch = 64; $arch = 64;
goodprint "Operating on 64-bit architecture"; goodprint "Operating on 64-bit architecture";
} }
@ -1898,7 +1898,7 @@ sub check_storage_engines {
# Now we build a database list, and loop through it to get storage engine stats for tables # Now we build a database list, and loop through it to get storage engine stats for tables
foreach my $db (@dblist) { foreach my $db (@dblist) {
chomp($db); chomp($db);
if ( $db eq "information_schema" if ( $db eq "information_schema"
or $db eq "performance_schema" or $db eq "performance_schema"
or $db eq "mysql" or $db eq "mysql"
or $db eq "lost+found" ) or $db eq "lost+found" )
@ -2516,7 +2516,7 @@ sub mysql_stats {
} }
} }
if ( $arch if ( $arch
&& $arch == 32 && $arch == 32
&& $mycalc{'max_used_memory'} > 2 * 1024 * 1024 * 1024 ) && $mycalc{'max_used_memory'} > 2 * 1024 * 1024 * 1024 )
{ {
@ -2751,7 +2751,7 @@ sub mysql_stats {
# Temporary tables # Temporary tables
if ( $mystat{'Created_tmp_tables'} > 0 ) { if ( $mystat{'Created_tmp_tables'} > 0 ) {
if ( $mycalc{'pct_temp_disk'} > 25 if ( $mycalc{'pct_temp_disk'} > 25
&& $mycalc{'max_tmp_table_size'} < 256 * 1024 * 1024 ) && $mycalc{'max_tmp_table_size'} < 256 * 1024 * 1024 )
{ {
badprint badprint
@ -2868,7 +2868,7 @@ sub mysql_stats {
. $myvar{'open_files_limit'} . $myvar{'open_files_limit'}
. ") variable " ); . ") variable " );
push( @generalrec, push( @generalrec,
"should be greater than $table_cache_var ( " "should be greater than $table_cache_var ("
. $myvar{$table_cache_var} . $myvar{$table_cache_var}
. ")" ); . ")" );
} }
@ -2916,28 +2916,26 @@ sub mysql_stats {
# Binlog cache # Binlog cache
if ( defined $mycalc{'pct_binlog_cache'} ) { if ( defined $mycalc{'pct_binlog_cache'} ) {
if ( $mycalc{'pct_binlog_cache'} < 90 if ( $mycalc{'pct_binlog_cache'} < 90
&& $mystat{'Binlog_cache_use'} > 0 ) { && $mystat{'Binlog_cache_use'} > 0 ) {
badprint "Binlog cache memory access: " badprint "Binlog cache memory access: "
. $mycalc{'pct_binlog_cache'} . "% ( " . $mycalc{'pct_binlog_cache'} . "% ("
. ( . ( $mystat{'Binlog_cache_use'} - $mystat{'Binlog_cache_disk_use'} )
$mystat{'Binlog_cache_use'} - $mystat{'Binlog_cache_disk_use'} )
. " Memory / " . " Memory / "
. $mystat{'Binlog_cache_use'} . $mystat{'Binlog_cache_use'}
. " Total)"; . " Total)";
push( @generalrec, push( @generalrec,
"Increase binlog_cache_size (Actual value: " "Increase binlog_cache_size (Actual value: "
. $myvar{'binlog_cache_size'} . $myvar{'binlog_cache_size'}
. ") " ); . ")" );
push( @adjvars, push( @adjvars,
"binlog_cache_size (" "binlog_cache_size ("
. hr_bytes( $myvar{'binlog_cache_size'} + 16 * 1024 * 1024 ) . hr_bytes( $myvar{'binlog_cache_size'} + 16 * 1024 * 1024 )
. " ) " ); . ")" );
} else { } else {
goodprint "Binlog cache memory access: " goodprint "Binlog cache memory access: "
. $mycalc{'pct_binlog_cache'} . "% ( " . $mycalc{'pct_binlog_cache'} . "% ("
. ( . ( $mystat{'Binlog_cache_use'} - $mystat{'Binlog_cache_disk_use'} )
$mystat{'Binlog_cache_use'} - $mystat{'Binlog_cache_disk_use'} )
. " Memory / " . " Memory / "
. $mystat{'Binlog_cache_use'} . $mystat{'Binlog_cache_use'}
. " Total)"; . " Total)";
@ -3004,7 +3002,7 @@ sub mysql_myisam {
badprint badprint
"None of your MyISAM tables are indexed - add indexes immediately"; "None of your MyISAM tables are indexed - add indexes immediately";
} else { } else {
if ( $myvar{'key_buffer_size'} < $mycalc{'total_myisam_indexes'} if ( $myvar{'key_buffer_size'} < $mycalc{'total_myisam_indexes'}
&& $mycalc{'pct_keys_from_mem'} < 95 ) && $mycalc{'pct_keys_from_mem'} < 95 )
{ {
badprint "Key buffer size / total MyISAM indexes: " badprint "Key buffer size / total MyISAM indexes: "
@ -3090,7 +3088,7 @@ sub mariadb_threadpool {
} }
if ( $myvar{'have_innodb'} eq 'YES' ) { if ( $myvar{'have_innodb'} eq 'YES' ) {
if ( $myvar{'thread_pool_size'} < 16 if ( $myvar{'thread_pool_size'} < 16
or $myvar{'thread_pool_size'} > 36 ) or $myvar{'thread_pool_size'} > 36 )
{ {
badprint badprint
@ -3167,7 +3165,7 @@ sub mysqsl_pfs {
# Top user per connection # Top user per connection
subheaderprint "Performance schema: Top 5 user per connection"; subheaderprint "Performance schema: Top 5 user per connection";
my $nbL=1; my $nbL=1;
for my $lQuery(select_array ('select user, total_connections from sys.user_summary order by total_connections desc LIMIT 5')) { for my $lQuery(select_array ('select user, total_connections from sys.user_summary order by total_connections desc LIMIT 5')) {
infoprint " +-- $nbL: $lQuery conn(s)"; infoprint " +-- $nbL: $lQuery conn(s)";
$nbL++; $nbL++;
} }
@ -3250,7 +3248,7 @@ sub mysqsl_pfs {
# Top host per connection # Top host per connection
subheaderprint "Performance schema: Top 5 host per connection"; subheaderprint "Performance schema: Top 5 host per connection";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('select host, total_connections from sys.host_summary order by total_connections desc LIMIT 5')) { for my $lQuery(select_array ('select host, total_connections from sys.host_summary order by total_connections desc LIMIT 5')) {
infoprint " +-- $nbL: $lQuery conn(s)"; infoprint " +-- $nbL: $lQuery conn(s)";
$nbL++; $nbL++;
} }
@ -3415,7 +3413,7 @@ sub mysqsl_pfs {
# Process per allocated memory # Process per allocated memory
subheaderprint "Performance schema: Process per allocated memory"; subheaderprint "Performance schema: Process per allocated memory";
$nbL=1; $nbL=1;
for my $lQuery(select_array ("select concat(user,concat('/', IFNULL(Command,'NONE'))) AS PROC, current_memory from sys.processlist ORDER BY current_memory DESC;" )) { for my $lQuery(select_array ("select concat(user,concat('/', IFNULL(Command,'NONE'))) AS PROC, current_memory from sys.processlist ORDER BY current_memory DESC;" )) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -3548,7 +3546,7 @@ sub mysqsl_pfs {
infoprint "No information found or indicators desactivated." if ($nbL == 1); infoprint "No information found or indicators desactivated." if ($nbL == 1);
# FILE by IO read bytes # FILE by IO read bytes
subheaderprint "Performance schema: FILE by IO read bytes"; subheaderprint "Performance schema: FILE by IO read bytes";
$nbL=1; $nbL=1;
for my $lQuery(select_array ("use sys;(select file, total_read from io_global_by_file_by_bytes where total_read like '%MiB' order by total_read DESC) UNION (select file, total_read from io_global_by_file_by_bytes where total_read like '%KiB' order by total_read DESC LIMIT 15);")) { for my $lQuery(select_array ("use sys;(select file, total_read from io_global_by_file_by_bytes where total_read like '%MiB' order by total_read DESC) UNION (select file, total_read from io_global_by_file_by_bytes where total_read like '%KiB' order by total_read DESC LIMIT 15);")) {
@ -3557,7 +3555,7 @@ sub mysqsl_pfs {
} }
infoprint "No information found or indicators desactivated." if ($nbL == 1); infoprint "No information found or indicators desactivated." if ($nbL == 1);
# FILE by IO written bytes # FILE by IO written bytes
subheaderprint "Performance schema: FILE by IO written bytes"; subheaderprint "Performance schema: FILE by IO written bytes";
$nbL=1; $nbL=1;
for my $lQuery(select_array ("use sys;(select file, total_written from io_global_by_file_by_bytes where total_written like '%MiB' order by total_written DESC) UNION (select file, total_written from io_global_by_file_by_bytes where total_written like '%KiB' order by total_written DESC LIMIT 15);")) { for my $lQuery(select_array ("use sys;(select file, total_written from io_global_by_file_by_bytes where total_written like '%MiB' order by total_written DESC) UNION (select file, total_written from io_global_by_file_by_bytes where total_written like '%KiB' order by total_written DESC LIMIT 15);")) {
@ -3604,7 +3602,7 @@ sub mysqsl_pfs {
infoprint "No information found or indicators desactivated." if ($nbL == 1); infoprint "No information found or indicators desactivated." if ($nbL == 1);
# Event Wait by write bytes # Event Wait by write bytes
subheaderprint "Performance schema: Event Wait written bytes"; subheaderprint "Performance schema: Event Wait written bytes";
$nbL=1; $nbL=1;
for my $lQuery(select_array ("use sys;(select event_name, total_written from io_global_by_wait_by_bytes where total_written like '%MiB' order by total_written DESC) UNION (select event_name, total_written from io_global_by_wait_by_bytes where total_written like '%KiB' order by total_written DESC LIMIT 15);")) { for my $lQuery(select_array ("use sys;(select event_name, total_written from io_global_by_wait_by_bytes where total_written like '%MiB' order by total_written DESC) UNION (select event_name, total_written from io_global_by_wait_by_bytes where total_written like '%KiB' order by total_written DESC LIMIT 15);")) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
@ -3661,7 +3659,7 @@ sub mysqsl_pfs {
# TOP 15 high read latency index # TOP 15 high read latency index
subheaderprint "Performance schema: TOP 15 high read latency index"; subheaderprint "Performance schema: TOP 15 high read latency index";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select table_schema, table_name,index_name, select_latency from schema_index_statistics ORDER BY select_latency DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select table_schema, table_name,index_name, select_latency from schema_index_statistics ORDER BY select_latency DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -3670,7 +3668,7 @@ sub mysqsl_pfs {
# TOP 15 high insert latency index # TOP 15 high insert latency index
subheaderprint "Performance schema: TOP 15 most modified indexes"; subheaderprint "Performance schema: TOP 15 most modified indexes";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select table_schema, table_name,index_name, insert_latency from schema_index_statistics ORDER BY insert_latency DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select table_schema, table_name,index_name, insert_latency from schema_index_statistics ORDER BY insert_latency DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -3679,7 +3677,7 @@ sub mysqsl_pfs {
# TOP 15 high update latency index # TOP 15 high update latency index
subheaderprint "Performance schema: TOP 15 high update latency index"; subheaderprint "Performance schema: TOP 15 high update latency index";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select table_schema, table_name,index_name, update_latency from schema_index_statistics ORDER BY update_latency DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select table_schema, table_name,index_name, update_latency from schema_index_statistics ORDER BY update_latency DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -3688,7 +3686,7 @@ sub mysqsl_pfs {
# TOP 15 high delete latency index # TOP 15 high delete latency index
subheaderprint "Performance schema: TOP 15 high delete latency index"; subheaderprint "Performance schema: TOP 15 high delete latency index";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select table_schema, table_name,index_name, delete_latency from schema_index_statistics ORDER BY delete_latency DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select table_schema, table_name,index_name, delete_latency from schema_index_statistics ORDER BY delete_latency DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -3715,7 +3713,7 @@ sub mysqsl_pfs {
# TOP 15 high read latency tables # TOP 15 high read latency tables
subheaderprint "Performance schema: TOP 15 high read latency tables"; subheaderprint "Performance schema: TOP 15 high read latency tables";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select table_schema, table_name, fetch_latency from schema_table_statistics ORDER BY fetch_latency DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select table_schema, table_name, fetch_latency from schema_table_statistics ORDER BY fetch_latency DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -3724,7 +3722,7 @@ sub mysqsl_pfs {
# TOP 15 high insert latency tables # TOP 15 high insert latency tables
subheaderprint "Performance schema: TOP 15 high insert latency tables"; subheaderprint "Performance schema: TOP 15 high insert latency tables";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select table_schema, table_name, insert_latency from schema_table_statistics ORDER BY insert_latency DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select table_schema, table_name, insert_latency from schema_table_statistics ORDER BY insert_latency DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -3733,7 +3731,7 @@ sub mysqsl_pfs {
# TOP 15 high update latency tables # TOP 15 high update latency tables
subheaderprint "Performance schema: TOP 15 high update latency tables"; subheaderprint "Performance schema: TOP 15 high update latency tables";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select table_schema, table_name, update_latency from schema_table_statistics ORDER BY update_latency DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select table_schema, table_name, update_latency from schema_table_statistics ORDER BY update_latency DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -3742,7 +3740,7 @@ sub mysqsl_pfs {
# TOP 15 high delete latency tables # TOP 15 high delete latency tables
subheaderprint "Performance schema: TOP 15 high delete latency tables"; subheaderprint "Performance schema: TOP 15 high delete latency tables";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select table_schema, table_name, delete_latency from schema_table_statistics ORDER BY delete_latency DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select table_schema, table_name, delete_latency from schema_table_statistics ORDER BY delete_latency DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -3757,7 +3755,7 @@ sub mysqsl_pfs {
} }
infoprint "No information found or indicators desactivated." if ($nbL == 1); infoprint "No information found or indicators desactivated." if ($nbL == 1);
subheaderprint "Performance schema: Tables not using InnoDb buffer"; subheaderprint "Performance schema: Tables not using InnoDB buffer";
$nbL=1; $nbL=1;
for my $lQuery(select_array (' Select table_schema, table_name from sys.schema_table_statistics_with_buffer where innodb_buffer_allocated IS NULL;')) { for my $lQuery(select_array (' Select table_schema, table_name from sys.schema_table_statistics_with_buffer where innodb_buffer_allocated IS NULL;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
@ -3765,14 +3763,14 @@ sub mysqsl_pfs {
} }
infoprint "No information found or indicators desactivated." if ($nbL == 1); infoprint "No information found or indicators desactivated." if ($nbL == 1);
subheaderprint "Performance schema: Table not using InnoDb buffer"; subheaderprint "Performance schema: Table not using InnoDB buffer";
$nbL=1; $nbL=1;
for my $lQuery(select_array (' Select table_schema, table_name from sys.schema_table_statistics_with_buffer where innodb_buffer_allocated IS NULL;')) { for my $lQuery(select_array (' Select table_schema, table_name from sys.schema_table_statistics_with_buffer where innodb_buffer_allocated IS NULL;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
infoprint "No information found or indicators desactivated." if ($nbL == 1); infoprint "No information found or indicators desactivated." if ($nbL == 1);
subheaderprint "Performance schema: Table not using InnoDb buffer"; subheaderprint "Performance schema: Table not using InnoDB buffer";
$nbL=1; $nbL=1;
for my $lQuery(select_array (' Select table_schema, table_name from sys.schema_table_statistics_with_buffer where innodb_buffer_allocated IS NULL;')) { for my $lQuery(select_array (' Select table_schema, table_name from sys.schema_table_statistics_with_buffer where innodb_buffer_allocated IS NULL;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
@ -3780,18 +3778,18 @@ sub mysqsl_pfs {
} }
infoprint "No information found or indicators desactivated." if ($nbL == 1); infoprint "No information found or indicators desactivated." if ($nbL == 1);
subheaderprint "Performance schema: Top 15 Tables using InnoDb buffer"; subheaderprint "Performance schema: Top 15 Tables using InnoDB buffer";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('Select table_schema, table_name,innodb_buffer_allocated from sys.schema_table_statistics_with_buffer where innodb_buffer_allocated IS NOT NULL ORDER BY innodb_buffer_allocated DESC LIMIT 15;')) { for my $lQuery(select_array ('select table_schema,table_name,innodb_buffer_allocated from sys.schema_table_statistics_with_buffer where innodb_buffer_allocated IS NOT NULL ORDER BY innodb_buffer_allocated DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
infoprint "No information found or indicators desactivated." if ($nbL == 1); infoprint "No information found or indicators desactivated." if ($nbL == 1);
subheaderprint "Performance schema: Top 15 Tables with InnoDb buffer free"; subheaderprint "Performance schema: Top 15 Tables with InnoDB buffer free";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('Select table_schema, table_name,innodb_buffer_free from sys.schema_table_statistics_with_buffer where innodb_buffer_allocated IS NOT NULL ORDER BY innodb_buffer_free DESC LIMIT 15;')) { for my $lQuery(select_array ('select table_schema,table_name,innodb_buffer_free from sys.schema_table_statistics_with_buffer where innodb_buffer_allocated IS NOT NULL ORDER BY innodb_buffer_free DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -3896,7 +3894,7 @@ sub mysqsl_pfs {
subheaderprint "Performance schema: TOP 15 total latency queries with sort"; subheaderprint "Performance schema: TOP 15 total latency queries with sort";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select db, query, total_latency AS search from statements_with_sorting ORDER BY total_latency DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select db, query, total_latency AS search from statements_with_sorting ORDER BY total_latency DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -3904,7 +3902,7 @@ sub mysqsl_pfs {
subheaderprint "Performance schema: TOP 15 merge queries with sort"; subheaderprint "Performance schema: TOP 15 merge queries with sort";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select db, query, sort_merge_passes AS search from statements_with_sorting ORDER BY sort_merge_passes DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select db, query, sort_merge_passes AS search from statements_with_sorting ORDER BY sort_merge_passes DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -3912,7 +3910,7 @@ sub mysqsl_pfs {
subheaderprint "Performance schema: TOP 15 average sort merges queries with sort"; subheaderprint "Performance schema: TOP 15 average sort merges queries with sort";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select db, query, avg_sort_merges AS search from statements_with_sorting ORDER BY avg_sort_merges DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select db, query, avg_sort_merges AS search from statements_with_sorting ORDER BY avg_sort_merges DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -3920,7 +3918,7 @@ sub mysqsl_pfs {
subheaderprint "Performance schema: TOP 15 scans queries with sort"; subheaderprint "Performance schema: TOP 15 scans queries with sort";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select db, query, sorts_using_scans AS search from statements_with_sorting ORDER BY sorts_using_scans DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select db, query, sorts_using_scans AS search from statements_with_sorting ORDER BY sorts_using_scans DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -3928,7 +3926,7 @@ sub mysqsl_pfs {
subheaderprint "Performance schema: TOP 15 range queries with sort"; subheaderprint "Performance schema: TOP 15 range queries with sort";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select db, query, sort_using_range AS search from statements_with_sorting ORDER BY sort_using_range DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select db, query, sort_using_range AS search from statements_with_sorting ORDER BY sort_using_range DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -3984,7 +3982,7 @@ sub mysqsl_pfs {
subheaderprint "Performance schema: TOP 15 queries with temp table to disk"; subheaderprint "Performance schema: TOP 15 queries with temp table to disk";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select db, query, disk_tmp_tables from statements_with_sorting ORDER BY disk_tmp_tables DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select db, query, disk_tmp_tables from statements_with_sorting ORDER BY disk_tmp_tables DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -4005,7 +4003,7 @@ sub mysqsl_pfs {
subheaderprint "Performance schema: TOP 15 class events by number"; subheaderprint "Performance schema: TOP 15 class events by number";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select event_class, total from wait_classes_global_by_latency ORDER BY total DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select event_class, total from wait_classes_global_by_latency ORDER BY total DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -4021,7 +4019,7 @@ sub mysqsl_pfs {
subheaderprint "Performance schema: TOP 15 class events by total latency"; subheaderprint "Performance schema: TOP 15 class events by total latency";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select event_class, total_latency from wait_classes_global_by_latency ORDER BY total_latency DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select event_class, total_latency from wait_classes_global_by_latency ORDER BY total_latency DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -4037,7 +4035,7 @@ sub mysqsl_pfs {
subheaderprint "Performance schema: TOP 15 class events by max latency"; subheaderprint "Performance schema: TOP 15 class events by max latency";
$nbL=1; $nbL=1;
for my $lQuery(select_array ('use sys;select event_class, max_latency from wait_classes_global_by_latency ORDER BY max_latency DESC LIMIT 15;')) { for my $lQuery(select_array ('use sys;select event_class, max_latency from wait_classes_global_by_latency ORDER BY max_latency DESC LIMIT 15;')) {
infoprint " +-- $nbL: $lQuery"; infoprint " +-- $nbL: $lQuery";
$nbL++; $nbL++;
} }
@ -4289,14 +4287,14 @@ having sum(if(c.column_key in ('PRI','UNI'), 1,0)) = 0"
else { else {
goodprint "All tables get a primary key"; goodprint "All tables get a primary key";
} }
my @nonInnoDbTables = select_array( my @nonInnoDBTables = select_array(
"select CONCAT(table_schema,CONCAT('.', table_name)) from information_schema.tables where ENGINE <> 'InnoDb' and table_schema not in ('mysql', 'performance_schema', 'information_schema')" "select CONCAT(table_schema,CONCAT('.', table_name)) from information_schema.tables where ENGINE <> 'InnoDB' and table_schema not in ('mysql', 'performance_schema', 'information_schema')"
); );
if ( scalar(@nonInnoDbTables) > 0 ) { if ( scalar(@nonInnoDBTables) > 0 ) {
badprint "Following table(s) are not InnoDB table:"; badprint "Following table(s) are not InnoDB table:";
push @generalrec, push @generalrec,
"Ensure that all table(s) are InnoDB tables for Galera replication"; "Ensure that all table(s) are InnoDB tables for Galera replication";
foreach my $badtable (@nonInnoDbTables) { foreach my $badtable (@nonInnoDBTables) {
badprint "\t$badtable"; badprint "\t$badtable";
} }
} }
@ -4311,11 +4309,11 @@ having sum(if(c.column_key in ('PRI','UNI'), 1,0)) = 0"
goodprint "Binlog format is in ROW mode."; goodprint "Binlog format is in ROW mode.";
} }
if ( $myvar{'innodb_flush_log_at_trx_commit'} != 0 ) { if ( $myvar{'innodb_flush_log_at_trx_commit'} != 0 ) {
badprint "Innodb flush log at each commit should be disabled."; badprint "InnoDB flush log at each commit should be disabled.";
push @adjvars, "innodb_flush_log_at_trx_commit = 0"; push @adjvars, "innodb_flush_log_at_trx_commit = 0";
} }
else { else {
goodprint "Innodb flush log at each commit is disabled for Galera."; goodprint "InnoDB flush log at each commit is disabled for Galera.";
} }
infoprint "Read consistency mode :" . $myvar{'wsrep_causal_reads'}; infoprint "Read consistency mode :" . $myvar{'wsrep_causal_reads'};
@ -4546,15 +4544,15 @@ sub mysql_innodb {
. ") if possible." ); . ") if possible." );
} }
if ($mycalc{'innodb_log_size_pct'} < 20 or $mycalc{'innodb_log_size_pct'} > 30) { if ($mycalc{'innodb_log_size_pct'} < 20 or $mycalc{'innodb_log_size_pct'} > 30) {
badprint "Ratio InnoDB log file size / InnoDb Buffer pool size (". badprint "Ratio InnoDB log file size / InnoDB Buffer pool size (".
$mycalc{'innodb_log_size_pct'}. $mycalc{'innodb_log_size_pct'}.
" %): " . hr_bytes( $myvar{'innodb_log_file_size'} ) . "/" " %): " . hr_bytes( $myvar{'innodb_log_file_size'} ) . "/"
. hr_bytes( $myvar{'innodb_buffer_pool_size'} ) . " should be equal 25%"; . hr_bytes( $myvar{'innodb_buffer_pool_size'} ) . " should be equal 25%";
push( @adjvars, push( @adjvars,
"innodb_log_file_size should be equals to 1/4 of buffer pool size (= " "innodb_log_file_size should be equals to 1/4 of buffer pool size (="
. hr_bytes_rnd( $myvar{'innodb_buffer_pool_size'}/4 ) . ") if possible." ); . hr_bytes_rnd( $myvar{'innodb_buffer_pool_size'}/4 ) . ") if possible." );
} else { } else {
goodprint "InnoDB log file size / InnoDb Buffer pool size: " goodprint "InnoDB log file size / InnoDB Buffer pool size: "
. hr_bytes( $myvar{'innodb_log_file_size'} ) . "/" . hr_bytes( $myvar{'innodb_log_file_size'} ) . "/"
. hr_bytes( $myvar{'innodb_buffer_pool_size'} ) . " should be equal 25%"; . hr_bytes( $myvar{'innodb_buffer_pool_size'} ) . " should be equal 25%";
} }
@ -4772,7 +4770,7 @@ sub mysql_databases {
foreach (@dblist) { foreach (@dblist) {
chomp($_); chomp($_);
if ( $_ eq "information_schema" if ( $_ eq "information_schema"
or $_ eq "performance_schema" or $_ eq "performance_schema"
or $_ eq "mysql" or $_ eq "mysql"
or $_ eq "" ) or $_ eq "" )
@ -4794,7 +4792,7 @@ sub mysql_databases {
. ( . (
join ", ", join ", ",
select_array( select_array(
"SELECT DISTINCT(TABLE_COLLATION) FROM information_schema.TABLES WHERE TABLE_SCHEMA='$_';" "SELECT DISTINCT(TABLE_COLLATION) FROM information_schema.TABLES WHERE TABLE_SCHEMA='$_';"
) )
) . ")"; ) . ")";
infoprint " +-- ROWS : " infoprint " +-- ROWS : "
@ -4859,13 +4857,13 @@ sub mysql_databases {
} }
my @distinct_column_charset = select_array( my @distinct_column_charset = select_array(
"select DISTINCT(CHARACTER_SET_NAME) from information_schema.COLUMNS where CHARACTER_SET_NAME IS NOT NULL AND TABLE_SCHEMA ='$_'" "select DISTINCT(CHARACTER_SET_NAME) from information_schema.COLUMNS where CHARACTER_SET_NAME IS NOT NULL AND TABLE_SCHEMA ='$_'"
); );
infoprint "Charsets for $dbinfo[0] database table column: " infoprint "Charsets for $dbinfo[0] database table column: "
. join( ', ', @distinct_column_charset ); . join( ', ', @distinct_column_charset );
if ( scalar(@distinct_column_charset) > 1 ) { if ( scalar(@distinct_column_charset) > 1 ) {
badprint $dbinfo[0] badprint $dbinfo[0]
. " table column(s) has several charsets defined for all text like column(s)."; . " table column(s) has several charsets defined for all text like column(s).";
push( @generalrec, push( @generalrec,
"Limit charset for column to one charset if possible for " "Limit charset for column to one charset if possible for "
. $dbinfo[0] . $dbinfo[0]
@ -4877,13 +4875,13 @@ sub mysql_databases {
} }
my @distinct_column_collation = select_array( my @distinct_column_collation = select_array(
"select DISTINCT(COLLATION_NAME) from information_schema.COLUMNS where COLLATION_NAME IS NOT NULL AND TABLE_SCHEMA ='$_'" "select DISTINCT(COLLATION_NAME) from information_schema.COLUMNS where COLLATION_NAME IS NOT NULL AND TABLE_SCHEMA ='$_'"
); );
infoprint "Collations for $dbinfo[0] database table column: " infoprint "Collations for $dbinfo[0] database table column: "
. join( ', ', @distinct_column_collation ); . join( ', ', @distinct_column_collation );
if ( scalar(@distinct_column_collation) > 1 ) { if ( scalar(@distinct_column_collation) > 1 ) {
badprint $dbinfo[0] badprint $dbinfo[0]
. " table column(s) has several collations defined for all text like column(s)."; . " table column(s) has several collations defined for all text like column(s).";
push( @generalrec, push( @generalrec,
"Limit collations for column to one collation if possible for " "Limit collations for column to one collation if possible for "
. $dbinfo[0] . $dbinfo[0]