We run a script for the monitoring and the output received is as
InnoDB Buffer Pool __________________________________________________
Usage 3.00G of 3.00G %Used: 100.00
Read hit 100.00%
Free 0 %Total: 0.00
Data 145.31k 73.91 %Drty: 0.00
Misc 51301 26.09
Reads 6.71G 4.0k/s
From file 68.42k 0.0/s 0.00
Ahead Rnd 41 0.0/s
Ahead Sql 1487 0.0/s
Writes 132.01M 79.7/s
Flushes 2.31M 1.4/s
Wait Free 0 0/s
Maybe this will help you out?
Are we perhaps monitoring the wrong thing?
From: Carlos Proal [mailto:carlos.proal@stripped]
Sent: 16 March 2010 9:31 AM
Subject: Re: Innodb buffer pool usage
What do you mean with "innodb buffer pool is at 100% full" ?
There are several status variables associated with innodb buffer pool ie:
Innodb_buffer_pool_pages_free is the number of unused data pages.
Innodb_buffer_pool_pages_total is the total number of pages.
Innodb_buffer_pool_pages_data is the total number of used data pages
(clean and dirty).
Innodb_buffer_pool_pages_dirty is the number of dirty data pages. The
number of clean data pages can be calculated from these first two status
You can calculate the usage ratio with a basic recipe:
Innodb_buffer_pool_pages_free / Innodb_buffer_pool_pages_total
This is the value that you have to monitor. If its close to 1, then you
set up too much memory for innodb (warning: that this can be due to
frequent flushed to disk, so you have to check that too); if on the
other hand the ratio is too low, then you effectively are running out of
resources and may need to add more memory to innodb. You can imply other
things, with the other variables too.
Obviously you have to do the job and review this values along the time,
maybe there are some actions/effects like running reports or etl
processes, you have to figure out what is going on as a "whole" not just
the values in the formula.
BTW: In Oracle is the same story, one thing is what you reserve
for...and other thing is the actual usage. The latter if you are tuning
Oracle manually, because one important difference in Oracle 10 and 11 is
that the buffers can grow and shrink automatically (if you configure it)
so you can say "use the 100% memory at your convenience" and Oracle can,
for example, reduce the sort buffers and extend the index buffers on the
fly. Obviously this also has advantages and disadvantages, but as a new
DBA is good to get involved in this concepts and comparisons between dbms.
On 3/16/2010 12:46 AM, Machiel Richards wrote:
> Hi all
> Maybe someone can assist me with this one.
> A while back I requested some information relating to the
> MySQL innodb buffer pool size that seems to fill up rather frequently.
> The buffer pool is currently set to 3Gb , and it takes
> 2-3 weeks after a restart to fill up.
> Someone replied and stated that this is preferred to be
> running at 100% usage as it means that it is running optimally.
> However, the oracle guys in our office disagrees with
> and want to know the following:
> . If the innodb buffer pool is at 100% full, how will we know when
> it needs more buffers
> o i.e. let's say the database starts getting very busy and needs more
> buffers, how will we know that it requires this if the buffer pool usage
> already at 100%.
> I am fairly new to database administration so no luck in answering them on
> this so I would appreciate the assistance.
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql