首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RESTHEART抛出异常

RESTHEART抛出异常
EN

Stack Overflow用户
提问于 2017-08-09 23:32:54
回答 1查看 143关注 0票数 0

我们实现了RESTHEART以从MongoDB获得聚合数据。对于单个请求,数据显示得很好,满足了需求。当我们开始在JMeter请求下通过在MongoDB上添加负载来检查这一点时,我们在后端得到了异常。我们与MongoDB工程师共享了这些异常,他们表示这可能是因为restheart问题。以前有没有人面对过这些问题?

@Andrea,在这方面的任何帮助都将不胜感激。

下面是下面的例子URI,其中错误的“内存不足”。REST调用aggrs/getStatDataByIssuerIdSectionName?avars={‘颁发者API’:66915,‘sectionName’:‘SCDPT1 1’}aggrs/getStatDataByIssuerIdSectionName?avars={‘颁发者API’:66915,‘sectionName’:‘SCDPT1 1’,‘年’:2014年}

服务器日志中的错误:

代码语言:javascript
复制
[[1;31mERROR^[[0;39m org.restheart.handlers.ErrorHandler - Error handling 
the request
java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:3554)
    at java.util.Arrays.copyOf(Arrays.java:3525)
    at java.util.ArrayList.grow(ArrayList.java:272)
    at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:246)
    at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:238)
    at java.util.ArrayList.add(ArrayList.java:469)
    at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:84)
    at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:41)
    at com.mongodb.operation.CommandResultArrayCodec.decode(CommandResultArrayCodec.java:52)
    at com.mongodb.operation.CommandResultDocumentCodec.readValue(CommandResultDocumentCodec.java:53)
    at org.bson.codecs


Error in response:
{
 ·         _exceptions: 
[
o    {
§  exception: "java.lang.OutOfMemoryError",
§  exception message: "Java heap space"
}
],
 ·         http status code: 500,
  ·         http status description: "Internal Server Error",
  ·         message: "Error handling the request, see log for more 
  information"
 }

 Thanks!
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-13 18:42:42

RESTHeart是一个普通的java.lang.OutOfMemoryError应用程序,您看到的是一个java.lang.OutOfMemoryError异常。这意味着您的测试正在使用所有可用JVM的堆空间,因此JVM将耗尽内存。

默认情况下:

Java 8占用-Xms<size> (最小HeapSize)的物理内存的1/6较大,-Xmx<size> (最大HeapSize)占用物理内存的1/4更小。

在Linux或Mac系统中,您可以使用以下方法检查默认堆大小:

java -XX:+PrintFlagsFinal -version | grep -iE HeapSize

如果服务器有足够的可用物理内存,可以尝试使用更大的堆运行RESTHeart,将-Xmn<size>参数添加到命令行。

例如:java -Xmx3072m将JVM的最大堆大小设置为3GB。

Rif:tuning.htm#PERFM164

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45602184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档