diff --git a/mysqltuner.pl b/mysqltuner.pl index 4bf79da..a51825e 100755 --- a/mysqltuner.pl +++ b/mysqltuner.pl @@ -1132,32 +1132,27 @@ sub mysql_stats { badprint "InnoDB buffer pool / data size: ".hr_bytes($myvar{'innodb_buffer_pool_size'})."/".hr_bytes($enginestats{'InnoDB'})."\n"; push(@adjvars,"innodb_buffer_pool_size (>= ".hr_bytes_rnd($enginestats{'InnoDB'}).")"); } + if (defined($myvar{'innodb_buffer_pool_instances'})) { + if ($myvar{'innodb_buffer_pool_instances'} > 64) { + badprint "InnoDB buffer pool instances: ".$myvar{'innodb_buffer_pool_instances'}."\n"; + push(@adjvars,"innodb_buffer_pool_instances (<= 64)"); + } else { + if ($myvar{'innodb_buffer_pool_size'} > 1024*1024*1024 + and $myvar{'innodb_buffer_pool_instances'} != int($myvar{'innodb_buffer_pool_size'}/(1024*1024*1024)) + ) { + badprint "InnoDB buffer pool instances: ".$myvar{'innodb_buffer_pool_instances'}."\n"; + push(@adjvars,"innodb_buffer_pool_instances(=".int($myvar{'innodb_buffer_pool_size'}/(1024*1024*1024)).")"); + } else { + goodprint "InnoDB buffer pool instances: ".$myvar{'innodb_buffer_pool_instances'}."\n"; + } + } + } if (defined $mystat{'Innodb_log_waits'} && $mystat{'Innodb_log_waits'} > 0) { badprint "InnoDB log waits: ".$mystat{'Innodb_log_waits'}; push(@adjvars,"innodb_log_buffer_size (>= ".hr_bytes_rnd($myvar{'innodb_log_buffer_size'}).")"); } else { goodprint "InnoDB log waits: ".$mystat{'Innodb_log_waits'}."\n"; } - if (defined($myvar{'innodb_buffer_pool_instances'})) { - infoprint "MySQL version: " .$myvar{'version'}." is greater than MySQL 5.6.6(innodb_buffer_pool_instances is present)\n"; - if ($myvar{'innodb_buffer_pool_instances'} > 64) { - badprint "InnoDB buffer pool instances must be lower than 64.\n"; - push(@adjvars,"innodb_buffer_pool_instances must be lower than 64."); - } else { - goodprint "InnoDB buffer pool instances is lower than 64.\n"; - } - infoprint "Buffer Pool Size: ".hr_bytes_rnd($myvar{'innodb_buffer_pool_size'})."\n"; - infoprint "Buffer Pool Inst: $myvar{'innodb_buffer_pool_instances'}\n"; - if ($myvar{'innodb_buffer_pool_size'} > 1024*1024*1024 - and ( - ($myvar{'innodb_buffer_pool_size'}/$myvar{'innodb_buffer_pool_instances'}) < 1024*1024*924 - or ($myvar{'innodb_buffer_pool_size'}/$myvar{'innodb_buffer_pool_instances'}) > 1024*1024*1124 ) ) { - badprint "InnoDB buffer pool is greater than 1Go and each InnoDB buffer pool instance must manage 900Mo to 1.1Go buffer pool size"; - push(@adjvars,"innodb_buffer_pool_instances must be calculated with innodb_buffer_pool_size / 1Go "); - } else { - goodprint "InnoDB buffer pool instances is configurated for managing around 1Go Buffer pool size."; - } - } } }