The SAS Event Stream Processing Studio service might not successfully initialize. When this problem happens, the service start command does not report an error, as shown below:
sudo service sas-viya-espvm-default start
sas-espvm sas-esp-visualmodeler Micro Service is running
When you encounter this problem, you cannot connect to the SAS Event Stream Processing Studio because the service did not start. The browser window displays a "connection refused" error message. If you run a service status command for SAS Event Stream Processing Studio as shown below, you see that the service is not started:
sudo service sas-viya-espvm-default status
sas-espvm sas-esp-visualmodeler Micro Service is not started
To determine why sas-espvm service did not start successfully, complete the following steps:
- Review the espvm log files in the /opt/sas/viya/config/var/log/espvm/default/ directory. A new log file is created each time the sas-espvm service starts. The log filenames are in the following format: sas-espvm_YYYY-MM-DD_HH-MM-SS.log. In the filename, YYYY-MM-DD represents the year, month, and day respectively, and HH-MM-SS represents the hour, minutes, and seconds respectively.
- Review the log file for a memory error for the Java Runtime Environment. The example log file below shows the error highlighted in bold text:
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 280 bytes for AllocateHeap
# An error report file with more information is saved as:
# /opt/sas/viya/config/data/espvm/hs_err_pid30693.log
- Review the error report file mentioned in the text of the error for additional details. For example, here is the content of the /opt/sas/viya/config/data/espvm/hs_err_pid30693.log file that was mentioned in the previous step:
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 280 bytes for AllocateHeap # Possible reasons:
# The system is out of physical RAM or swap space # In 32 bit mode, the process size limit was hit
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Use 64 bit Java on a 64 bit OS # Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads # Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
# Out of Memory Error (allocation.inline.hpp:61), pid=2235, tid=0x00007f535cd9f700
This error might be caused by the virtual memory limit that is set for the user, which starts the espvm service.
- To check the virtual memory limit, run either ulimit -v or ulimit -a as shown below.
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 30508
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) 2900000
file locks (-x) unlimited
In this example, the virtual memory limit (highlighted in bold above) was set too low for the sas-espvm process. To address this problem, you would either remove the virtual memory limit or increase the size of the limit before starting the sas-espvm service again.
Operating System and Release Information
| SAS System | SAS Event Stream Processing Engine | Linux for x64 | 4.1 | | | |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.