ree*_*een 32 java playframework
我有一个非常古老的linux系统并安装了java和play框架.当我运行java时,我得到:
java -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
Run Code Online (Sandbox Code Playgroud)
所以我限制了application.conf中的java堆空间:
jvm.memory=-Xmx256M -Xms256M
Run Code Online (Sandbox Code Playgroud)
有了这个设置,我可以运行游戏测试,玩游戏等....
但我不能跑:
play dependencies
~ _ _
~ _ __ | | __ _ _ _| |
~ | '_ \| |/ _' | || |_|
~ | __/|_|\____|\__ (_)
~ |_| |__/
~
~ play! 1.2.1, http://www.playframework.org
~
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
Run Code Online (Sandbox Code Playgroud)
是否有全局配置文件或环境变量,我可以限制播放框架的java堆空间全局?
更新: 以下不起作用:
play dependencies -Xmx256M -Xms256M
~ _ _
~ _ __ | | __ _ _ _| |
~ | '_ \| |/ _' | || |_|
~ | __/|_|\____|\__ (_)
~ |_| |__/
~
~ play! 1.2.1, http://www.playframework.org
~
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
Run Code Online (Sandbox Code Playgroud)
更新2:
记忆:
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 1024
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 38912
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Run Code Online (Sandbox Code Playgroud)
限制:
cat /proc/meminfo
MemTotal: 4139312 kB
MemFree: 332988 kB
Buffers: 105252 kB
Cached: 1705644 kB
SwapCached: 4 kB
Active: 2566216 kB
Inactive: 625032 kB
HighTotal: 786432 kB
HighFree: 1728 kB
LowTotal: 3352880 kB
LowFree: 331260 kB
SwapTotal: 4192956 kB
SwapFree: 4168224 kB
Dirty: 368 kB
Writeback: 0 kB
Mapped: 1672180 kB
Slab: 570864 kB
CommitLimit: 6262612 kB
Committed_AS: 4075144 kB
PageTables: 19884 kB
VmallocTotal: 303096 kB
VmallocUsed: 10400 kB
VmallocChunk: 292648 kB
Run Code Online (Sandbox Code Playgroud)
BR,
刘若英
Ayu*_*pta 23
播放似乎没有获取依赖项甚至测试命令的jvm.memory设置.强制它使用特定JVM设置的一种方法是使用_JAVA_OPTIONS.
例如:
export _JAVA_OPTIONS="-Xms800m -Xmx1500m -XX:PermSize=64m -XX:MaxPermSize=256m"
play test
Run Code Online (Sandbox Code Playgroud)
要么
play deps
Run Code Online (Sandbox Code Playgroud)
你应该看到
~ _ _
~ _ __ | | __ _ _ _| |
~ | '_ \| |/ _' | || |_|
~ | __/|_|\____|\__ (_)
~ |_| |__/
~
~ play! 1.2.3, http://www.playframework.org
~ framework ID is test
~
~ Running in test mode
~ Ctrl+C to stop
~
Picked up _JAVA_OPTIONS: -Xms800m -Xmx1500m -XX:PermSize=64m -XX:MaxPermSize=256m
Listening for transport dt_socket at address: 8000
Run Code Online (Sandbox Code Playgroud)
请注意,这会将这些设置应用于在设置了_JAVA_OPTIONS的终端上运行的所有Java程序.
ree*_*een 19
谷歌搜索后,我发现了这个讨论.问题是,我的Linux系统在openvz容器中运行:
Java抱怨的原因是因为在启动时,它看到机器有超过2 GB的RAM,所以它在服务器模式下启动,它试图分配所有内存,然后由于它在VPS中而失败.
我可以通过更改/usr/java/jdk1.6.0_26/jre/lib/i386/jvm.cfg来修复java启动问题:
-client IF_SERVER_CLASS -server
-server KNOWN
-hotspot ALIASED_TO -client
-classic WARN
-native ERROR
-green ERROR
Run Code Online (Sandbox Code Playgroud)
至:
#-client IF_SERVER_CLASS -server
-client KNOWN
-server KNOWN
-hotspot ALIASED_TO -client
-classic WARN
-native ERROR
-green ERROR
Run Code Online (Sandbox Code Playgroud)
现在我可以运行任何播放命令.也许这有助于其他人遇到与基于容器的虚拟化相关的类似问题.
BR,Rene
Cod*_*nci 12
通常,您可以在使用以下模式调用play时指定Java命令行参数.
play run <appname> -Xmx256M -Xms256M
Run Code Online (Sandbox Code Playgroud)
但是,查看play run命令和play dependencies命令的python代码,它们以不同的方式调用Java.
play dependencies命令在不通过-X命令的情况下调用Java(出于某种原因,它通过-D命令,但不通过-X).因此,除了deps.py 在framework/pym/play /命令中编辑文件以及将-Xmx和-Xms设置硬编码到此文件中之外,您无能为力.
这不是一个长期的解决方案,我建议你在Play上提出一个票,允许从命令行或从application.conf读取这些设置,但是现在,我认为这种方法是你唯一的选择.
刚刚在我的笔记本电脑上运行Fedora并在启动交互式shell时使用Play 2.0.我发现构建脚本默认将内存值设置为相当高的值.
要解决此问题,我必须$play_dir/framework/build手动编辑脚本并更改值,在脚本结束时执行以下操作以启动:
java ${DEBUG_PARAM} -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M ...
Run Code Online (Sandbox Code Playgroud)
只需相应地更改-Xmx/-Xms值(可能还有permgen).
| 归档时间: |
|
| 查看次数: |
26754 次 |
| 最近记录: |