List:Commits« Previous MessageNext Message »
From:Guilhem Bichot Date:April 7 2009 7:41pm
Subject:Re: [Fwd: Review of the performance schema instrumentation interface
View as plain text  
Hello,

Marc Alff a écrit, Le 07.04.2009 18:13:
> Guilhem Bichot wrote:
>> Marc Alff a écrit, Le 23.03.2009 18:34:
>>> Guilhem Bichot wrote:

>>> ./mysqld --performance-schema-max-mutex-instruments=200
>>>
>>> Let's assume 150 mutex instruments have been loaded already.
>>>
>>> Let's assume "a_plugin" contains 40 mutex instruments.
>>> Let's assume "b_plugin" contains 20 mutex instruments.
>>>
>>> INSTALL PLUGIN a_plugin
>>> --> the server now has 150+40 = 190 mutex instruments.
>>>
>>> UNINSTALL PLUGIN a_plugin
>>> --> the server still has 190 instruments
>>> All the historical data generated by the plugin code is still available
>> And thus, room in mutex_info_array (for example) is never freed, and as
>> you explained, takes up space which the next to-be-installed plugin
>> cannot use.
>> Is there a way to force uninstalled plugins to free space occupied in
>> the above array? Is it planned?
>>
> 
> There is a way to force a plugin to not consume slots during execution
> of instrumented code:
> - UPDATE SETUP_INSTRUMENTS set ENABLED='NO' WHERE ...
> This avoids consuming the memory allocated by --performance-schema-max-mutex

Bah, if the plugin has been uninstalled, there is no execution of its 
instrumented code anyway.

> There is currently no way to prevent a plugin from consuming slots for
> registering the instruments themselves, which is the memory allocated by
> --performance-schema-max-mutex-instruments
> 
> I don't see this as an issue, since only a few bytes per instrument will
> be used, and the number of instruments in a plugin should be very low.
> There are no plans to selectively exclude instrumentation when loading a
> plugin with some filtering options.
> 
> To see how much memory is used, use:
> 
> SHOW ENGINE PERFORMANCE_SCHEMA STATUS
> 
> (PFS_MUTEX_INFO).ROW_SIZE is 248 bytes
> 
> So, if a plugin has 10 instrumented mutexes, it will "waste" 2480 bytes.

And in the default config:
--performance-schema-max-rwlock-instruments=<number>
   default=20
   Maximum number of rwlock instruments.
So, if a plugin has 2 rwlocks, it takes 10% of the allowed space. No 
matter if that's only a few hundreds of bytes, it's still 10%.
If it has 10 types of rwlocks (quite possible with a not-trivial 
engine), that will take 50%.

> The best option if space is a concern is to not use space by avoiding
> loading instrumented code. Space can *never* be freed, as doing this
> while the code is running and executing instrumented code will lead to
> crashes.

In my case, the plugin's instrumented code is not running as UNINSTALL 
PLUGIN has been executed. So I don't follow the explanation.

> That's not a bug, it's a conscious design choice, to have lock-free code.

There is a shortcut above. For example lf_hash is lock-free, though it 
reuses memory (recycles) when an element has been deleted and nobody is 
looking at it anymore.
Thread
[Fwd: Review of the performance schema instrumentation interface (was:moins de remplacements)]Marc Alff19 Mar
  • Re: [Fwd: Review of the performance schema instrumentation interface(was: moins de remplacements)]Guilhem Bichot23 Mar
    • Re: [Fwd: Review of the performance schema instrumentation interfaceMarc Alff23 Mar
      • Re: [Fwd: Review of the performance schema instrumentation interfaceGuilhem Bichot7 Apr
        • Re: [Fwd: Review of the performance schema instrumentation interfaceMarc Alff7 Apr
          • Re: [Fwd: Review of the performance schema instrumentation interfaceGuilhem Bichot7 Apr
            • Re: [Fwd: Review of the performance schema instrumentation interfaceMarc Alff7 Apr
              • Re: [Fwd: Review of the performance schema instrumentation interfaceGuilhem Bichot8 Apr
                • Re: [Fwd: Review of the performance schema instrumentation interfaceMarc Alff20 Jun
  • Instrumenting Maria system threads Re: [Fwd: Review of the performanceschema instrumentation interface (was: moins de remplacements)]Guilhem Bichot23 Mar
  • Re: Review of the performance schema instrumentation interfaceSergei Golubchik10 Apr
    • Re: Review of the performance schema instrumentation interfaceMichael Widenius13 Apr