Geoffrey,

----- Original Message ----- 
From: "Geoffrey" <[EMAIL PROTECTED]>
To: "Heikki Tuuri" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Saturday, February 07, 2004 10:11 PM
Subject: Re: Memory Leak using InnoDB ?


> Dan, Heikki,
>
> ----- Original Message ----- 
> From: "Heikki Tuuri" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Saturday, February 07, 2004 11:39 AM
> Subject: Re: Memory Leak using InnoDB ?
>
>
> > Geoffrey, Dan,
> >
> > ----- Original Message ----- 
> > From: "Dan Nelson" <[EMAIL PROTECTED]>
> > Newsgroups: mailing.database.myodbc
> > Sent: Saturday, February 07, 2004 5:27 AM
> > Subject: Re: Memory Leak using InnoDB ?
> >
> >
> > > In the last episode (Feb 07), Geoffrey said:
> > > > I'm running MySQL 4.0.17 with RH Linux 8 on Xeon 3.0/1GB RAM.
> > > >
> > > > One application has to access the database (1 connection to the DB
is
> > > > open on startup and left open). However this application performs a
> > > > lot of queries on the DB.
> > > >
> > > > Thanks to  "top", I can see that the "used memory" is constantly
> > > > increasing and never freed (up to 1 GB) when performing a lot of
> > > > queries. In fact, I can see the total memory usage increasing but
the
> > > > mysqld process memory usage remains the same.
> > > >
> > > > When the DB is not accessed, the memory usage is stable. Stopping
> MySQL
> > > > server doesn't free the abnormaly allocated memory.
> > >
> > > Ideally, you should have very little "free" memory according to top
> > > (most systems will see under 20MB free).  Free memory is wasted
memory.
> > > Unix uses memory not allocated to processes for a disk cache.  To
> > > determine whether you are truly low on memory, run iostat and watch
the
> > > swap columns.  Constant swap activity means you're low on memory.
> >
> > Dan is right. A memory leak in the mysqld process should show up in the
> > 'top' line for that process.
> >
> > By the way, monitoring if InnoDB has memory leaks is very easy. Just
look
> > with SHOW INNODB STATUS at the 'total allocated memory'. If that keeps
> > climbing without bounds, that is an indication of a memory leak.
> >
>
> Thanks for your help.
>
> For testing, I tried the following my.cnf :
>
> server-id=1
> socket=/tmp/mysql.sock
> innodb_data_file_path = ibdata1:750M:autoextend
> set-variable = innodb_buffer_pool_size=50M
> set-variable = innodb_additional_mem_pool_size=10M
> set-variable = innodb_log_file_size=300M
> set-variable = innodb_log_buffer_size=2M
> innodb_flush_log_at_trx_commit=0
> skip-locking
> set-variable = max_connections=5
> set-variable = read_buffer_size=1M
> set-variable = sort_buffer=1M
> set-variable = key_buffer=10M
>
> Here is the result of "top" after 20 hours :
>
>  8:26pm  up 18:35,  1 user,  load average: 0.42, 0.26, 0.20
> 46 processes: 44 sleeping, 2 running, 0 zombie, 0 stopped
> CPU states:  3.7% user,  0.5% system,  0.0% nice, 95.6% idle
> Mem:  1031048K av, 1021460K used,    9588K free,       0K shrd,   55288K
> buff
> Swap: 2044072K av,       0K used, 2044072K free                  845544K
> cached
> PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME COMMAND
> 960 mysql     15   0 67872  66M  2656 S     0.1  6.5   6:29 mysqld
>
> Here is the result of "top" after a reboot :
>
>  8:54pm  up 9 min,  1 user,  load average: 0.16, 0.17, 0.10
> 46 processes: 44 sleeping, 2 running, 0 zombie, 0 stopped
> CPU states:  4.5% user,  0.3% system,  0.0% nice, 95.0% idle
> Mem:  1031048K av,  136512K used,  894536K free,       0K shrd,   13276K
> buff
> Swap: 2044072K av,       0K used, 2044072K free                   61620K
> cached
> PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME COMMAND
> 774 mysql     15   0 36276  35M  2496 S     0.7  3.5   0:03 mysqld
>
> Here is the SHOW INNODB STATUS after 20 hours :
>
> ----------------------
> BUFFER POOL AND MEMORY
> ----------------------
> Total memory allocated 75115912; in additional pool allocated 1611008
> Buffer pool size   3200
> Free buffers       1
> Database pages     3091
> Modified db pages  160
> Pending reads 0
> Pending writes: LRU 0, flush list 0, single page 0
> Pages read 7212, created 2274, written 801221
> 0.00 reads/s, 0.02 creates/s, 12.45 writes/s
> Buffer pool hit rate 1000 / 1000
>
> As far as I understand, the "Total Mem" increasing constantly when MySQL
is
> heavily accessed is not really memory allocated by MySQL but allocated by
> Linux to take advantage of the unused memory ?
>
> So I should not pay attention to it (as long as used swap is 0).
>
> Correct ?

correct!

> Regards.

Best regards,

Heikki Tuuri
Innobase Oy
http://www.innodb.com
Foreign keys, transactions, and row level locking for MySQL
InnoDB Hot Backup - a hot backup tool for InnoDB which also backs up MyISAM
tables

Order MySQL technical support from https://order.mysql.com/


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to