首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >垃圾收集如何影响jetty延迟?

垃圾收集如何影响jetty延迟?
EN

Stack Overflow用户
提问于 2015-12-06 17:20:24
回答 1查看 553关注 0票数 0

我有一个jetty应用程序,每秒处理大约2k个请求。机器有8个核心,JVM堆大小为8 8GB。有许多内存映射文件和内部缓存,因此它们占用了大部分堆空间(4.5 GB)。

以下是应用程序稳定且JVM完成调优Young和Old gen空间后的统计数据:年轻一代:2.6 gen老一代:5.4 gen

我看到我年轻的GC每3秒被调用一次,整个伊甸园空间都被清除了(也就是说,传递给老一代的数据非常少)。我知道填满年轻一代意味着我分配了太多的对象,这是一个问题。但在我的应用程序中绝对没有内存泄漏,因为服务器已经启动了两周,没有OOM崩溃。

年轻的GC是一个停止世界的事件。所以我的理解是,所有线程在这段时间内都会暂停。因此,当我从日志中监控延迟时,我可以看到每隔2-3秒,大约6-9个请求的响应时间> 100ms (我的平均响应时间小于10ms)。当完整GC被调用时,我看到6-9个请求的响应时间>3秒(这就是完整GC所需的时间,因为它被调用得非常少,所以在这里不是问题)

是否会将100ms缓冲区添加到我的队列中的所有请求?

如果是这样,测量从添加到队列到输出响应的响应时间的最佳方法是什么?因为我上面提到的6-9请求是通过检查日志来实现的。

一种方法是检查我的负载均衡器。

EN

回答 1

Stack Overflow用户

发布于 2015-12-09 02:58:58

您应该为应用程序启用GC日志记录。尝试添加以下jvm命令行参数

-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:-PrintTenuringDistribution -XX:+PrintGCCause -XX:+PrintGCApplicationStoppedTime -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=<REPLACE_ME> -XX:GCLogFileSize=20M -Xloggc:<path_to_gc_log_dir>/gc.log

然后查看GC日志中的事件,并尝试将其与应用程序日志相关联

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

https://stackoverflow.com/questions/34115847

复制
相关文章

相似问题

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