【发布时间】:2014-11-10 05:45:36
【问题描述】:
我们目前遇到的问题是我们得到如下 OutOfMemoryError
java.lang.OutOfMemoryError: 无法创建新的本地线程
这是一个 spring 集成应用程序
当我进行堆转储时,我注意到在服务器刚刚启动后检查以下“From Space”几乎总是 99% 已满。以下所有统计信息都是在服务器启动后立即进行的。
Attaching to process ID 24167, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 20.2-b06
using thread-local object allocation.
Parallel GC with 4 thread(s)
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 1887436800 (1800.0MB)
NewSize = 1310720 (1.25MB)
MaxNewSize = 17592186044415 MB
OldSize = 5439488 (5.1875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 536870912 (512.0MB)
MaxPermSize = 1073741824 (1024.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 488112128 (465.5MB)
used = 294023920 (280.40306091308594MB)
free = 194088208 (185.09693908691406MB)
60.23696260216669% used
From Space:
capacity = 44695552 (42.625MB)
used = 44676144 (42.60649108886719MB)
free = 19408 (0.0185089111328125MB)
99.95657733458577% used
To Space:
capacity = 70516736 (67.25MB)
used = 0 (0.0MB)
free = 70516736 (67.25MB)
0.0% used
PS Old Generation
capacity = 715849728 (682.6875MB)
used = 16172256 (15.423065185546875MB)
free = 699677472 (667.2644348144531MB)
2.2591691199189783% used
PS Perm Generation
capacity = 536870912 (512.0MB)
used = 74156104 (70.72077178955078MB)
free = 462714808 (441.2792282104492MB)
13.812650740146637% used
我假设这是尝试创建本机线程时出现内存不足错误的最可能原因。
此外,当我通过“top”命令检查进程使用的内存时,它从来都不是 100%,大约是 30% 到 40%。
任何建议
问候, 米琳达
【问题讨论】:
-
top显示的内存使用量是多少(以 MB 为单位)?您使用的是 32 位 JVM 吗?
标签: java multithreading memory jvm spring-integration