我安装了一个崩溃处理程序:
/proc/sys/kernel/core_pattern
将传入的coredump管道传输到文件,然后通过gdb提取堆栈跟踪。
问题是有时这些coredumps可能非常大(通常超过30GB)。在这些情况下,用户在应用程序挂起之前将coredump写入磁盘时等待并等待。
关于如何以非阻塞方式处理这些非常大的coredump的任何建议?我并不关心coredump本身,堆栈跟踪是有价值的。
我无法访问来源,因此https://serverfault.com/questions/627747/non-blocking-core-dump-on-linux等答案并非如此。
谢谢!
答案 0 :(得分:2)
我无法访问来源,因此https://serverfault.com/questions/627747/non-blocking-core-dump-on-linux等答案并非如此。
如果应用程序是动态关联的,您可以LD_PRELOAD
google coredumper,因此答案有点实用。
另一种可能的选择是http://github.com/tbricks/tbstack。
当然,为了把大部分内存丢弃而浪费30GB的RAM是浪费。