Merge branch 'master' into update-shebang

This commit is contained in:
Jean-Marie Renouard 2024-02-08 23:18:22 +01:00 committed by GitHub
commit 2f2b7680bd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 30 additions and 20 deletions

View file

@ -1,6 +1,6 @@
# NAME
MySQLTuner 2.5.2 - MySQL High Performance Tuning Script
MySQLTuner 2.5.3 - MySQL High Performance Tuning Script
# IMPORTANT USAGE GUIDELINES

View file

@ -1,5 +1,5 @@
#!/usr/bin/env perl
# mysqltuner.pl - Version 2.5.2
#!env perl
# mysqltuner.pl - Version 2.5.3
# High Performance MySQL Tuning Script
# Copyright (C) 2015-2023 Jean-Marie Renouard - jmrenouard@gmail.com
# Copyright (C) 2006-2023 Major Hayden - major@mhtx.net
@ -57,7 +57,7 @@ use Cwd 'abs_path';
#use Env;
# Set up a few variables for use in the script
my $tunerversion = "2.5.2";
my $tunerversion = "2.5.3";
my ( @adjvars, @generalrec );
# Set defaults
@ -109,6 +109,7 @@ my %opt = (
"prettyjson" => 0,
"reportfile" => 0,
"verbose" => 0,
"experimental" => 0,
"defaults-file" => '',
"defaults-extra-file" => '',
"protocol" => '',
@ -151,7 +152,7 @@ GetOptions(
'server-log=s', 'protocol=s',
'defaults-extra-file=s', 'dumpdir=s',
'feature=s', 'dbgpattern=s',
'defaultarch=i'
'defaultarch=i', 'experimental'
)
or pod2usage(
-exitval => 1,
@ -209,6 +210,11 @@ $basic_password_files = "/usr/share/mysqltuner/basic_passwords.txt"
$opt{dbgpattern} = '.*' if ( $opt{dbgpattern} eq '' );
# Activate debug variables
#if ( $opt{debug} ne '' ) { $opt{debug} = 2; }
# Activate experimental calculations and analysis
#if ( $opt{experimental} ne '' ) { $opt{experimental} = 1; }
# check if we need to enable verbose mode
if ( $opt{feature} ne '' ) { $opt{verbose} = 1; }
if ( $opt{verbose} ) {
@ -2530,7 +2536,7 @@ sub check_architecture {
}
elsif ( `uname` =~ /Darwin/ && `uname -m` =~ /x86_64/ ) {
# Darwin gibas.local 12.5.2 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.5.3 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;
goodprint "Operating on 64-bit architecture";
}
@ -3219,8 +3225,8 @@ sub calculations {
"select round( 100* sum(allocated)/( select VARIABLE_VALUE "
. "FROM performance_schema.global_variables "
. "WHERE VARIABLE_NAME='innodb_buffer_pool_size' ) ,2)"
. 'FROM sys.x\$innodb_buffer_stats_by_table;' );
. 'FROM sys.x\$innodb_buffer_stats_by_table;' )
if ($opt{experimental});
# Binlog Cache
if ( $myvar{'log_bin'} ne 'OFF' ) {
$mycalc{'pct_binlog_cache'} = percentage(
@ -6372,14 +6378,16 @@ sub mysql_innodb {
# ,2) as "PCT ALLOC/BUFFER POOL"
#from sys.x$innodb_buffer_stats_by_table;
if (defined $mycalc{innodb_buffer_alloc_pct}) {
if ( $mycalc{innodb_buffer_alloc_pct} < 80 ) {
badprint "Ratio Buffer Pool allocated / Buffer Pool Size: "
. $mycalc{'innodb_buffer_alloc_pct'} . '%';
}
else {
goodprint "Ratio Buffer Pool allocated / Buffer Pool Size: "
. $mycalc{'innodb_buffer_alloc_pct'} . '%';
if ( $opt{experimental} ) {
if (defined $mycalc{innodb_buffer_alloc_pct}) {
if ( $mycalc{innodb_buffer_alloc_pct} < 80 ) {
badprint "Ratio Buffer Pool allocated / Buffer Pool Size: "
. $mycalc{'innodb_buffer_alloc_pct'} . '%';
}
else {
goodprint "Ratio Buffer Pool allocated / Buffer Pool Size: "
. $mycalc{'innodb_buffer_alloc_pct'} . '%';
}
}
}
if ( $mycalc{'innodb_log_size_pct'} < 20
@ -6408,7 +6416,7 @@ sub mysql_innodb {
. $myvar{'innodb_log_files_in_group'} . " / "
. hr_bytes( $myvar{'innodb_buffer_pool_size'} )
. " should be equal to 25%";
push(
push(
@adjvars,
"innodb_log_file_size should be (="
. hr_bytes_rnd(
@ -7201,6 +7209,8 @@ sub headerprint {
. "\t * Major Hayden <major\@mhtx.net>\n"
. " >> Bug reports, feature requests, and downloads at http://mysqltuner.pl/\n"
. " >> Run with '--help' for additional options and output filtering";
debugprint("Debug: ".$opt{debug});
debugprint("Experimental: ".$opt{experimental});
}
sub string2file {
@ -7211,12 +7221,12 @@ sub string2file {
"Unable to open $filename in write mode. Please check permissions for this file or directory";
print $fh $content if defined($content);
close $fh;
debugprint $content if ( $opt{'debug'} );
debugprint $content;
}
sub file2array {
my $filename = shift;
debugprint "* reading $filename" if ( $opt{'debug'} );
debugprint "* reading $filename";
my $fh;
open( $fh, q(<), "$filename" )
or die "Couldn't open $filename for reading: $!\n";
@ -7402,7 +7412,7 @@ __END__
=head1 NAME
MySQLTuner 2.5.2 - MySQL High Performance Tuning Script
MySQLTuner 2.5.3 - MySQL High Performance Tuning Script
=head1 IMPORTANT USAGE GUIDELINES