Just a second...

System requirements for the Diffusion server

Review this information before installing the Diffusion™ server.

The Diffusion server is certified on the system specifications listed here. In addition, the Diffusion server is supported on a further range of systems.

Push Technology classes a system as certified if the Diffusion server is fully functionally tested on that system.

We recommend that you use certified hardware, virtual machines, operating systems, and other software when setting up your Diffusion servers.

In addition, Push Technology supports other systems that have not been certified.

Other hardware and virtualized systems are supported, but the performance of these systems can vary.

More recent versions of software and operating systems than those we certify are supported.

However, Push Technology can agree to support Diffusion on other systems. For more information, contact Push Technology.

Physical system

The Diffusion server is certified on the following physical system specification:

  • Intel™ Xeon™ E-Series Processors
  • 8 Gb RAM
  • 8 CPUs
  • 10 Gigabit NIC

Network, CPU, and RAM (in decreasing order of importance) are the components that have the biggest impact on performance. High performance file system and disk are required. Intel hardware is used because of its ubiquity in the marketplace and proven reliability.

Virtualized system

The Diffusion server is certified on the following virtualized system specification:

  • Intel Xeon E-Series Processors
  • 32 Gb RAM
  • VMware vSphere® 5.5
Virtual machine
  • 8 VCPUs
  • 8 Gb RAM

When running on a virtualized system, over-committing VCPUs (assigning too many VCPUs compared to the processors available on the host) can cause increased latency and unpredictable performance. Consult the VMWare Performance Best Practices documentation for details.

Operating system

Diffusion is certified on the following operating systems:
  • Red Hat®7.2+

  • Windows™ Server 2012 R2 and 2016

We recommend you install your Diffusion server on a Linux™-based operating system with enterprise-level support available, such as Red Hat Enterprise Linux.

Operating system configuration

If you install your Diffusion server on a Linux-based operating system and do SSL offloading of secure client connections at the Diffusion server, you must disable transparent huge pages.

If you install your Diffusion server on a Linux-based operating system but do not do SSL offloading of secure client connections at the Diffusion server, disabling transparent huge pages is still recommended.

Having transparent huge pages enabled on the system your Diffusion server runs on can cause extremely long pauses for garbage collection. For more information, see https://access.redhat.com/solutions/46111.


The Diffusion server is supported on any Java Virtual Machine (JVM) that meets the following requirements:
  • The JVM has either passed the Java TCK or is an official AdoptOpenJDK build.
  • The JVM version is Java 8 (8u131-b11 GA or later) or Java 11 (11.0.3 GA or later). We recommend that you use the latest available minor release of the JVM, regularly review and update the JVM as new minor releases become available, and prefer a distribution that provides regular updates.
  • The JVM is HotSpot™ based.
  • The target platform is Linux, macOS®, or Windows.
There is a wide variety of free and commercial JDK distributions satisfying these requirements including:
  • Oracle JDK (https://www.oracle.com/technetwork/java/javase/downloads/index.html). Production use requires a commercial licence from Oracle.
  • AdoptOpenJDK (https://adoptopenjdk.net/).
  • Amazon Corretto (https://aws.amazon.com/corretto/).
  • Azul Zulu (https://www.azul.com/downloads/zulu/).
  • Red Hat OpenJDK (https://developers.redhat.com/products/openjdk/overview/).

We recommend against using Oracle OpenJDK (http://jdk.java.net/). Oracle OpenJDK is a reference implementation, and release updates are provided for a limited period, typically only six months.

Diffusion 6.7 is certified against the following JVMs:
  • AdoptOpenJDK 8u212
  • AdoptOpenJDK 11.0.3+7
  • Oracle JDK 8u131

Reduced footprint JVM distributions

Some distributions have optional packages that are minimal versions of the JVM and omit certain components, either to reduce the size of the JVM (and so the required disk space and time to download), or as part of security hardening. Additionally, the end user may remove unnecessary components from a JDK. JDKs up to version 8 had a standard reduced footprint repackaging called the "Java Runtime Environment (JRE)", but this name has now been dropped to allow distributions or the end user to choose from a variety of different repackaging strategies.

Examples of components that are frequently removed include:
  • Tools that are only required by developers (e.g. the javac compiler; Java Mission Control; jconsole). This was the primary focus of the JRE.
  • Graphical user interface libraries. Packages without these components are typically referred to as "headless".

Diffusion does not require developer tools nor graphical user interface libraries. Although Push Technology Ltd supports the use of Diffusion with a reduced footprint JVM, we recommend that a full JDK installation is used. This is because Java's diagnostic tools, in particular Java Mission Control, have proven to be particularly useful as part of performance tuning and problem diagnosis.

JVM configuration

If you do SSL offloading of secure client connections at the Diffusion server, you must ensure that you constrain the maximum heap size and the maximum direct memory size so that together these to values do not use more than 80% of your system's RAM.


Push Technology recommends the following network configurations:
  • 10 Gigabit network
  • Load balancers with Secure Sockets Layer (SSL) offloading
  • In virtualized environments, enable SR-IOV.

    For more information about how to enable SR-IOV, see the documentation provided by your virtual server provider. SR-IOV might be packaged using a vendor-specific name.

Validation script

You can run an environment validation script to detect problems with the install environment.

The script uses the jjs command line tool which is included with Java 8 and above.

  1. In the directory where you installed Diffusion, navigate to /bin.
  2. Run the environmentValidation.js script:
    • On Linux, run ./environmentValidation.js
    • On Windows, make sure <java_home> is added to your path, then run: jjs environmentValidation.js

Note that macOS is not certified as a production system for Diffusion, so the validation script does not support macOS. You can still install and run Diffusion on macOS for development purposes.

Client requirements

For information about the supported client platforms, see Platform support for the Diffusion API libraries.