[MDEV-6831] Improvements to monitoring InnoDB buffer pool instances Created: 2014-10-02  Updated: 2014-11-13  Resolved: 2014-11-13

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB
Fix Version/s: 10.0.14

Type: Task Priority: Minor
Reporter: Kolbe Kegel (Inactive) Assignee: Jan Lindström (Inactive)
Resolution: Not a Bug Votes: 1
Labels: None


 Description   

Some ability to measure if there’s too much concurrency or if the number of buffer pool instances is too high would be useful.

Can we expose some additional information that would help users decide whether there would be any improvement from more (or fewer) buffer pool instances?



 Comments   
Comment by Simon J Mudd [ 2014-10-03 ]

Background:

The ability to have innodb_buffer_pool_instances > 1 means you can reduce some locking under heavy load and that should be good. However it's hard to actually see if the load is that high that you might want to change this, or if you set it to some arbitrary "n" if that value is too high or too low. This value is currently static and thus requires a server restart, so changing it is very intrusive, hence the decision to use a specific value and figure out if that value is the right one seems quite difficult, which makes the knob a difficult knob to change and tune correctly.

So the request here is to have some way to figure out if the current setting is appropriate or perhaps might be worth changing to something else, or to give some feedback in the documentation on the best way to determine this.

Comment by Jan Lindström (Inactive) [ 2014-11-13 ]

I suggest following existing method to measure this. Compile server with performance_schema with

cmake . -DWITH_PERFSCHEMA_STORAGE_ENGINE=1

Then modfy my.cnf to contain:

  • performance_schema=ON
  • performance_schema_instrument='%synch%=on'

Run your application and then on a regular time interval executing the following SQL query, and getting a diff from the current values vs the previous ones and divide them by your time interval :

 select EVENT_NAME, max(SUM_TIMER_WAIT)/1000000000000 as WaitTM 
from events_waits_summary_by_instance group by 1 order by 2 desc limit 25;

If the buffer pool mutex is near the top, you might consider to increase the number of buffer pool instances.

Generated at Thu Feb 08 07:14:55 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.