For smart client you can't expect a big jump in performance with a faster server, everything happens on the client, the server does just a couple of things: serve the JARs to the client, get the data from the DB, send the data to the client.
To optimize smart client performance the important factors are:
- latency between client and server: keep it as low as possible
- latency between server and database: keep it as low as possible
- fast DB server
- your code: try to avoid server calls as much as you can, for example change a dynamic valuelist to a query based one and cache it on startup of the solution, execute methods that requires many round trips server side using the Headless client, etc.
Using dedicated servers for servoy and db could be counter productive because it could increase the latency between them compared to when running on the same box. Try to ping your db server from your servoy server, that latency will apply to all communications between them.
Servoy server (when using smart client) doesn't need a lot of CPU and memory, for reference look at these numbers, it's a 5.2 server with 100+ active smart client users:
- Code: Select all
Heap memory: allocated=889056K, used=758668K, max=2027264K
None Heap memory: allocated=111808K, used=111299K, max=180224K
IMO you could run both the application server and the db server on the same vm, you should get the same performance and save 200 bucks per month. Have some testing: check the application server CPU und RAM usage for a couple of days and see if it could just be moved to the db server, I think it's worth the saving.
If you need support contact me privately and we will work something out.