I am moving a website and supporting MySql database to a new server provider. The move is complete, and although the new server hardware is superior to the old, my performance tests against the new Apache2 web server shows that it is performing less than half as well as the old installation. Since the hardware on the new server is better, it must be the configurations of the web and/or the database software.
I need to performance tune the Apache web server and (possibly) the MySql database configurations to make it perform at least as well as the old environment.
There will be a very simple test to determine this. I have a php web page that does a single database connection and a single update to that database server. Using http_load against this url, I run:
./http_load -parallel 1 -seconds 30 [url removed, login to view]
This gives the following results on the old server:
16348 fetches, 1 max parallel, 65392 bytes, in 30 seconds
4 mean bytes/connection
544.933 fetches/sec, 2179.73 bytes/sec
msecs/connect: 0.0453878 mean, 0.089 max, 0.036 min
msecs/first-response: 1.78962 mean, 14.089 max, 1.52 min
HTTP response codes:
code 200 -- 16348
If I can run this command on the new server after you do your performance tuning and get at least as good of results as this then I will be satisfied that the project is completed and the performance is good.
You will have full root access to the web and database server to test and do as you please.
The acceptance criteria are:
- http_load results using the above mentioned criteria on the new server is at least as good as the results of the old server
- you must provide a document clearly stating exactly what you did during your performance tuning, and exactly what you changed, including all new/modified parameters in the config files.
For clarification, the operating system is SUSE linux, MySql is version 5.5.8, php is 5.2.16 and Apache is 2.2.17