Randal Rust wrote:
We have been having some performance issues on one of our larger
sites, and I'm trying to figure out the best way to go about fixing
them.

.....
On a related note, our main issue is that the site keeps slowing down
and we are getting a 'Too Many Connections' error from MySQL. I had
the number of connections increased from 100 to 150 on both Apache and
MySQL two weeks ago, but we are still having the problem, although
less frequently. One thing I'd like to be able to do is check how many
connections have physically been made to the database. I did this a
couple of weeks ago, but now I can't find the MySQL query returns that
information. If anyone could throw that out to me, I'd greatly
appreciate it.


Most common problem I see is a database that is not optimized or a sql server that is just underpowered (not enough cpu, ram, or disk i/o bandwidth .. usually it's the latter 2). If the database can be optimized, you will likely not need to upgrade the hardware.

First, examine your queries to see what is slow:
When your website begins to die, check the mysql process list
mysqladmin -p processlist
You'll probably see a list of queries that are taking a long time. These will eventually build up until you reach "Too Many Connections". You can also enable "--log-slow-queries" in mysql to log the slow queries to a file. Track down the queries, prune your tables, add indexes, or rewrite the sql properly to speed things up.

You can tweak the my.conf mysql config file settings to get a little better performance but the underlying problem is usually something more serious. If it all looks good, next blame the hardware.

Good tools to monitor ram and disk i/o usage using vmstat and iostat.

Leave "vmstat 5" running to see if your machine has run out of memory and is swapping pages to disk. This is often the tipping point leading to meltdown. The "cpu wa" column will show amount of time in wait state. if this is high, you've likely run out of disk bandwidth Time to buy more or faster hard drives or break the app apart into a cluster of machines.

~Rolan












_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk

NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com

Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php

Reply via email to