James M. Luedke wrote:
> Hello:
>     I have a few questions about how MySQL uses Ram. I have a machine 
> that I am using as a database server. The machine has close to 1G
> of ram. It is running Slackware Linux 8.1 With a 2.4.18 kernel.
> The main use of this server is a backend for Radius Authentication.
> 
>     I have read all of the documentation I have been able to get my
> hands on, and believe I have a very good understanding of how MySQL
> works in general. However, this has me a little stumped.
> 
>     Please take a look at the output from top, my.cnf, and the processlist
> below.
> 
> -------begin top output-----------------
> top - 15:21:46 up 56 days, 10:57, 11 users,  load average: 0.03, 0.16, 0.15
> Tasks:  61 total,   1 running,  58 sleeping,   2 stopped,   0 zombie
> Cpu(s):   5.6% user,   2.0% system,   0.0% nice,  92.5% idle
> Mem:    900472k total,   896048k used,     4424k free,    22956k buffers
> Swap:   907664k total,     3676k used,   903988k free,   744248k cached
> 
>   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  Command           
>   2361 mysql      9   0 53416  52m 2068 S  0.3  5.9   2:48.61 mysqld            
>   2357 mysql      9   0 53416  52m 2068 S  0.0  5.9   0:00.18 mysqld            
>   2359 mysql      9   0 53416  52m 2068 S  0.0  5.9   0:00.28 mysqld            
>   2360 mysql      9   0 53416  52m 2068 S  0.0  5.9   0:11.29 mysqld            
>   2362 mysql      9   0 53416  52m 2068 S  0.0  5.9  17:28.20 mysqld            
>   2371 mysql      9   0 53416  52m 2068 S  0.0  5.9   0:02.82 mysqld            
>   2386 mysql      9   0 53416  52m 2068 S  0.0  5.9   0:00.12 mysqld            
>   2395 mysql      9   0 53416  52m 2068 S  0.0  5.9   0:01.01 mysqld            
>   2419 mysql      9   0 53416  52m 2068 S  0.0  5.9   0:00.21 mysqld            
>   2427 mysql      9   0 53416  52m 2068 S  0.0  5.9  17:00.51 mysqld            
>   2428 mysql      9   0 53416  52m 2068 S  0.0  5.9   0:03.32 mysqld            
>   2458 mysql      9   0 53416  52m 2068 S  0.0  5.9   0:01.15 mysqld            
> -------end top output-----------------
> 
> Notice that when viewing top output for user mysql that there are
> 12 seprate processes? I am assuming that this is done for connections
> that the MySQL server may need to field. Does MySQL spawn a new 
> process for every connection that comes in? And if so why do I have
> 12 processes when the output from show processlist returns 7 rows.
> Is this how you would expect the MySQL server to behave? It appears
> that MySQL is sucking up a large amount of system recourses even
> when no-one is connected... There is little else running on this
> system besides MySQL. I have read similar messages to this email
> in the mysql list archive, and am familiar with the fact that MySQL
> will use key_buffer amount of ram for the mysqld process. According
> to the top output It would appear to me that MySQL is using
> 52M*12 of ram which is 624M. Am I correct in my understanding?
> I would assume that MySQL would share the cache between processes.
> Is there a reason why each process needs key_buffer ram?
> Am I doing something horribly wrong?
> 

mysqld uses threads, not processes; so all memory is shared.
mysqld is using 52Mb only (not 624Mb). This has already been discussed
several times on this list; you can also check MySQL documentation:
http://www.mysql.com/doc/en/MySQL_threads.html
http://www.mysql.com/doc/en/Memory_use.html

Chances are that all remaining memory is used by Linux kernel cache.

