NCMSERV cannot allocate resources - "Failed to allocate array" and How to increase memory for NCM
search cancel

NCMSERV cannot allocate resources - "Failed to allocate array" and How to increase memory for NCM

book

Article ID: 212630

calendar_today

Updated On:

Products

CA Spectrum DX NetOps

Issue/Introduction

We are seeing an error on using NCM captures: 

"Failed to allocate array: 34864 x 26538 process memory currently set to: 1820M.  To increase memory adjust value of -Xmx parameter in: $SPECROOT/lib/SDPM/partslist/NCMSERV.idb, 'processd' will need to be restarted after making this change."

We increase the value to 2048M in NCMSERV.idb and bounced ncmserv.exe, but still we are seeing an issue.

Environment

Release : 20.2, 21.2, 23.3, 24.3

Component : Spectrum Core / SpectroSERVER

Cause

The memory setting for NCM as defined in NCMSERV.idb is too low for the capture request. 

Resolution

NcmService memory allocation defined in NCMSERV.idb is defaulted at 1024M in 10.4.2. For many customers, this value is too low for configure payloads in modern devices. 

You can increase the memory allocation value here, recommended to increase to 4096M allocated to NcmService: 

ARGV;$SPECROOT/bin/JavaApps/bin/ncmservice<CSEXE> -Xms256M -Xmx4096M -XX:+HeapDumpOnOutOfMemoryError -Dvbroker.agent.enableLocator=false -Dvbroker.orb.admDir=$SPECROOT/bin/VBNS -Dborland.enterprise.licenseDir=%BES_LIC_DIR% -Dborland.enterprise.licenseDefaultDir=%BES_LIC_DIR% -Djava.endorsed.dirs=$SPECROOT/lib/endorsed -DSPECROOT=%SPECROOT% com.aprisma.spectrum.scmd.ScmService;


In Spectrum 10.4.3 installation and higher, the default value allocated to NcmService is 4096M.

You can stop the NCM process and restart it via CLI and it will read in the change to the NCMSERV.idb file.

STOP ncmservice

spectrum@specrumserver /c/win32app/Spectrum/bin
$ ./cmdC.exe localhost 2 NCMSERV

START ncmservice

spectrum@spectrumserver /c/win32app/Spectrum/bin
$ ./launchinstdbapp.exe localhost NCMSERV y NCMSERV.OUT

Started: NCM Service, PID = 8092

You can check the ncmservice process to make sure it's using the new memory parameter after restart.