Added explanations for key max_connections and fixed a Plesk bug when you run the script as a non-root user
This commit is contained in:
parent
433c0b8749
commit
6ca1761b3f
1 changed files with 12 additions and 8 deletions
|
@ -136,12 +136,12 @@ sub mysql_install_ok {
|
||||||
|
|
||||||
my $mysqllogin;
|
my $mysqllogin;
|
||||||
sub setup_mysql_login {
|
sub setup_mysql_login {
|
||||||
if ( -f "/etc/psa/.psa.shadow" ) {
|
if ( -r "/etc/psa/.psa.shadow" ) {
|
||||||
# It's a Plesk box, use the available credentials
|
# It's a Plesk box, use the available credentials
|
||||||
$mysqllogin = "-u admin -p`cat /etc/psa/.psa.shadow`";
|
$mysqllogin = "-u admin -p`cat /etc/psa/.psa.shadow`";
|
||||||
my $loginstatus = `mysqladmin ping $mysqllogin 2>&1`;
|
my $loginstatus = `mysqladmin ping $mysqllogin 2>&1`;
|
||||||
if ($loginstatus =~ /mysqld is alive/) {
|
if ($loginstatus =~ /mysqld is alive/) {
|
||||||
goodprint "Successfully logged into MySQL using Plesk's credentials.\n";
|
# Login was successful, but we won't say anything to save space
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
badprint "Attempted to use login credentials from Plesk, but they failed.\n";
|
badprint "Attempted to use login credentials from Plesk, but they failed.\n";
|
||||||
|
@ -159,7 +159,6 @@ sub setup_mysql_login {
|
||||||
if ( -e "$userpath/.my.cnf" ) {
|
if ( -e "$userpath/.my.cnf" ) {
|
||||||
# Login was successful, but we won't say anything to save space
|
# Login was successful, but we won't say anything to save space
|
||||||
} else {
|
} else {
|
||||||
#badprint "Successfully authenticated with no password - SECURITY RISK!\n";
|
|
||||||
badprint "Successfully authenticated with no password - SECURITY RISK!\n";
|
badprint "Successfully authenticated with no password - SECURITY RISK!\n";
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -175,7 +174,8 @@ sub setup_mysql_login {
|
||||||
$mysqllogin = "-u $name -p'$password'";
|
$mysqllogin = "-u $name -p'$password'";
|
||||||
my $loginstatus = `mysqladmin ping $mysqllogin 2>&1`;
|
my $loginstatus = `mysqladmin ping $mysqllogin 2>&1`;
|
||||||
if ($loginstatus =~ /mysqld is alive/) {
|
if ($loginstatus =~ /mysqld is alive/) {
|
||||||
print "\n".$good." Successfully logged into MySQL using provided credentials.\n";
|
# Login was successful, but we won't say anything to save space
|
||||||
|
print "\n";
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
print "\n".$bad." Attempted to use login credentials, but they were invalid.\n";
|
print "\n".$bad." Attempted to use login credentials, but they were invalid.\n";
|
||||||
|
@ -288,8 +288,6 @@ sub check_memory {
|
||||||
# by having buffers that are set too large
|
# by having buffers that are set too large
|
||||||
#
|
#
|
||||||
# PER-THREAD BUFFERS:
|
# PER-THREAD BUFFERS:
|
||||||
# binlog_cache_size - only if log_bin is 'ON' (default 32K)
|
|
||||||
my $binlog_cache_size = ($myvar{'log_bin'} =~ /ON/) ? $myvar{'binlog_cache_size'} : 0 ;
|
|
||||||
# join_buffer_size - helps joins that don't use indexes (default 128M)
|
# join_buffer_size - helps joins that don't use indexes (default 128M)
|
||||||
my $join_buffer_size = $myvar{'join_buffer_size'};
|
my $join_buffer_size = $myvar{'join_buffer_size'};
|
||||||
# read_buffer_size - for sequential scans (default 128K)
|
# read_buffer_size - for sequential scans (default 128K)
|
||||||
|
@ -302,7 +300,7 @@ sub check_memory {
|
||||||
my $thread_stack = $myvar{'thread_stack'};
|
my $thread_stack = $myvar{'thread_stack'};
|
||||||
#
|
#
|
||||||
# PER-THREAD BUFFER CALCULATIONS:
|
# PER-THREAD BUFFER CALCULATIONS:
|
||||||
my $thread_buffers = $read_buffer_size + $read_rnd_buffer_size + $sort_buffer_size + $thread_stack + $join_buffer_size + $binlog_cache_size;
|
my $thread_buffers = $read_buffer_size + $read_rnd_buffer_size + $sort_buffer_size + $thread_stack + $join_buffer_size;
|
||||||
my $total_thread_buffers = $thread_buffers * $myvar{'max_connections'};
|
my $total_thread_buffers = $thread_buffers * $myvar{'max_connections'};
|
||||||
my $max_thread_buffers = $thread_buffers * $mystat{'Max_used_connections'};
|
my $max_thread_buffers = $thread_buffers * $mystat{'Max_used_connections'};
|
||||||
#
|
#
|
||||||
|
@ -348,7 +346,7 @@ sub check_memory {
|
||||||
goodprint "MySQL is configured to use $pct_physical_memory% (".hr_bytes($total_memory).
|
goodprint "MySQL is configured to use $pct_physical_memory% (".hr_bytes($total_memory).
|
||||||
") of physical memory (".hr_bytes($physical_memory).")\n";
|
") of physical memory (".hr_bytes($physical_memory).")\n";
|
||||||
$exptext = "Your current memory settings are reasonable as they do not exceed the maximum amount of memory on ".
|
$exptext = "Your current memory settings are reasonable as they do not exceed the maximum amount of memory on ".
|
||||||
"your server. If you find that this script suggests increasing buffers in later tests, you have additional memory ".
|
"your server. If you find that this script suggests increasing buffers in later tests, you may not have additional memory ".
|
||||||
"available for the expansion of those buffers.";
|
"available for the expansion of those buffers.";
|
||||||
}
|
}
|
||||||
explainprint "This script's calculations show MySQL's memory usage at full capacity. ".
|
explainprint "This script's calculations show MySQL's memory usage at full capacity. ".
|
||||||
|
@ -407,13 +405,17 @@ sub check_connections {
|
||||||
badprint "$connpct% of connections have been used ".
|
badprint "$connpct% of connections have been used ".
|
||||||
"(".$mystat{'Max_used_connections'}."/".$myvar{'max_connections'}.")".
|
"(".$mystat{'Max_used_connections'}."/".$myvar{'max_connections'}.")".
|
||||||
" - Increase the max_connections variable\n";
|
" - Increase the max_connections variable\n";
|
||||||
|
$exptext = "Your historical connection usage is too high relative to your set maximum. The max_connections variable should be increased.";
|
||||||
} elsif ($connpct < 10) {
|
} elsif ($connpct < 10) {
|
||||||
badprint "$connpct% of connections have been used ".
|
badprint "$connpct% of connections have been used ".
|
||||||
"(".$mystat{'Max_used_connections'}."/".$myvar{'max_connections'}.")".
|
"(".$mystat{'Max_used_connections'}."/".$myvar{'max_connections'}.")".
|
||||||
" - Reduce max_connections\n";
|
" - Reduce max_connections\n";
|
||||||
|
$exptext = "Your historical connection usage is voo low relative to your set maximum. MySQL is wasting resources by allowing".
|
||||||
|
" so many concurrent connections.";
|
||||||
} else {
|
} else {
|
||||||
goodprint "$connpct% of connections have been used ".
|
goodprint "$connpct% of connections have been used ".
|
||||||
"(".$mystat{'Max_used_connections'}."/".$myvar{'max_connections'}.")\n";
|
"(".$mystat{'Max_used_connections'}."/".$myvar{'max_connections'}.")\n";
|
||||||
|
$exptext = "These settings are appropriate for your historical usage.";
|
||||||
}
|
}
|
||||||
# If the back_log is less than 50, there's a chance that connections will be forcefully rejected
|
# If the back_log is less than 50, there's a chance that connections will be forcefully rejected
|
||||||
if ($myvar{'back_log'} < 50) {
|
if ($myvar{'back_log'} < 50) {
|
||||||
|
@ -421,6 +423,8 @@ sub check_connections {
|
||||||
} else {
|
} else {
|
||||||
goodprint "Your listen queue back_log is set to a reasonable level (".$myvar{'back_log'}.")\n";
|
goodprint "Your listen queue back_log is set to a reasonable level (".$myvar{'back_log'}.")\n";
|
||||||
}
|
}
|
||||||
|
explainprint "You can currently handle ".($myvar{'max_connections'}+$myvar{'back_log'})." total connections, which includes ".
|
||||||
|
$myvar{'max_connections'}." active connections with ".$myvar{'back_log'}." more in queue. ".$exptext;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub check_key_buffer {
|
sub check_key_buffer {
|
||||||
|
|
Loading…
Reference in a new issue