1. Home
  2. GLU.Guide
  3. GLU DevOps
  4. GLU.Engine Server Specifications

GLU.Engine Server Specifications

GLU.Engine

The GLU.Engine Server hosts the executable generated by the GLU.Console to provide integration. It takes the form of a .WAR (if clients are using their own container) or a .JAR file (i.e. Springboot Container). Each ‘Application’ equates to one GLU.Engine and each GLU.Engine will require it’s own Hardware as outlined below. This Hardware recommendation is provided as a baseline / entry-level specification. GLU.Engine performance is CPU bound. If there is an expectation of high or system performance concerns, CPU should be increased. It is recommended for redundancy that a load balanced solution is put in place with multiple GLU.Engines running in parallel.

OPTIONAL – If log aggregation is required.

GLU has experience with using Filebeats to collect and send logs generated by the GLU.Engine to Elastic Search or Elastic Logstash . 

Filebeat should be installed on the same server as the GLU.Engine if this is required. Please refer to Elastic’s install instructions for filebeats if this is required. 

GLU.Engine – Entry-Level Server Requirements

ComponentSpecification
Disk200 GB disk space
Memory4 GB RAM for payload size of 150MB assuming 100 inflight transactions.
CPU2 Dual Core CPU

GLU.Engine – Entry-Level OS Requirements

Operating SystemSpecification
UbuntuVERSION=”18.04.2 LTS (Bionic Beaver)”ID=ubuntuID_LIKE=debianVERSION_ID=”18.04″HOME_URL=”https://www.ubuntu.com/
SUSENAME=”SLES”VERSION=”15″PRETTY_NAME=”SUSE Linux Enterprise Server 15″
Amazon Linux – CentOS 7.x.VERSION=”2″ID=”amzn”ID_LIKE=”centos rhel fedora”PRETTY_NAME=”Amazon Linux 2″HOME_URL=”https://amazonlinux.com/
Amazon Linux 2 – CentOS 6.xopenjdk version “1.8.0_191″ID=”amzn”ID_LIKE=”rhel fedora”VERSION_ID=”2018.03″PRETTY_NAME=”Amazon Linux AMI 2018.03″HOME_URL=”http://aws.amazon.com/amazon-linux-ami/

GLU.Engine – Performance-Level Settings

Where there is a particular requirement to provide higher levels of performance from the GLU.Engine it is recommended to adjust the Java JVM settings. 

The existing settings in the startengine.sh can be adjusted. 

Change {GLUENGINE-1.4-SNAPSHOT} to match the engine which is being used. 

The memory settings can be adjusted to reflect the size of the machine the GLU.Engine is deployed on i.e. 

-Xms1G -Xmx1G can be changed to  -Xms100m -Xmx100m (if the memory available means these settings need to be lower)

java -XX:+PrintGCDetails -Xloggc:gc.log -Xms100m -Xmx100m -XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:+UseStringDeduplication -XX:G1HeapRegionSize=32 -XX:G1ReservePercent=15 -XX:InitiatingHeapOccupancyPercent=30 -XX:MetaspaceSize=100M -jar ./engine/GLUENGINE-1.4-SNAPSHOT.jar --spring.config.additional-location=./engine/config/appSetting.yml

If the GE is running on an machine with multiple CPUs, this can be configured by adding this setting.

-XX:ConcGCThreads=8 where 8 would be adjusted to reflect the number of CPUUs.

i.e. 

8 CPU machine , leave this setting at 8

2 CPU machine, change this setting to 2, -XX:ConcGCThreads=2

6 CPU machine , change this setting to 6, -XX:ConcGCThreads=6

Default with out this setting will reflect 1 CPU.

GLU.Engine – Runtime Environment – Java

Runtime EnvironmentSpecification
JavaVersion 1.8 (Java 8)See install instructions in this link.http://bit.ly/2MEqk3F

From release 1.9.17 GLU has embedded a set of performance optimised JVM settings into the GLU.Engine package. The default settings are aligned to analysis carried ou by GLU in the lab on on-going performance optimisation and load testing.

For Windows (Beta) install this version: jdk-8u202-windows-x64.exe from here: https://www.oracle.com/za/java/technologies/javase/javase8-archive-downloads.html

JVM Settings

To optimise CPU performance and memory utilisation of your GLU.Engine, a set of JVM Settings can be configured in the GLU.Engine settings dialogue box. These settings will be included in the GLU.Engine startup.sh script. These settings should be refined to match the required settings for the environment which the GLU.Engine will run in. 

In the settings there are the settings for Garbage collection performance. The goal in tuning garbage collection performance is to reduce the time required to perform a full garbage collection cycle. You should not attempt to tune the JVM to minimize the frequency of full garbage collections, because this generally results in an eventual forced garbage collection cycle that may take up to several full seconds to complete.

The simplest and most reliable way to achieve short garbage collection times over the lifetime of a production server is to use a fixed heap size with the collector and the parallel young generation collector, restricting the new generation size to at most one third of the overall heap.

-Xms100M  : initial heap size for the startup 

-Xmx500M : maximal heap size

These settings place boundaries on the heap size to increase the predictability of garbage collection. The heap size is limited in replica servers so that even Full GCs do not trigger SIP retransmissions. -Xms sets the starting size to prevent pauses caused by heap expansion.

-XX:+UseConcMarkSweepGC  : The Concurrent Mark Sweep (CMS) collector is designed for applications that prefer shorter garbage collection pauses and that can afford to share processor resources with the garbage collector while the application is running. Typically applications that have a relatively large set of long-lived data (a large tenured generation) and run on machines with two or more processors tend to benefit from the use of this collector. However, this collector should be considered for any application with a low pause time requirement. The CMS collector is enabled with the command-line option -XX:+UseConcMarkSweepGC.

Also, if it is set to ‘ON’, you need to remove the ScavengeBeforeFullGC setting which is enabled by default on your JVM.

Once these changes have been applied, the GLU.Engine will need to be restarted.

Was this article helpful?

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill the form and we’ll contact you shortly

    I agree with

    cookies
    We uses cookies to make your experience on this website better. Learn more
    Accept cookies