Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-6831

Improvements to monitoring InnoDB buffer pool instances

Details

    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?

      Attachments

        Activity

          simon.mudd Simon J Mudd added a comment -

          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.

          simon.mudd Simon J Mudd added a comment - 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.

          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.

          jplindst Jan Lindström (Inactive) added a comment - 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.

          People

            jplindst Jan Lindström (Inactive)
            kolbe Kolbe Kegel (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.