Reputation: 2226
My Tomcat server has been running for several days, but I can't shut it down normally because when executing shutdown.sh
, I got this error:
# root@iZ94hjppdqzZ:~/projects/taolijie# cat hs_err_pid5519.log
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.
# 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 (os_linux.cpp:2673), pid=5519, tid=3061726064
#
# JRE version: (8.0_45-b14) (build )
# Java VM: Java HotSpot(TM) Server VM (25.45-b02 mixed mode linux-x86 )
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
Therefore I have to kill Tomcat in order to shut it down. But the weird thing is that Tomcat worked normally when this error is generated(It can process web request normally).
Here are the VM options:
-server -Xms1G -Xmx1G -XX:+UseG1GC
My server has 2GB memory. Could anyone figure out what's happening? Thanks!!
Upvotes: 3
Views: 2599
Reputation: 19445
This looks like you are setting your memory configuration by:
JAVA_OPTS="-server -Xms1G -Xmx1G -XX:+UseG1GC"
The JAVA_OPTS
environment variable is used for all of Tomcat's java processes such as the one that is used to send the shutdown message.
You need to be certain that you are configuring your Tomcat memory by setting:
CATALINA_OPTS="-server -Xms1G -Xmx1G -XX:+UseG1GC"
This setting will then only be applied to the Tomcat process. The other control processes will execute fine using default memory settings.
Upvotes: 6