我在Tomcat 8.5上具有jdk1.8.0_171的其余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异常)
那么在这种情况下缺少什么呢?如何增加剩余服务的内存使用率?在我的本地PC上,使用相同的服务/战争和逻辑效果很好
致谢
答案 0 :(得分:0)
在服务器测试中,我们有超过6gb的RAM,因此我认为未按应在Java上分配内存堆的数量。
然后,我添加了maxHttpHeaderSize并在Tomcat配置上删除了-Xms256m -Xmx1024m,并且在进行测试后可以正常工作。
所以失败的原因是响应HTTP标头的最大大小,而不是我认为的内存。