Jon Valvatne wrote:
> 
> Hello,
> 
> I have a hopefully simple question here:
> 
> My web site is dynamically serving 300k page views a day from a MySQL
> database, running on a dual P3/700 with 512 megs of ram. Considering the
> complexity of my queries and the data amount involved, I know I should
> expect the server to be overworked, but the weird thing is how the
> problem manifests itself:
> 
> When I start up MySQL and Apache, things seem to run fine for a while, and
> they continue running fine for about 24 hours. Then, when MySQL memory
> usage has grown to around 70-80 megs, things start to slow down. Queries
> which previously were over in a few hundredths of a second start taking up
> to several seconds to complete, usually spending the extra time "Sending
> data" or "Copying to temp table".
> 
> As you'd expect, the server gets bogged down rather quickly at this
> point, serving new requests very slowly if at all. Restarting MySQL helps
> right away, buying me another 24 hours of stable uptime.
> 
> What could cause this? I suspect it has something to do with the settings
> in my.cnf, but I've tried many different combinations without success. If
> someone could point me to the right variable(s) to tweak, that would be
> helpful in itself. Suggested values for my system would help even more.
> 
> For now I can handle things by restarting MySQL every night, but that's
> not a good solution. Shouldn't MySQL, in theory, be able to reuse memory
> and other resources well enough for a system which stays stable for 24
> hours to be expected to stay stable for a year? Could this be some sort of
> memory leak in either MySQL or Apache?
> 
> Any help or advice would be much appreciated. Server details below.
> 
> Thanks,
> 
> Jon Valvatne
> Webmaster,
> AvidGamers.Com
> 
> Details:
> 
> Dual PIII/700
> 512MB RAM
> 9GB SCSI Drive
> 
> MySQL 3.23.37
> Apache 1.3.12
> PHP 4.0.4pl1
> 
> >From my.cnf:
> 
> skip-locking
> skip-networking
> set-variable    = max_connections=18
> set-variable    = key_buffer=200M
> set-variable    = max_allowed_packet=1M
> set-variable    = table_cache=256
> set-variable    = sort_buffer=1M
> set-variable    = record_buffer=1M
> set-variable    = myisam_sort_buffer_size=20M
> set-variable    = thread_cache=8
> set-variable    = thread_concurrency=4  # Try number of CPU's*2
> set-variable    = query_buffer_size=16k
> set-variable    = tmp_table_size=6M
> set-variable    = delayed_insert_limit=15
> set-variable    = max_write_lock_count=1
> 
> ---------------------------------------------------------------------
> 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

Hi,

Are you sure that you need 200Mb of key_buffer cache ?
Since your machine is obviously swapping a lot when it slows down
(you can verify that with vmstat), I think you should try first to lower RAM usage.
Use 'mysqladmin extended-status' and find out how much RAM you need for key_buffer
(check 'Key_blocks_used' variable) and reduce key_buffer value.

Hope this helps
--
Joseph Bueno
NetClub/Trader.com

---------------------------------------------------------------------
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