Java 找到谁(什么)杀死了我的进程

Java 找到谁(什么)杀死了我的进程,java,linux,process,signals,kill,Java,Linux,Process,Signals,Kill,当我从bash脚本运行java程序时,经过一段时间后,我收到一条消息: MyProgram.bash: line 30: 4388 Killed 我将bash的一个参数设为最大值: ulimit -Ss unlimited ulimit -Sc unlimited ulimit -Sn 4096 但是当我在执行后使用CTRL+C时,我有一个错误: OpenJDK 64-Bit Server VM warning: Exception java.lang.OutOfMemoryError o

当我从bash脚本运行java程序时,经过一段时间后,我收到一条消息:

MyProgram.bash: line 30:  4388 Killed
我将bash的一个参数设为最大值:

ulimit -Ss unlimited
ulimit -Sc unlimited
ulimit -Sn 4096
但是当我在执行后使用CTRL+C时,我有一个错误:

OpenJDK 64-Bit Server VM warning: Exception java.lang.OutOfMemoryError occurred dispatching signal SIGINT to handler- the VM may need to be forcibly terminated
我添加了这个信息,当我在另一台机器上用相同的参数运行相同的程序时,我没有这个异常! 我用这些参数运行程序(内存中有5Go)


我的算法占用大量内存,因为我使用序列化。那么,为什么我已经删除了消息,而不是异常作为
OutOfMemoryError
?我能做些什么来解决这个问题?为什么我在另一台机器上使用相同的参数运行它时,它工作了?

请重新阅读该错误消息:

OpenJDK 64位服务器VM警告:发生异常java.lang.OutOfMemoryError,将信号SIGINT发送到处理程序-可能需要强制终止VM


如果OpenJDK无法正确处理中断信号(因为它完全没有内存),它可能会自行终止。

请重新阅读该错误消息:

OpenJDK 64位服务器VM警告:发生异常java.lang.OutOfMemoryError,将信号SIGINT发送到处理程序-可能需要强制终止VM


如果OpenJDK无法正确处理中断信号(因为它完全没有内存),它可能会自行终止。

如果进程因内存不足、Segfault或导致Linux终止它的其他原因而终止,您将在dmesg和/或/var/log/dmesg或/var/log/messages日志文件中找到stacktrace的问题描述。尝试在linux控制台键入dmesg

# dmesg
[4374940.147496] php-fpm[15522]: segfault at 10000004d8 ip 00000010000004d8 sp 00007ffff9d41428 error 14 in libnss_dns.so.2[7ffe4d5a1000+5000]
[4375020.428429] soffice.bin[23336]: segfault at 48 ip 00007f8d63c566c0 sp 00007ffff529cc88 error 4 in libsvllo.so[7f8d63bb1000+108000]

如果进程因内存不足、Segfault或导致Linux终止它的其他原因而终止,您将在dmesg和/或/var/log/dmesg或/var/log/messages日志文件中找到stacktrace的问题描述。尝试在linux控制台键入dmesg

# dmesg
[4374940.147496] php-fpm[15522]: segfault at 10000004d8 ip 00000010000004d8 sp 00007ffff9d41428 error 14 in libnss_dns.so.2[7ffe4d5a1000+5000]
[4375020.428429] soffice.bin[23336]: segfault at 48 ip 00007f8d63c566c0 sp 00007ffff529cc88 error 4 in libsvllo.so[7f8d63bb1000+108000]

但是为什么当我在另一台机器上用相同的参数运行相同的程序时,这就是工作?也许这两个虚拟机之间有差异?它们的内存量是否相同。但是为什么当我在另一台机器上用相同的参数运行相同的程序时,这是工作吗?也许这两个虚拟机之间存在差异?它们的内存量是否相同。dmesg、消息或安全文件上没有任何内容,但我的java应用程序被操作系统杀死。原因可能是什么?PS:我的服务器在Centos OST上运行dmesg、消息或安全文件上没有任何内容,但我的java应用程序被操作系统杀死。原因可能是什么?PS:我的服务器在Centos上运行