Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
litespeed_wiki:php_memory_increase [2015/05/18 20:10] Jackson Zhang created |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Increase PHP Memory Limit ====== | ||
- | |||
- | You have java installed in your server but could not load /directory/javatest.php | ||
- | |||
- | It shows a memory related error when run the java command: | ||
- | <code> | ||
- | java -version | ||
- | java.lang.OutOfMemoryError: unable to create new native thread | ||
- | </code> | ||
- | |||
- | OpenJDK Runtime Environment (rhel-2.5.5.1.el6_6-x86_64 u79-b14) instead of tomcat installed. | ||
- | |||
- | Check error log: | ||
- | /tmp/jvm-81]cPs# cat hs_error.log | ||
- | |||
- | <code> | ||
- | # There is insufficient memory for the Java Runtime Environment to continue. | ||
- | # pthread_getattr_np | ||
- | # 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_x86.cpp:718), pid=553881, tid=139928360994560 | ||
- | # | ||
- | # JRE version: (7.0_79-b14) (build ) | ||
- | # Java VM: OpenJDK 64-Bit Server VM (24.79-b02 mixed mode linux-amd64 compressed oops) | ||
- | # Derivative: IcedTea 2.5.5 | ||
- | # Distribution: Built on CloudLinux Server release 6.6 (Leonid Kizim) (Thu Apr 16 03:44:02 EDT 2015) | ||
- | # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again | ||
- | </code> | ||
- | |||
- | PHP memory limit for lsphp5 external app could be the problem. | ||
- | |||
- | You can add "system('ulimit -a') at the beginning of the test script to find out the limits for that process. | ||
- | |||
- | Output phpinfo() is also a good idea to help identify the php memory_limit settting. | ||
- | |||
- | The memory [[http://www.litespeedtech.com/docs/webserver/config/extapps#memSoftLimit|soft limit]] of lsphp5 external app may need to be increased. If it has been increased and "ulimit -a" from PHP script still shows a lower limit, you need to look into "memory_limit" set by php.ini or overridden by "php_value" in .htaccess. | ||
- | |||
- | Finally increase memory limit to 4GB, and add java command parameter to limit java's memory usage, javatest.php works now. | ||
- | |||
- | Actually 4GB is not enough for default java runtime. | ||
- | |||
- | The java command result is normally sent to stderr and you can check /usr/local/apache/logs/stderr.log for the java version output. | ||