@@ -6557,37 +6557,40 @@ sub mysql_innodb {
65576557 }
65586558
65596559 # InnoDB Used Buffer Pool Size vs CHUNK size
6560- if ( !defined ( $myvar {' innodb_buffer_pool_chunk_size' } ) ) {
6561- infoprint
6562- " InnoDB Buffer Pool Chunk Size not used or defined in your version" ;
6563- }
6564- else {
6565- infoprint " Number of InnoDB Buffer Pool Chunk: "
6566- . int ( $myvar {' innodb_buffer_pool_size' } ) /
6567- int ( $myvar {' innodb_buffer_pool_chunk_size' } ) . " for "
6568- . $myvar {' innodb_buffer_pool_instances' }
6569- . " Buffer Pool Instance(s)" ;
6570-
6571- if (
6572- int ( $myvar {' innodb_buffer_pool_size' } ) % (
6573- int ( $myvar {' innodb_buffer_pool_chunk_size' } ) *
6574- int ( $myvar {' innodb_buffer_pool_instances' } )
6575- ) eq 0
6576- )
6577- {
6578- goodprint
6579- " Innodb_buffer_pool_size aligned with Innodb_buffer_pool_chunk_size & Innodb_buffer_pool_instances" ;
6580- }
6581- else {
6582- badprint
6583- " Innodb_buffer_pool_size aligned with Innodb_buffer_pool_chunk_size & Innodb_buffer_pool_instances" ;
6584-
6585- # push( @adjvars, "Adjust innodb_buffer_pool_instances, innodb_buffer_pool_chunk_size with innodb_buffer_pool_size" );
6586- push ( @adjvars ,
6587- " innodb_buffer_pool_size must always be equal to or a multiple of innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances"
6588- );
6589- }
6560+ if ( !defined ($myvar {' innodb_buffer_pool_chunk_size' }) ||
6561+ $myvar {' innodb_buffer_pool_chunk_size' } == 0 ||
6562+ !defined ($myvar {' innodb_buffer_pool_size' }) ||
6563+ $myvar {' innodb_buffer_pool_size' } == 0 ||
6564+ !defined ($myvar {' innodb_buffer_pool_instances' }) ||
6565+ $myvar {' innodb_buffer_pool_instances' } == 0 ) {
6566+
6567+ badprint " Cannot calculate InnoDB Buffer Pool Chunk breakdown due to missing or zero values:" ;
6568+
6569+ infoprint " - innodb_buffer_pool_size: " .
6570+ (defined $myvar {' innodb_buffer_pool_size' } ? $myvar {' innodb_buffer_pool_size' } : " undefined" );
6571+ infoprint " - innodb_buffer_pool_chunk_size: " .
6572+ (defined $myvar {' innodb_buffer_pool_chunk_size' } ? $myvar {' innodb_buffer_pool_chunk_size' } : " undefined" );
6573+ infoprint " - innodb_buffer_pool_instances: " .
6574+ (defined $myvar {' innodb_buffer_pool_instances' } ? $myvar {' innodb_buffer_pool_instances' } : " undefined" );
6575+
6576+ } else {
6577+ my $num_chunks = int ($myvar {' innodb_buffer_pool_size' } / $myvar {' innodb_buffer_pool_chunk_size' });
6578+ infoprint " Number of InnoDB Buffer Pool Chunk: $num_chunks for "
6579+ . $myvar {' innodb_buffer_pool_instances' } . " Buffer Pool Instance(s)" ;
6580+
6581+ my $expected_size = int ($myvar {' innodb_buffer_pool_chunk_size' }) *
6582+ int ($myvar {' innodb_buffer_pool_instances' });
6583+
6584+ if (int ($myvar {' innodb_buffer_pool_size' }) % $expected_size == 0) {
6585+ goodprint " Innodb_buffer_pool_size aligned with Innodb_buffer_pool_chunk_size & Innodb_buffer_pool_instances" ;
6586+ } else {
6587+ badprint " Innodb_buffer_pool_size not aligned with Innodb_buffer_pool_chunk_size & Innodb_buffer_pool_instances" ;
6588+
6589+ push (@adjvars ,
6590+ " innodb_buffer_pool_size must always be equal to or a multiple of innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances"
6591+ );
65906592 }
6593+ }
65916594
65926595 # InnoDB Read efficiency
65936596 if ( defined $mycalc {' pct_read_efficiency' }
0 commit comments