我的代码崩溃了这个错误消息
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:
崩溃日志中的这一行对我来说很有趣:
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)