How to do an estimation of needed CPU cores and memory from specifications?
https://softwareengineering.stackexchange.com/questions/379917
-
14-02-2021 - |
문제
So my client asked me to provide a rough estimate of a number of CPU cores and the needed memory for a specific project I'm working on. But the project is complex, is different from anything I've been working on and different from anything they have running, is not completely defined yet and not much has been done.
I only have an idea of the applications, tools and databases that will be involved in the architecture, some estimates of the numbers of requests by seconds on the system, and some unoptimized proof of concepts of some of the applications.
I told my client that I couldn't yet and that we had to wait until we had some parts of the system running to do some load testing and then decide.
But I'm wondering if there is any method that I don't know to go about this?
해결책
Hardware sizing methods all depend on lots of benchmarks, in which you play with the load parameters on one hand (number of users, volume of data, load patterns with averages and peaks, etc...) and different system configurations on the others:
- Here a commercial article from a known software vendor.
- Here an academic article, in which a soft benchmarking is used: instead of extreme benchmarking that pushes hardware towards its limits, it uses performance measurements of existing productive systems.
The only alternative to benchmarking, is to use estimates by analogy -- so called guesstimates --, in which you compare your system with similar systems delivered in the past and make some extrapolations. Of course, this is very error prone, since it doesn't take into account specific bottlenecks. So when using such figures, always warn about the rough approximation.