S
S
stas82015-02-02 12:35:16
Java
stas8, 2015-02-02 12:35:16

How to estimate the system requirements for the back end of an application?

Greetings.
I am writing an application. The server part is written in Java and runs on Tomcat. Uses MySQL database, accessed with Hibernate. With some interval, the server part executes requests, looks at several websites for updates, parses content from them and saves it to the database. The same application is a RESTful service (based on Jersey Rest) that responds to requests from the application's clients (under Android).
Question: how to evaluate the system requirements for a VPS, where will this whole thing work? (in addition to taking into account the standard requirements of the software mentioned above). Now, while no one is using it, it eats little resources, but how do you know what will happen when the database grows with a large number of records, and the application is used by 20,000 people (the maximum figure from the TK)?
Looking atVX6 by Hetzner. I’m also thinking about hosting the whole thing on the Jelastic platform (I understand that it’s more expensive, but the plus is that you need less deployment and support costs). What do you advise?
(And yes: I'm a student, I can say that this is my first serious application with a back-end. Therefore, if you have any comments or advice about the above, I will be glad to hear them. Thank you)

Answer the question

In order to leave comments, you need to log in

2 answer(s)
D
DigitalSmile, 2015-02-02
@stas8

I would advise you to separate the application, the REST server and the database machine (if everything was planned on the same machine).
I think no one will give you recommendations on choosing hardware for the application, since it is not clear how the code is written, how complex the parsing is, and what is under the hood of the Jersey resource methods. You can write like this that a 12-core xeon with 32 gigabytes will not cope :)
On the other hand, Jelastic seems to have had a test demo period, you can try to deploy and drive for stress testing, since you know how the application will be used.

V
Vladimir Smirnov, 2015-02-04
@bobzer

My software has been running in the cloud for a year now. I took Windows (yes, I love graphical interfaces and don't know Linux) with 1GB of memory and a dynamically allocated processor (from 800 to 2300 MHz). On the same virtual server, there is both MySQL and Tomcat DBMS with my application. Most of the time the server consumes the minimum processor bar (800 MHz), memory consumption 98% of the time is no more than 800 MB, usually 600-700 MB. There was a load of up to 20 requests per second, the power was enough to work stably, without freezes (and this is all under Windows!). Do the same, one-on-one, one server can be enough for a long time. Modern clouds allocate additional resources automatically, without exceeding the limit you specify (the limit is needed so as not to go broke if all of a sudden ...), so you can not be afraid of an unexpected load.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question