> 
> ---------show processlist output -----
> 
>+-----+-------------+----------------+------------+-------------+-------+---------------------------------------------+------------------+
> | Id  | User        | Host           | db         | Command     | Time  | State      
>                                 | Info             |
> 
>+-----+-------------+----------------+------------+-------------+-------+---------------------------------------------+------------------+
> |   1 | radiusd     | localhost      | radiusd_db | Sleep       | 0     |            
>                                 | NULL             |
> |  20 | root        | localhost      | customers  | Sleep       | 23750 |            
>                                 | NULL             |
> |  49 | radiusd     | 216.250.251.22 | radiusd_db | Sleep       | 23076 |            
>                                 | NULL             |
> |  80 | root        | localhost      | customers  | Sleep       | 22168 |            
>                                 | NULL             |
> | 403 | radiusd     | 64.139.37.2    | radiusd_db | Sleep       | 2     |            
>                                 | NULL             |
> | 524 | replication | 64.139.37.2    | NULL       | Binlog Dump | 9218  | Slave 
>connection: waiting for binlog update | NULL             |
> | 769 | root        | localhost      | radiusd_db | Query       | 0     | NULL       
>                                 | show processlist |
> 
>+-----+-------------+----------------+------------+-------------+-------+---------------------------------------------+------------------+
> -----end show processlist output -----
> 
> 
> 
> -----/etc/my.cnf options -------------
> [client]
> #password   = your_password
> port        = 3306
> socket      = /tmp/mysql.sock
> 
> [mysqld]    
> port        = 3306
> socket      = /tmp/mysql.sock
> skip-locking      
> set-variable    = net_buffer_length=512K
> set-variable    = key_buffer=64M
> set-variable    = max_allowed_packet=1M
> set-variable    = table_cache=512
> set-variable    = sort_buffer=2M
> set-variable    = record_buffer=2M
> set-variable    = thread_cache=8
> set-variable    = max_connections=300
> set-variable    = thread_concurrency=4
> set-variable    = myisam_sort_buffer_size=64M
> 
> log-bin
> binlog-do-db=radiusd_db
> server-id   = 1
> 
> [mysqldump]
> quick
> set-variable    = max_allowed_packet=16M
> 
> [mysql]
> no-auto-rehash
> #safe-updates
> 
> [isamchk]
> set-variable    = key_buffer_size=128M
> set-variable    = sort_buffer=128M
> set-variable    = read_buffer=2M
> set-variable    = write_buffer=2M
> 
> [myisamchk]
> set-variable    = key_buffer_size=128M
> set-variable    = sort_buffer=128M
> set-variable    = read_buffer=2M
> set-variable    = write_buffer=2M
> 
> [mysqlhotcopy]
> interactive-timeout
> -----end /etc/my.cnf options ---------
> 
> 
> 
> 
> 
> -----show variables output -----------
> 
> +---------------------------------+---------------------------------------------+
> | Variable_name                   | Value                                       |
> +---------------------------------+---------------------------------------------+
> | back_log                        | 50                                          |
> | basedir                         | /usr/local/mysql/                           |
> | binlog_cache_size               | 32768                                       |
> | character_set                   | latin1                                      |
> | character_sets                  | latin1 dec8 dos german1 hp8 koi8_ru latin2  |
> | concurrent_insert               | ON                                          |
> | connect_timeout                 | 5                                           |
> | datadir                         | /serve/mysql/                               |
> | delay_key_write                 | ON                                          |
> | delayed_insert_limit            | 100                                         |
> | delayed_insert_timeout          | 300                                         |
> | delayed_queue_size              | 1000                                        |
> | flush                           | OFF                                         |
> | flush_time                      | 0                                           |
> | have_bdb                        | NO                                          |
> | have_gemini                     | NO                                          |
> | have_innodb                     | NO                                          |
> | have_isam                       | YES 
> | have_raid                       | NO                                          |
> | have_openssl                    | NO                                          |
> | init_file                       |                                             |
> | interactive_timeout             | 28800                                       |
> | join_buffer_size                | 131072                                      |
> | key_buffer_size                 | 67104768                                    |
> | language                        | /usr/local/mysql/share/mysql/english/       |
> | large_files_support             | ON                                          |
> | locked_in_memory                | OFF                                         |
> | log                             | OFF                                         |
> | log_update                      | OFF                                         |
> | log_bin                         | ON                                          |
> | log_slave_updates               | OFF                                         |
> | log_long_queries                | OFF                                         |
> | long_query_time                 | 10                                          |
> | low_priority_updates            | OFF                                         |
> | lower_case_table_names          | 0                                           |
> | max_allowed_packet              | 1047552                                     |
> | max_binlog_cache_size           | 4294967295                                  |
> | max_binlog_size                 | 1073741824                                  |
> | max_connections                 | 300                                         |
> | max_connect_errors              | 10                                          |
> | max_delayed_threads             | 20                                          |
> | max_heap_table_size             | 16777216                                    |
> | max_join_size                   | 4294967295                                  |
> | max_sort_length                 | 1024                                        |
> | max_user_connections            | 0                                           |
> | max_tmp_tables                  | 32                                          |
> | max_write_lock_count            | 4294967295                                  |
> | myisam_max_extra_sort_file_size | 256                                         |
> | myisam_max_sort_file_size       | 2047                                        |
> | myisam_recover_options          | 0                                           |
> | myisam_sort_buffer_size         | 67108864
> | net_buffer_length               | 523264                                      |
> | net_read_timeout                | 30                                          |
> | net_retry_count                 | 10                                          |
> | net_write_timeout               | 60                                          |
> | open_files_limit                | 0                                           |
> | pid_file                        | /serve/mysql//fbi.pid                       |
> | port                            | 3306                                        |
> | protocol_version                | 10                                          |
> | record_buffer                   | 2093056                                     |
> | record_rnd_buffer               | 2093056                                     |
> | query_buffer_size               | 0                                           |
> | safe_show_database              | OFF                                         |
> | server_id                       | 1                                           |
> | slave_net_timeout               | 3600                                        |
> | skip_locking                    | ON                                          |
> | skip_networking                 | OFF                                         |
> | skip_show_database              | OFF                                         |
> | slow_launch_time                | 2                                           |
> | socket                          | /tmp/mysql.sock                             |
> | sort_buffer                     | 2097144                                     |
> | sql_mode                        | 0                                           |
> | table_cache                     | 512                                         |
> | table_type                      | MYISAM                                      |
> | thread_cache_size               | 8                                           |
> | thread_stack                    | 65536                                       |
> | transaction_isolation           | READ-COMMITTED                              |
> | timezone                        | GMT                                         |
> | tmp_table_size                  | 33554432                                    |
> | tmpdir                          | /tmp/                                       |
> | version                         | 3.23.52-log                                 |
> | wait_timeout                    | 28800                                       |
> +---------------------------------+---------------------------------------------+
> 
> -----end show variables output -------
> 
> Just a side question. I noticed in the show variables output the variable
> have_raid? I do have the data directory stored on an external raid device,
> however the variable is set to NO. Will this cause me any problems...

have_raid has nothing to do with HW raid. It was mainly used to
break the 2Gb/file limit of some filesystems by spreading data
of a MyISAM table in several files. This option is not very useful
nowadays since this 2Gb limit has been removed in all recent OS.

> 
> 
> Thank you all so much for your help, MySQL is a great app, and I 
> apreciate all the hard work you have done...
> 

Thanks, but I haven't done that much, I am just a user ;)

> 
> 
> -James...
> 
> 

Hope this helps
Joseph Bueno


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to