0

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?

kakoli
  • 423
  • 4
  • 8
  • 18

1 Answers1

0

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:

  1. Iterative Evaluation and Adjustment: Hardware resource planning should be an ongoing process, continually assessing the application's performance and adapting to changing requirements.
  2. Comprehensive Performance Testing: Rigorous performance testing on the live application is crucial to identify bottlenecks, optimize resource allocation, and ensure stable operation.
  3. Iterative Load Testing: Load testing should be conducted iteratively throughout the application's lifecycle, considering changes in architecture, requirements, and anticipated user behavior.
  4. Application-Specific Load and Performance Characteristics: Each application has unique load and performance requirements influenced by factors such as architecture, user behavior, and specific functional needs.
Amir Shaikh
  • 159
  • 1
  • 4
  • I understand that its an iterative process, but what is the starting resources based on the performance criterion needed? – kakoli Jun 18 '23 at 04:44