We have been running our solution in Servoy 5.2 and Microsoft SQL Server on a VMware image of a 10 year old server for years, with 1 cpu and 4 gigs of Ram. Recently we spun up two m3.XL AWS servers, one for SQL Server and one for Servoy – both with 16 gigs of RAM and 4 CPUs. The speed of our solution hasn’t changed much. They are in the same private network. Any ideas what settings we could change to increase the speed?
It depends on many things… Is it a smart or web client solution?
It’s smart. Our clients are on a mix of Java 6 and 7 (I have no control) and the server is on Java 6.52. Thanks if you can help!
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:
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.