Thank you Simon & Leif, really appreciate your support!
The two Views are real world views which i have used for the gist. Usually the App loads a set of data from the DB and present it to the user, who need to enter some values, maybe upload PDFs etc and save it again. It has also some REST Endpoints, which are used to fetch status of an invoice for example but those REST endpoints are not in the UI State of course, its Spring Boot without a view.
Its like the easiest ERP system you can imagine, opening Offers, saving them, so basically nothing special. The only thing i dealed with is showing images which are saved in the DB, but we are now streaming them instead of holding them in RAM, this was a good move i think.
Let me try to get some data ( i have build a admin panel where i count registered views etc)
Currently opened UIs: 57
Active Sessions: 72 means 29 idle sessions which are about to close in some minutes (12 min timeout is set)
The current Heap floor with those UI is at 295MB (today 7 am after a GC it was at 350MB. So the GC can collected more trash at 10am, than the GC in at 7 am, which is quite well i think. So it doesnt looks like there is a huge mem leak, otherwise the floor heap would be really increasing over time.
@Leif 14.000 Users for View 1? That sounds crazy. I bet i could optimze View2 so it can will be reduced as well.
So what i take from your answer: each UI holds the shown data (for Example OrderDTO which presents the Databasedata which is a field in the Class) but Spring Services, Repositories etc are not in the Gist values, but those are in the baseline floor.
So the main issue i have is, that i cant imagine that this app can handle 1000 Views in parallel. In best (or worst) case, it must handle 1500-2500 parallel Views. (Its possible that only 500 Users are logged in, but they have 1000 Views open, some users have 5 Tabs open, others only one)
This makes it quite hard to guess what this setup really can handle.
The bottleneck like Database etc is another team’s topic if it becomes an issue, but there are also enough resources i think. Currently we are running with a pool of 10 connections and 2 idle.
(I have the option to increase the RAM to 16GB or a second instance in Azure which will handle the session automatically by AAR Affinity Sessions - which should be sticky sessions to glue one session to one instance with auto routing the user to the correct instance )