php(web服务器)调用java无法正常工作

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 
查看全部
douche1936
douche1936
2016/06/02 09:41
  • java
  • php
  • centos
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

1个回复