我在Tomcat 8.5上有一个带有jdk1.8.0_171的rest Web服务。我通过浏览器(例如mozilla(执行了Web服务,但它没有显示json输出。对于Tomcat/Java,json输出被认为是很大的。
所以在tomcat/bin/catalina.sh文件上我添加了:
JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -Xms256m -Xmx1024m"
此外,文件包含:
if [ -z "$JSSE_OPTS" ] ; then
JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"
fi
此外,tomcat服务器状态显示:可用内存:139.46 MB总内存:247.56 MB最大内存:989.87 MB
Memory Pool Type Initial Total Maximum Used
Eden Space Heap memory 68.31 MB 68.37 MB 273.06 MB 28.33 MB (10%)
Survivor Space Heap memory 8.50 MB 8.50 MB 34.12 MB 4.90 MB (14%)
Tenured Gen Heap memory 170.68 MB 170.68 MB 682.68 MB 74.84 MB (10%)
Code Cache Non-heap memory 2.43 MB 36.00 MB 240.00 MB 35.52 MB (14%)
Compressed Class Space
Non-heap memory 0.00 MB 11.87 MB 1024.00 MB 11.10 MB (1%)
Metaspace Non-heap memory 0.00 MB 92.62 MB -0.00 MB 88.85 MB
Spring mvc用于生成大小为334273个字符的json输出。代码中没有错误(Java异常(
那么,在这种情况下缺少什么呢?如何增加休息服务的内存使用量?。在我的本地电脑工作得很好,与相同的服务/战争和逻辑
问候
在服务器测试中,我们有超过6gb的RAM,所以我认为Java上没有按应有的方式分配内存堆的数量。
然后,我在Tomcat配置中添加了maxHttpHeaderSize并删除了-Xms256m-Xmx1024m,它在测试后就可以工作了。
所以失败的原因是响应HTTP头的最大大小,而不是我认为的内存。