Kaming,

please run SHOW INNODB STATUS to monitor the amount of memory allocated by
InnoDB. If you have very many tables, the dictionary cache can take quite a
lot of memory. But it should not grow indefinitely.

If the problem is memory fragmentation caused by the malloc() in FreeBSD,
you can test setting innodb_additional_mem_pool_size so big that the InnoDB
memory allocation does not spill out of it. In the pool InnoDB uses a buddy
algorithm which is very resistant to memory fragmentation.

Best regards,

Heikki
Innobase Oy
http://www.innodb.com
InnoDB - transactions, foreign keys, and a hot backup tool for MySQL



.....................
Subject: Innodb memory problem
From: Kaming
Date: Mon, 31 Mar 2003 17:48:46 +0800



Hi all,

I have a problem about the innodb memory usage. The following is my
config file for mysql and the version I am using is 4.0.12 in FreeBSD
4.7 stable.


my.cnf

[mysqld]
port=3306
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
set-variable = thread_cache_size=700
set-variable = table_cache=1000
set-variable = key_buffer_size=16M
set-variable = max_connect_errors=9999999999
set-variable = max_connections=850
skip-name-resolve
skip-locking
memlock

####### INNODB CONFIG #######
innodb_data_home_dir = /var/lib/mysql/innodbdata
innodb_data_file_path = datafile:4096M:autoextend
set-variable = innodb_buffer_pool_size=24M
set-variable = innodb_additional_mem_pool_size=8M
innodb_log_group_home_dir = /var/lib/mysql/innodblog
innodb_log_arch_dir = /var/lib/mysql/innodblog
set-variable = innodb_log_file_size=10M
set-variable = innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=0
#############################

[mysql.server]
user=mysql
basedir=/usr/local/site/mysql

[safe_mysqld]
err-log=/var/lib/mysql/mysqld.log
pid-file=/var/lib/mysql/mysqld.pid


When I start the mysqld, the memory usage is about 85M. Then the mysqld
will use more and more memory and doesn't release. It will use all the
memory and the performance will be dropped when it starts to use swap
space... Do anyone know how to calculate the memory mysqld use when it
starts? And also any method can be used to limit the memory usage for
innodb? I don't have memory problem when using MyISAM before... The
memory usage of mysqld reachs certain level and will not continue to
grow.....

Thanks a lot.

Kaming.


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

Reply via email to