Quick mod to add Aria storage engine support
Conflicts: mysqltuner.pl
This commit is contained in:
parent
78680600cb
commit
c8872380fb
1 changed files with 42 additions and 1 deletions
|
@ -787,6 +787,7 @@ sub check_storage_engines {
|
||||||
$engines .= (defined $myvar{'have_federated_engine'} && $myvar{'have_federated_engine'} eq "YES")? greenwrap "+Federated " : redwrap "-Federated " ;
|
$engines .= (defined $myvar{'have_federated_engine'} && $myvar{'have_federated_engine'} eq "YES")? greenwrap "+Federated " : redwrap "-Federated " ;
|
||||||
$engines .= (defined $myvar{'have_innodb'} && $myvar{'have_innodb'} eq "YES")? greenwrap "+InnoDB " : redwrap "-InnoDB " ;
|
$engines .= (defined $myvar{'have_innodb'} && $myvar{'have_innodb'} eq "YES")? greenwrap "+InnoDB " : redwrap "-InnoDB " ;
|
||||||
$engines .= (defined $myvar{'have_isam'} && $myvar{'have_isam'} eq "YES")? greenwrap "+ISAM " : redwrap "-ISAM " ;
|
$engines .= (defined $myvar{'have_isam'} && $myvar{'have_isam'} eq "YES")? greenwrap "+ISAM " : redwrap "-ISAM " ;
|
||||||
|
$engines .= (defined $myvar{'have_aria'} && $myvar{'have_aria'} eq "YES")? greenwrap "+Aria " : redwrap "-Aria " ;
|
||||||
$engines .= (defined $myvar{'have_ndbcluster'} && $myvar{'have_ndbcluster'} eq "YES")? greenwrap "+NDBCluster " : redwrap "-NDBCluster " ;
|
$engines .= (defined $myvar{'have_ndbcluster'} && $myvar{'have_ndbcluster'} eq "YES")? greenwrap "+NDBCluster " : redwrap "-NDBCluster " ;
|
||||||
}
|
}
|
||||||
infoprint "Status: $engines\n";
|
infoprint "Status: $engines\n";
|
||||||
|
@ -922,6 +923,7 @@ sub calculations {
|
||||||
$mycalc{'server_buffers'} += (defined $myvar{'innodb_additional_mem_pool_size'}) ? $myvar{'innodb_additional_mem_pool_size'} : 0 ;
|
$mycalc{'server_buffers'} += (defined $myvar{'innodb_additional_mem_pool_size'}) ? $myvar{'innodb_additional_mem_pool_size'} : 0 ;
|
||||||
$mycalc{'server_buffers'} += (defined $myvar{'innodb_log_buffer_size'}) ? $myvar{'innodb_log_buffer_size'} : 0 ;
|
$mycalc{'server_buffers'} += (defined $myvar{'innodb_log_buffer_size'}) ? $myvar{'innodb_log_buffer_size'} : 0 ;
|
||||||
$mycalc{'server_buffers'} += (defined $myvar{'query_cache_size'}) ? $myvar{'query_cache_size'} : 0 ;
|
$mycalc{'server_buffers'} += (defined $myvar{'query_cache_size'}) ? $myvar{'query_cache_size'} : 0 ;
|
||||||
|
$mycalc{'server_buffers'} += (defined $myvar{'aria_pagecache_buffer_size'}) ? $myvar{'aria_pagecache_buffer_size'} : 0 ;
|
||||||
|
|
||||||
# Global memory
|
# Global memory
|
||||||
$mycalc{'max_used_memory'} = $mycalc{'server_buffers'} + $mycalc{"max_total_per_thread_buffers"};
|
$mycalc{'max_used_memory'} = $mycalc{'server_buffers'} + $mycalc{"max_total_per_thread_buffers"};
|
||||||
|
@ -969,6 +971,11 @@ sub calculations {
|
||||||
} else {
|
} else {
|
||||||
$mycalc{'pct_keys_from_mem'} = 0;
|
$mycalc{'pct_keys_from_mem'} = 0;
|
||||||
}
|
}
|
||||||
|
if (defined $mystat{'Aria_pagecache_read_requests'} && $mystat{'Aria_pagecache_read_requests'} > 0) {
|
||||||
|
$mycalc{'pct_aria_keys_from_mem'} = sprintf("%.1f",(100 - (($mystat{'Aria_pagecache_reads'} / $mystat{'Aria_pagecache_read_requests'}) * 100)));
|
||||||
|
} else {
|
||||||
|
$mycalc{'pct_aria_keys_from_mem'} = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if ($mystat{'Key_write_requests'} > 0) {
|
if ($mystat{'Key_write_requests'} > 0) {
|
||||||
$mycalc{'pct_wkeys_from_mem'} = sprintf("%.1f",(100 - (($mystat{'Key_writes'} / $mystat{'Key_write_requests'}) * 100)));
|
$mycalc{'pct_wkeys_from_mem'} = sprintf("%.1f",(100 - (($mystat{'Key_writes'} / $mystat{'Key_write_requests'}) * 100)));
|
||||||
|
@ -980,14 +987,21 @@ sub calculations {
|
||||||
my $size = 0;
|
my $size = 0;
|
||||||
$size += (split)[0] for `find $myvar{'datadir'} -name "*.MYI" 2>&1 | xargs du -L $duflags 2>&1`;
|
$size += (split)[0] for `find $myvar{'datadir'} -name "*.MYI" 2>&1 | xargs du -L $duflags 2>&1`;
|
||||||
$mycalc{'total_myisam_indexes'} = $size;
|
$mycalc{'total_myisam_indexes'} = $size;
|
||||||
|
$mycalc{'total_aria_indexes'} = 0;
|
||||||
} elsif (mysql_version_ge(5)) {
|
} elsif (mysql_version_ge(5)) {
|
||||||
$mycalc{'total_myisam_indexes'} = select_one "SELECT IFNULL(SUM(INDEX_LENGTH),0) FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('information_schema') AND ENGINE = 'MyISAM';";
|
$mycalc{'total_myisam_indexes'} = select_one "SELECT IFNULL(SUM(INDEX_LENGTH),0) FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('information_schema') AND ENGINE = 'MyISAM';";
|
||||||
|
$mycalc{'total_aria_indexe'} = select_one "SELECT IFNULL(SUM(INDEX_LENGTH),0) FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('information_schema') AND ENGINE = 'Aria';";
|
||||||
}
|
}
|
||||||
if (defined $mycalc{'total_myisam_indexes'} and $mycalc{'total_myisam_indexes'} == 0) {
|
if (defined $mycalc{'total_myisam_indexes'} and $mycalc{'total_myisam_indexes'} == 0) {
|
||||||
$mycalc{'total_myisam_indexes'} = "fail";
|
$mycalc{'total_myisam_indexes'} = "fail";
|
||||||
} elsif (defined $mycalc{'total_myisam_indexes'}) {
|
} elsif (defined $mycalc{'total_myisam_indexes'}) {
|
||||||
chomp($mycalc{'total_myisam_indexes'});
|
chomp($mycalc{'total_myisam_indexes'});
|
||||||
}
|
}
|
||||||
|
if (defined $mycalc{'total_aria_indexes'} and $mycalc{'total_aria_indexes'} == 0) {
|
||||||
|
$mycalc{'total_aria_indexes'} = "fail";
|
||||||
|
} elsif (defined $mycalc{'total_aria_indexes'}) {
|
||||||
|
chomp($mycalc{'total_aria_indexes'});
|
||||||
|
}
|
||||||
|
|
||||||
# Query cache
|
# Query cache
|
||||||
if (mysql_version_ge(4)) {
|
if (mysql_version_ge(4)) {
|
||||||
|
@ -1219,6 +1233,33 @@ sub mysql_stats {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Aria pagecache
|
||||||
|
if (defined $myvar{'have_aria'} && $myvar{'have_aria'} eq "YES" && defined $enginestats{'Aria'}) {
|
||||||
|
if (!defined($mycalc{'total_aria_indexes'}) and $doremote == 1) {
|
||||||
|
push(@generalrec,"Unable to calculate Aria indexes on remote MySQL server < 5.0.0");
|
||||||
|
} elsif ($mycalc{'total_aria_indexes'} =~ /^fail$/) {
|
||||||
|
badprint "Cannot calculate Aria index size - re-run script as root user\n";
|
||||||
|
} elsif ($mycalc{'total_aria_indexes'} == "0") {
|
||||||
|
badprint "None of your Aria tables are indexed - add indexes immediately\n";
|
||||||
|
} else {
|
||||||
|
if ($myvar{'aria_pagecache_buffer_size'} < $mycalc{'total_aria_indexes'} && $mycalc{'pct_aria_keys_from_mem'} < 95) {
|
||||||
|
badprint "Aria pagecache size / total Aria indexes: ".hr_bytes($myvar{'aria_pagecache_buffer_size'})."/".hr_bytes($mycalc{'total_aria_indexes'})."\n";
|
||||||
|
push(@adjvars,"aria_pagecache_buffer_size (> ".hr_bytes($mycalc{'total_aria_indexes'}).")");
|
||||||
|
} else {
|
||||||
|
goodprint "Aria pagecache size / total Aria indexes: ".hr_bytes($myvar{'aria_pagecache_buffer_size'})."/".hr_bytes($mycalc{'total_aria_indexes'})."\n";
|
||||||
|
}
|
||||||
|
if ($mystat{'Aria_pagecache_read_requests'} > 0) {
|
||||||
|
if ($mycalc{'pct_aria_keys_from_mem'} < 95) {
|
||||||
|
badprint "Aria pagecache hit rate: $mycalc{'pct_aria_keys_from_mem'}% (".hr_num($mystat{'Aria_pagecache_read_requests'})." cached / ".hr_num($mystat{'Aria_pagecache_reads'})." reads)\n";
|
||||||
|
} else {
|
||||||
|
goodprint "Aria pagecache hit rate: $mycalc{'pct_aria_keys_from_mem'}% (".hr_num($mystat{'Aria_pagecache_read_requests'})." cached / ".hr_num($mystat{'Aria_pagecache_reads'})." reads)\n";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
# No queries have run that would use keys
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Query cache
|
# Query cache
|
||||||
if (!mysql_version_ge(4)) {
|
if (!mysql_version_ge(4)) {
|
||||||
# MySQL versions < 4.01 don't support query caching
|
# MySQL versions < 4.01 don't support query caching
|
||||||
|
|
Loading…
Reference in a new issue