Attaching to process ID 96921, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.51-b03
using thread-local object allocation.
Parallel GC with 4 thread(s)
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 1073741824 (1024.0MB)
NewSize = 671088640 (640.0MB)
MaxNewSize = 671088640 (640.0MB)
OldSize = 5439488 (5.1875MB)
NewRatio = 2
SurvivorRatio = 5
PermSize = 33554432 (32.0MB)
MaxPermSize = 85983232 (82.0MB)
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 480247808 (458.0MB)
used = 81462752 (77.68893432617188MB)
free = 398785056 (380.3110656738281MB)
16.962649416194733% used
From Space:
capacity = 95420416 (91.0MB)
used = 61444600 (58.59813690185547MB)
free = 33975816 (32.40186309814453MB)
64.39355703500601% used
To Space:
capacity = 95420416 (91.0MB)
used = 0 (0.0MB)
free = 95420416 (91.0MB)
0.0% used
PS Old Generation
capacity = 5767168 (5.5MB)
used = 90128 (0.0859527587890625MB)
free = 5677040 (5.4140472412109375MB)
1.5627774325284092% used
PS Perm Generation
capacity = 35127296 (33.5MB)
used = 35092152 (33.46648406982422MB)
free = 35144 (0.03351593017578125MB)
99.89995244723647% used
15721 interned Strings occupying 1939128 bytes.
您没有设置最小堆大小,从而允许旧的gen增长/缩小。自适应大小策略只影响新/旧gen边界。设置-xms1024m
。
考虑到你甚至不知道我怀疑你的其他参数的选择可能是消息不灵通。我建议设置高层目标(暂停时间、吞吐量、堆空闲率),让启发式发挥作用。
推荐阅读:热点GC调优指南
我正在调查EE应用程序上的性能问题,这些问题可能是由于垃圾收集器的优化程度不高造成的。 在查看在重载下收集的日志时,我偶然发现了以下发现: 按照这里的官方jstat留档,我们可以看到当前的旧代大小(OGC)已经达到了最大旧代大小(OGCMX)。然而,第一行告诉我们,“旧空间利用率占空间当前容量的百分比”(O)“仅”为88%。 我的问题是: 什么机制在jstat输出中将旧的生成限制设置为OGCMX?
问题内容: 我有时编写Python程序,这些程序很难确定执行前将使用多少内存。因此,有时我会调用一个Python程序,该程序试图分配大量RAM,从而导致内核大量交换并降低其他正在运行的进程的性能。 因此,我希望限制Python堆可以增长多少内存。达到限制后,程序可能会崩溃。最好的方法是什么? 如果重要的话,很多代码都用Cython编写,因此应该考虑在那里分配的内存。我还没有嫁给一个纯粹的Pytho
是否有任何工具可以转储旧一代的JVM堆? 换句话说,我如何判断一个物体是来自年轻一代还是老一代?
问题内容: 我收到以下错误: 问题答案: 以下是一些可用来更改堆大小的选项。
问题内容: 如何增加Java中的堆大小? 问题答案: 你可以在32位系统上增加到4GB。如果你使用的是64位系统,则可以更高。如果你选择不正确,无需担心,如果你在32位系统上要求5g,则Java会抱怨值无效并退出。 正如其他人发布的那样,使用cmd-line标志-例如 你可以通过键入java -X来获得完整列表(或者无论如何都接近完整列表)。 使用命令行选项可以增加JVM分配的堆大小。这里有3个选
我想检查我的应用程序是否很好地获得选项。 java进程在docker容器中运行。 为了做到这一点,我要找到所创建进程的最大堆大小。 null 假设(ngcmx+ogcmx)=()可以吗? https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html