Review this information before installing the Diffusion™
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
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.
The Diffusion server is certified on the following physical
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.
The Diffusion server is certified on the following virtualized
Xeon E-Series Processors
- 32 Gb RAM
- Virtual machine
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.
is certified on the following operating systems:
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.
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.
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".
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
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.
recommends the following network configurations:
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.
- In the directory where you installed Diffusion, navigate to /bin.
- Run the environmentValidation.js script:
- On Linux, run ./environmentValidation.js
- On Windows, make sure <java_home> is added to your path, then run:
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.