Just a quick note while it is in my head:
When testing software, especially for performance, remember to test on the same hardware you intend to deploy on. One trend I have seen for some time is that testing is often done on whatever happens to be lying around and not otherwise assigned.
While you can certainly test MySQL or an email server on such hardware, you should at least be aware that by providing hardware that does not match what you use in production you will not get an accurate picture, and sometimes the differences can be dramatic. This is especially true of enterprise software with high demands for memory and storage such as databases and MTAs: running such software on an old desktop or five-year-old server will not provide an accurate picture of how the software will perform on a multicore server with several gigabytes of RAM and a RAID array.
My advice is this: if you know you will be deploying the solution …
[Read more]