Infrastructure

Nuxeo benchmark infrastructure runs on Amazon Web Service (AWS). Benchmarked Architecture

The benchmark infrastructure is composed of:

This is a mix of static and dynamic parts:

All these nodes are setup according to our recommandation.

The bench is driven by continuous integration jobs (Jenkins).

Here is a list of tools used to perform the benchmark:

Amazon ec2 instance type

All machines are on Amazon and runs on the same availability zone (AZ).

| Node | ec2 instance type | |-|-| |Database|c4.2xlarge| |Nuxeo| c4.xlarge| |Elasticsearch| c4.xlarge | |Redis|cache.m3.large| |Jenkins slave|c3.xlarge|

Running a benchmark with the default setting requires 8 machines:

Configuration

Operating system used: Ubuntu LTS 14.04 trusty using ext4 filesystem.

Nuxeo

The number of nodes in the Nuxeo Cluster can be configured (default is 2)

The Nuxeo is installed using a zip archive, there are additional packages installed:

In addition to the backend template, the perf template is used. This template is provided in the default distribution and rely on Elasticsearch for fulltext search and most of the page provider.

Nuxeo run with the latest Oracle JVM 1.8, the heap size is set to 80% of total memory (5.84g for a C4.xlarge with 7.5g), the flight recoder option is active:

JAVA_OPTS=-server -Xms5984m -Xmx5984m -Dfile.encoding=UTF-8 -Dmail.mime.decodeparameters=true -Djava.util.Arrays.useLegacyMergeSort=true -Xloggc:"/opt/nuxeo/logs/gc.log" -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Dcom.sun.management.jmxremote.autodiscovery=true -Dcom.sun.management.jdp.name=Nuxeo -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true

Elasticsearch

Create a cluster of 3 nodes using the latest 1.7 version.

The heap size is set to 50% of the available memory (3.75g)

Binary Storage: Amazon S3

Default S3 bucket.

Load balancer: Amazon ELB

HTTP Listener

 Stickiness: LBCookieStickinessPolicy, expirationPeriod='86400'

Health check

Redis: Amazon Elasticache

Elasticache cluster with a single node using Redis 2.8.

Databases

Database are setup using the recommanded setup and tuning from our documentation.

PostgreSQL 9.4

Default setup for a 16g server:

Oracle 12

Default setup.

SQL Server 2012 (mssql)

Default setup.

MongoDB 8.2

Default setup.