English

GeoEvent Linux reduced throughput issues

Description

Linux users of the ArcGIS GeoEvent Extension for Server have reported that the maximum throughput speed on some operating systems is significantly lower than those of Windows deployments using the same product release and GeoEvent configuration.

Cause

The difference in these rates can be attributed to the default performance tuning configuration within the operating systems of Red Hat Enterprise Linux (RHEL) 6, CentOS 6, as well as Ubuntu 14.04/16.04 and the openSuSE releases. By default when initially deployed, these Linux distributions are preconfigured for a power-saving balance of CPU, memory, and network resource usage. Unfortunately when working with higher velocity real-time data, these settings can drastically limit the number of events per second that can be processed by the GeoEvent Extension.

Workaround

To increase the performance on these operating systems, change the default tuning setting to the recommendations below:

Note:
Please note that it is highly recommended that if deployed in a virtual environment, that an image be taken prior to making any changes and if at all possible, to first implement these changes in a Development/Test environment prior to modifying any Production deployments.

RHEL 6 / CentOS 6

Red Hat Enterprise Linux and CentOS provide a utility called tuned which greatly simplifies the process of changing the tuning settings by providing a number of preconfigured profiles to match expected usage.
  1. Install tuned on the server hosting ArcGIS Server and the GeoEvent Extension
[root@server ~]# yum install tuned

If tuned is already installed this will also check to confirm if the system is using the most recent packages.
  1. Check to see what Profile is currently in use on that machine
[root@server ~]# tuned-adm list 
Available profiles: 
- desktop-powersave 
- spindown-disk 
- default 
- laptop-ac-powersave 
- laptop-battery-powersave 
- server-powersave 
- throughput-performance 
- latency-performance 
- enterprise-storage 
- virtual-guest 
- virtual-host 
Current active profile: default
  1. Change the Profile to virtual-guest
[root@server ~]# tuned-adm profile virtual-guest
These settings are applied immediately, and are saved as the new system configuration. With the RHEL7 and CentOS7 operating systems, these profiles are automatically set to virtual-guest by default, but can be further tuned as needed. For additional documentation on the tuned utility, see the Related Information section below.


Ubuntu 14.04/16.04 and openSuSE

With these distributions the same tuning settings are applied, but without the capability to use a preconfigured profile. The following settings must be explicitly added to the sysctl.conf file using a text editor.
username@server:~$ vi /etc/sysctl.conf 
kernel.sched_min_granularity_ns = 10000000 
kernel.sched_wakeup_granularity_ns = 15000000 
vm.swappiness = 30 
vm.dirty_ratio = 40
Once saved, reload the sysctl.conf to apply the changes.
username@server:~$ sysctl -p

Related Information

Red Hat Enterprise Linux Tuned Documentation