小编Gen*_*son的帖子

JVM崩溃,错误='无法分配内存'(错误= 12)

我的代码崩溃了这个错误消息

Executing "/usr/bin/java  com.utils.BotFilter"
OpenJDK 64-Bit Server VM warning: INFO: 
os::commit_memory(0x0000000357c80000, 2712666112, 0) failed; 
error='Cannot allocate memory' (errno=12)
Run Code Online (Sandbox Code Playgroud)

Java Runtime Environment没有足够的内存来继续.本机内存分配(malloc)无法为提交保留内存分配2712666112字节.包含更多信息的错误报告文件保存为:/ tmp/jvm-29955/hs_error.log`

以下是生成的内容hs_error.log file:

https://pastebin.com/yqF2Yy4P

崩溃日志中的这一行对我来说很有趣:

Memory: 4k page, physical 98823196k(691424k free), swap 1048572k(0k free)
Run Code Online (Sandbox Code Playgroud)

这是否意味着机器有内存但交换空间不足?

这是崩溃日志中的meminfo,但我真的不知道如何解释它,比如MemFree和MemAvailable之间有什么区别?这个过程需要多少内存?

/proc/meminfo:

MemTotal:       98823196 kB
MemFree:          691424 kB
MemAvailable:    2204348 kB
Buffers:          145568 kB
Cached:          2799624 kB
SwapCached:       304368 kB
Active:         81524540 kB
Inactive:       14120408 kB
Active(anon):   80936988 kB
Inactive(anon): 13139448 kB
Active(file):     587552 kB
Inactive(file):   980960 kB
Unevictable:           0 kB …
Run Code Online (Sandbox Code Playgroud)

java memory-management

11
推荐指数
3
解决办法
2万
查看次数

标签 统计

java ×1

memory-management ×1