On Sunday, October 6, 2002, at 01:53  AM, James Riordon wrote:

>> Have you tried monitoring server B via 'top' or something and see what
>> processes are taking up CPU time and/or swapping.
>
>
> Hello,
>
>       I have monitored top for a bit. It is definitely MySQL-Max that is 
> taking up the CPU and placing the load on the server. I have run strace 
> on some of the pids and see nothing normal. I have attached here one of 
> the listings from processlist just in case you see something:
>

All right, after some more testing I have done the following:


RECAP
I have two servers, server A and server B. Server A has dual 1GHz PIII 
chips with 1GB ram and 2 ide drives running Ensim 3.0.4, php 4.1.2 and 
mysql-max 3.23.49a. Server B is a single processor 1.7Ghz PIV with 1.5GB 
of RAM and 1 ide drive running Ensim 3.1.1, php 4.1.2 and mysql-max 
3.23.49a. I have one site on Server A which runs well and the server 
load is consistently under 1. When I moved that site to the new server 
it spiraled and crashed within seconds with high loads. After some 
investigation I thought it was MySQL that was the problem. Reason being 
is that I get tons of MySQL children or connections but they never close.

Then I did the following. I recreated the site on Server B. In the 
config files on Server B I pointed the MySQL connect to Server A. I then 
redirected all traffic from Server A to Server B. So now Server A is 
handling all the mysql stuff as it was before, but all the httpd stuff 
is on Server B. Now for the strange thing, Server A crashes and burns. 
Yes, the dual processor machine now dies after about 2-3 minutes with 
load averages as high as 30 or more! All from mysql-max.

So, I am thinking that it is no longer MySQL that is the problem. I 
would think from this test that it is either PHP or Apache that is 
opening connections with MySQL and then not releasing them. I am using 
connect() and not pconnect(), and I have disabled persistent connections 
in php.ini. My httpd.conf settings and my.cnf settings are below.

Sorry if this sounds confusing but it is hard to describe it all 
clearly. Can anyone give me some suggestions of things I can look at on 
the new server that might be causing MySQL to open all these 
connections. I have checked the process list and I get a lot of process 
that just sit there and do nothing for over a minute. Almost like they 
are used once and then sit there until they die.

Here are my config settings (same on both servers so I only include them 
once here):

my.cnf
---------

set-variable = max_connections=200
set-variable = interactive_timeout=100
set-variable = wait_timeout=100
set-variable = thread_cache_size=256
set-variable = connect_timeout=120
set-variable = myisam_sort_buffer_size=32M
set-variable = key_buffer=16M
set-variable = join_buffer=3M
set-variable = record_buffer=3M
set-variable = sort_buffer=5M
set-variable = table_cache=1024
skip-locking

Apache httpd.conf
-------------------------

Timeout 300
KeepAlive On
MaxKeepAliveRequests 300
KeepAliveTimeout 30
MinSpareServers 32
MaxSpareServers 64
StartServers 5
MaxClients 256
#MaxRequestsPerChild 30


Many many thanks.

James


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