I need to do hardware sizing (CPU cores, RAM) for a Spring boot application which will be running on Tomcat web-server. The application, to be built from scratch, does not have front-end. It is primarily controller-service-persistence with PostgreSQL as database, exposing the server as REST APIs.
Performance metrics for Production :
Appl. response time < 10msec
Concurrent users - max 5000
Data size upto 100 MB, audit logs - upto 1TB.
If we have a cluster of 3 nodes, how do I arrive at the CPU, RAM requirement for each node? It can be an approx. +- 20%.
I saw some links on stackoverflow in similar topics where solution was : You need to create some load e.g. using Jmeter for a realistic work load of requests and users. Most likely you need to test for 20, 40, 60...users until the system doesn't perform so well.
How do I create load where application is yet to be developed? Is there any rule-of-thumb for an approx. starting point?
Optimizing Hardware Resource Planning for Application Performance and Scalability
ans: Above mention approaches won't provide accurate performance metrics for your specific application.
Summary:
Effective hardware resource planning plays a critical role in ensuring optimal application performance and scalability. This involves a systematic and iterative evaluation process, taking into account evolving requirements and application performance metrics. Thorough performance testing on the live application is essential to ensure stability and scalability.
Key Points: