You can put the db on one server and the apache on another quite easily.
Have you followed the standard stuff, i.e. an opcode cache, lots of RAM to cache the files in and such like?
RAM is 1000 times quicker than disk, so if you can have the entire MySQL bit in RAM with no CPU wait on disk things improve, massively.
Your products are single SKU. When you have configurable products with 100’s of SKU’s in them things get slooow. Your site is fast.
One modification to make your site slower (!) would be to have price per kilo as a ‘filter with results’ attribute. The price can then be taken off the filtered navigation. If you had type of meat and price per kilo in the filtered navigation then it would be ‘of utility’ to those browsing.