*********** ONLY FOR A MYSQL LINUX SERVER PERFORMANCE TUNING EXPERT **************
Please do not apply unless you are a performance tuning expert.
I need someone who can definitively tune a production MYSQL Database to maximise the possible maximum throughput.
I have a LLMP Test Server (Linux, LightTPD, MariaDB PHP5) - 24GB RAM, 8 Core processors running on Ubuntu Server 13.04
The server runs entirely on an SSD DRIVE for speed. The tables are INNODB, and there are only four of them in total. It doesn't get much simpler.
I have 30 CLIENTS PC's that attack the server and insert a row into one table. The table has a single PK and no indices of any sort.
Each Client PC runs 20 instances of CHROME and 20 instances of FIREFOX.
Each instance requests a page from the server, and when it receives the page, requests it again.
Therefore I have approximately (20 * 20 * 30) = 12,000 page requests hitting the server every 5 seconds or so.
The Server responds by serving a MAXIMUM of 7500 pages per minute. It's good, but the processor only ever reaches 20% CPU.
There is a bottleneck somewhere, so I need someone to tell me how I can max out the CPU by adjusting the settings in my.cnf, php.ini and lighttpd.conf
because the number of threads it uses does not get above 6 (which makes no sense to me).
There are no errors in the LIGHTTPD error log
There are no errors in the MYSQL (MariaDB) error log
APC caching is installed
There a NO slow queries, locks tables or contentions at all.
One table takes the main hit of everything - it is very small in size, but has around 1 million rows in it.
I am not looking for someone to analyse the underlying SQL code (at least not yet) - just the Server setup for threads/ram etc etc
I have enclosed a sample of tyhe configuration files and graph output. You will be expected to perform analysis on this information.
The Table Schemas can also be provided if required.
What I need is someone who can make suggestions for alterations to the configuration files, available RAM, number of processors (I can change anything).
I will perform a re-run (takes around half an hour) when these suggestions have been implemented, and feed you back all of the output from the run.
You will not have direct access to the Server. The data you must analyse will look like the attached.
I would expect you to charge by the hour, for the time that I need. There are no deadlines or schedules - simply when you can is OK, but the information you provide MUST be on a Expert basis.
I have spent weeks on Google studying this subject. I DO NOT want you to 'guess' about changing things and then I do a test run to see if you are right.
All your suggestions MUST be based on the data in front of you - not because you read something on a blog somewhere.