I'm having PHP application and I need to estimate what hardware should I use for specific (predicted) traffic (load). I know it depends on many many factors, but I wonder is there any method except upgrading your hardware as traffic increases? I'd like to avoid both buying way too slow VPS nor unnecessarily powerful one. The application has some basic profiling available, which is able to report how much memory & time was used for processing specific request, and how much time each DB query took.
Can not be answered (easily), because it depends on a ton of factors. First of all, the app you did not name.
The quality of the app is such a big factor one cannot estimate anything.
If you hit limits, instead of upgrading optimizing code and algorithms may be an option.
Reporting memory, time and each db query sounds like debug-functionality. That is very costy and should be the first thing to be disabled to improve performance.
Use the cloud and you are free to scale up to what you need