To be honest with you, I did not want to leave this message until I saw current status from jpg that you attached.
First thing is that:
You will need a memcache server (which can be created inside your existing server as a virtual container) -- no additional fee
You will need to fine-tuned the db confiurations, this is based on total size of memory, cpu, cores etc.
Then, you will need to do a Read/Write script to balance the requests:
Example:
Memcahced Servier1 : Will be responsible to cache all the request that is not being in cache then subsequent requests will be server from the Memcached server. This reduced heavy loads from Server .
Database server:
Create two or more slave database, dBSalve1, dBSlave2 .....
then Sync Master Databse to the slaves... (master and slaves has same information)
Now the scripting:
Add a script to do the follwoing:
if visitors browing the website ; server request goes to Memcached, and mysql is readonly, thus reading from salves if no information inside of memechaced (we do not even worry the master database)
Master database will only store and sync asynchronously new as information from visitors such registrations, ordering, anything that has to do with WRITE permissions.
This is same tech BIG companies use to speedup their system.
Let us chat about it