Child pages
  • Tuning the Server

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Servoy Application Server JVM Tuning

Java version
Servoy supports both Java 5 and Java 6 (for the server, the clients and developer). Java 6 has numerous performance improvements, so it is preferred over Java 5.

When the hardware of the Servoy is 64bit, make sure to also run a 64 bit Java Virtual Machine. When in doubt which version is used, check the Servoy Admin page, under "Servoy Server Home" > "Servoy Server Status" > "JVM Information":

  • 64 bit:  javajava.vm.name=Java HotSpot(TM) 64-Bit Server Server VM
  • 32 bit: java.vm.name=Java HotSpot(TM)  Client VMClient VM

An 32 bit JVM will allow a max memory of 2 Gb in total, In order to run with larger heap sizes (over 2 Gb) you have to use 64 bit JVM on 64 bit OS!

Java Virtual Machine Server mode
Java has 2 distinct operating modes: client mode and server mode. When running in server mode, the startup of the Java process will take longer and initial execution of code will be slower, but after a while the application will perform faster. The server mode is best suited for the Servoy Application Server.

...

  • The actual used memory is >= 70% of the specified maximum. The actually used memory can be found on the main page of the Admin page, under System Information, like: Heap memory: allocated=549184K, used=371473K, max=699072K
  • When the expected client load will exceed the maximum: As a rule of thumb:
    • Smart Client: assume a memory usage of about 600kb for each Smart Client. NOTE: When the Servoy HTTP Tunnel is used, assume 900kb per Client.
    • All other type of Clients (Web, Headless, Batch): the required memory for each client depends on the size and design of the solution, but should be in the order of magnitude of a couple of Mb per Client.

Servoy Application Server settings for Database Tuning

Databases have a max connection poolsize to prevent memory problems, but the default 10 can be too low when using many clients on 1 server.
As rule of thumb, if the active connection is > 70% of the max then set the max higher, its however not advised to have more then 30 connection max. (since databases them self have limits on how much they can handle, postgress for example default 40 max)
The idle connection parameter is just for efficient memory usage, when allow many idle more memory is ocupied when idle, low idle means more conenctions have to be created (which is expensive time wise)

When noticing proformance problems also watch the "performance data" section. At all times the normal Servoy SQL should be below 0.5 seconds not including reporting or search queries. If this is not the case contact an database administrator for index creation.

Servoy Application Server settings for Web Client Tuning

servoy.webclient.templates.use_local_ids

...