Mysql won't stop eating RAM!! :( 
Machine is a quad xeon 2.4 with 4 gigs of RAM.

Linux db2 2.6.7-rc3 #1 SMP Thu Jun 17 12:51:21 UTC 2004 i686 Intel(R)
Xeon(TM) CPU 2.40GHz GenuineIntel GNU/Linux

Mysql is 4.1.3-beta

Compile options are,
./configure --enable-thread-safe-client --enable-assembler
--with-unix-socket-path=/tmp/mysql-4.1.3.sock
--prefix=/usr/local/mysql-4.1.3 --without-extra-tools --without-docs
--without-bench --with-innodb --without-berkley-db

My startup variables are not especially high for a 4 gig box (see end
of e-mail).

I have 3 UDF functions which I wrote to do some simple things;
extracting domain portion of a web url, and access to some libgeoip
routines. I have run these 3 functions through
benchmark(10000000000,function()) to see if rate of RAM consumption
increases, but I don't really see any change or at least if I do i
think it's probably the placebo effect.

I really can't think where to look to figure this problem out. I would
like mysql to run with 3.5/4 gigs of RAM and stay that way. Not start
off there and end up leaving the system with 1meg of RAM.
I also add the problem that within about 72 hours of the server being
started it dies with signal 11.

"040720  6:04:15  Out of memory; check if mysqld or some other process
uses all available memory; if not, you may have to use 'ulimit' to
allow mysqld to use more memory or you can add more swap space
mysqld got signal 11;"

key_buffer_size=134217728
read_buffer_size=2093056
max_used_connections=46
max_connections=500
threads_connected=45
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size +
sort_buffer_size)*max_connections = 2177068 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

I resolve stack dump of one of the errors gives.

0x814f0dd handle_segfault + 669
0x40038d5d _end + 935216941
0x4020c79a _end + 937132394
0x8181d7a _Z11open_tablesP3THDP13st_table_listPj + 202
0x8182055 _Z20open_and_lock_tablesP3THDP13st_table_list + 37
0x8164b64 _Z21mysql_execute_commandP3THD + 9748
0x81681bc _Z11mysql_parseP3THDPcj + 268
0x816139d _Z16dispatch_command19enum_server_commandP3THDPcj + 1021
0x8160f56 _Z10do_commandP3THD + 134
0x81606f8 handle_one_connection + 872
0x40033dfb _end + 935196619
0x40255f8a _end + 937433434

Another time the stack dump resolves to,

0x814a0cd _ZN13Protocol_prep10store_dateEP13st_mysql_time + 13
0x40038d5d _end + 935216941
0x80d53db _Z7lex_endP6st_lex + 75
0x8175c86 _Z7yyparsePv + 43830
0x8161c5a _Z16dispatch_command19enum_server_commandP3THDPcj + 3258
0x815b42d _ZN26sys_var_slave_skip_counter6updateEP3THDP7set_var + 13
0x815afe6 _ZN23sys_var_key_buffer_size6updateEP3THDP7set_var + 438
0x815a768 _ZN21sys_var_character_set5checkEP3THDP7set_var + 408
0x40033dfb _end + 935196619
0x40255f8a _end + 937433434


But always the error is 'Out of Memory'.

My database uses roughly 20 HEAP tables, but they are simply used as
caches for incoming data and never grow past 2megs before I perform a
truncate table_name.

It is really not appropriate for me to recompile Mysql for debugging
so I hope that someone can give some advice.

Richard.

#START ---------- my.cnf ----------------- START
[client]
#password       = your_password
port            = 3306
socket          = /tmp/mysql-4.1.3.sock

# The MySQL server
[mysqld]
port            = 3306
socket          = /tmp/mysql-4.1.3.sock

skip-locking
key_buffer              = 128M
max_allowed_packet      = 16M
table_cache             = 128
sort_buffer_size        = 2M
read_buffer_size        = 2M
read_rnd_buffer_size    = 8M
myisam_sort_buffer_size = 64M
thread_cache            = 8

query_cache_size        = 128M
thread_concurrency      = 8
#skip-networking

log-slow-queries
log-long-format
long_query_time         = 1

log-bin
server-id               = 2

replicate-do-table      = statistics.navmap
master-host             = xxx.xxx.xxx.xxx
master-user             = slave
master-password         = ********


max_heap_table_size     = 134217728
max_connections         = 500

# Point the following paths to different dedicated disks
tmpdir                  = /tmp/
#log-update             = /path-to-dedicated-directory/hostname

innodb_data_home_dir            = /usr/local/mysql-4.1.3/var/
innodb_data_file_path           = innodb/ibdata1:10000M:autoextend
innodb_log_group_home_dir       = /usr/local/mysql-4.1.3/var/innodb_log
innodb_log_arch_dir             = /usr/local/mysql-4.1.3/var/innodb_log

innodb_buffer_pool_size         = 1400M
innodb_additional_mem_pool_size = 64M

innodb_log_files_in_group       = 2
innodb_log_file_size            = 256M
innodb_log_buffer_size          = 8M
innodb_flush_log_at_trx_commit  = 1
innodb_lock_wait_timeout        = 50
#innodb_thread_concurrency      = 8

[mysqldump]
quick
max_allowed_packet = 16M

[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout
#END---------- my.cnf ----------------- END

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

Reply via email to