0

Problem

  • When call the java in php (web server), Out of Memory Error occurs.

State

  • web server - centos 6 , nginx, php-fpm , java
  • call the java in centos - success
  • call the java in php - Out of Memory Error occurs

Call API

  • Case : php
$string = exec('java -Xms2g -Xmx2g -jar /usr/share/nginx/html/my_test.jar /mytmp/testfile’, $output, $code);
  • Case : centos 6 (linux)
java -Xms2g -Xmx2g -jar /usr/share/nginx/html/my_test.jar /mytmp/testfile

Error Message

# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 2555904 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=2549, tid=140226036020992
#
# JRE version:  (8.0_45-b14) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.45-b02 mixed mode linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#

Question

  • why different work ?
  • how to solved that ?

I try that (not solve)

  • set memory
java -Xms2g -Xmx2g 
4
  • How do you call your java application ? Commented Jun 2, 2016 at 9:44
  • "yum install java" - i installed on centos linux Commented Jun 2, 2016 at 9:51
  • I mean the complete code. Commented Jun 2, 2016 at 9:52
  • How many memory left on your system(before starting java)? Commented Jun 3, 2016 at 4:08

1 Answer 1

1

i solve thaht.
"setsebool -P httpd_execmem on"

Sign up to request clarification or add additional context in comments.

1 Comment

After literally spending like 4 hours, this worked for me. I was trying to run libreoffice (which runs on java i guess) in PHP exec function and when it ran through http request, through nginx user I get Memory allocation error (mmap). Running same script from PHP Cli worked fine on Cent OS.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.