I am curious how everyone approaches the question of the following character:
'we need to create application A (for example, an e-commerce site). He will use technology B (e.g. java). It must support a C (e.g. 200) number of concurrent users. What equipment do we need?
The hardware specification will include the number of CPUs required and possibly the amount of memory for the main response.
To simplify my example, I will stick with Java technology in my question, but I really need technology-based advice.
I understand that this issue includes many additional factors. For example, another structure (Wicket vs Struts vs Spring vs. the pure EJB J2EE architecture), the number of distributed levels (one window installation or 3 level configuration).
But, given that a person may not have any previous experience with this technology (or perhaps there is no way to perform a stress test to find out what the necessary equipment is), and such a question always arises during the initial discussion of the project (and an answer is necessary as a baseline for moving forward) how are you going to give an answer?
I thought about solving the memory problem by evaluating the amount of memory that each user session can perform, but there will definitely be overhead for the infrastructure / virtual machine.
But, in general, I just can’t talk about a good solution to this issue, which always seems to pop up. The download test will definitely help to solve the problem, but then by this time the project is ready, and this is the question that the client usually needs to answer before the project.
We hope that the community can recommend good approaches to this.
Thanks.
architecture
Kent Lai
source share