java - ec2 AWS 微实例上的 java 堆问题

标签 java amazon-web-services

我正在尝试让 dbpedia java 包在 AWS ECs 微实例上运行(此处信息: https://github.com/dbpedia-spotlight/dbpedia-spotlight/wiki/Run-from-a-JAR )

问题是需要额外的java堆空间,我想亚马逊不太喜欢给我它。这是命令和输出。我尝试过 -Xmx10G 等,没有骰子。我猜亚马逊微实例可能在内存/堆空间方面受到限制,但我真的不确定如何更改它或者这是否是问题所在。谢谢!

$ java -Xmx1024m -jar dbpedia-spotlight.jar en http://localhost:2223/rest
Jan 31, 2015 6:48:04 AM org.dbpedia.spotlight.db.memory.MemoryStore$ load
INFO: Loading MemoryTokenTypeStore...
Jan 31, 2015 6:48:05 AM org.dbpedia.spotlight.db.memory.MemoryTokenTypeStore createReverseLookup
INFO: Creating reverse-lookup for Tokens.
Jan 31, 2015 6:48:06 AM org.dbpedia.spotlight.db.memory.MemoryStore$ load
INFO: Done (1527 ms)
Jan 31, 2015 6:48:06 AM org.dbpedia.spotlight.db.memory.MemoryStore$ load
INFO: Loading MemorySurfaceFormStore...
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000ec7a8000, 153452544, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 153452544 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/ubuntu/dbpedia-spotlight-quickstart-0.6.5/hs_err_pid2347.log

最佳答案

如果您要求 Java 分配比可用内存更多的内存,它将会崩溃 ( longer, more technical answer here )。 t1.micro 的内存刚刚超过 600mb,t2.micro 的内存为 1000mb。

作为起点,假设有一个现代 Ubuntu 实例,您应该能够在 t1.micro 上运行 350-400mb,在 t2.micro 上运行 750-800mb。

如果这还不够,请使用更大的实例。接下来的好步骤是 t2.medium 或 m3.large。如果它确实占用内存,则 r3.* 服务器拥有更多内存。

关于java - ec2 AWS 微实例上的 java 堆问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28249083/

相关文章:

amazon-web-services - 通过Terraform创建策略时出现MalformedPolicyDocument错误

database - 在 Redshift 中存储事件数据的最佳方式是什么?

java - 连续动画安卓

java - 转发到另一个从 POST 操作接收参数的 spring Controller

java bean 在两个不同的类中不以相同的方式工作

amazon-web-services - 如何在启动时为 ubuntu server 18.04 运行命令?

java - 如何在不是线程的对象上调用wait()和notify()方法?

java - 如何在 Kotlin 中使用 Java 的位运算符?

amazon-web-services - 如何将 Fargate 服务添加到入站安全规则?

python - 向 AWS Lambda 发送带有正文的请求