gpt4 book ai didi

Java Berkeley DB DPL - 读取操作峰值

转载 作者:太空宇宙 更新时间:2023-11-04 08:41:45 25 4
gpt4 key购买 nike

我在 Java 中使用 DPL。我有 1GB 的数据存储。我正在触发 5 个线程,它们试图在 1 秒的时间间隔后读取相同的记录。最初,读取操作大约需要 15 毫秒,进行大约 5-10 次读取,然后稳定到 0 毫秒(微秒),然后在 10-20 次读取之后,读取操作会出现一个峰值(15 毫秒)。

造成此问题的根本原因是什么以及如何配置 BDB 来解决它。

谢谢

最佳答案

这很容易成为影响应用程序性能的垃圾收集器。尝试使用以下命令监控 GC 周期:

jstat -gccause <pid-of-java-process> 200

看看峰值和 GC Activity 之间是否存在相关性。 Jstat 提供以下输出:

100.00   0.00   5.63  86.19  60.53    768    4.165    16    0.796    4.960 unknown GCCause      No GC               
0.00 96.01 0.00 87.15 60.53 769 4.172 16 0.796 4.967 unknown GCCause No GC
0.00 96.01 82.86 87.15 60.54 770 4.172 16 0.796 4.967 unknown GCCause Allocation Failure
75.27 0.00 69.29 87.15 60.54 770 4.175 16 0.796 4.971 unknown GCCause No GC
0.00 94.75 16.33 87.30 60.56 771 4.179 16 0.796 4.975 unknown GCCause No GC
41.07 0.00 0.00 87.69 60.59 772 4.184 16 0.796 4.980 unknown GCCause No GC

当您看到分配失败时,这意味着由于需要内存而启动了完整GC。

顺便说一句,jstat 是 JDK 发行版的一部分,因此必须安装它。

关于Java Berkeley DB DPL - 读取操作峰值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5152567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com