java - 如何以编程方式检测 java.lang.OutOfMemoryError: Direct buffer memory to create a java heap dump?
问题描述
从 linux 日志文件中,记录了“java.lang.OutOfMemoryError: Direct buffer memory”异常。如何捕获异常,以便创建 Java 进程的堆转储?我还需要知道发生异常时如何重新启动 java 程序。但是,我将为此发布另一个问题。顺便说一句,Java 工具选项“-XX:+HeapDumpOnOutOfMemoryError”不会在直接内存异常上创建堆转储。
9 月 20 日 23:02:55 CKM01204505062-A 控制路径 [128819]:2021-09-20 23:02:55.266 [] [INFO] [com.emc.bedrock.http.HttpVerticle|vert.x-eventloop-thread -3] 请求 ID:2c7633a4-db9c-4ec5-b4ca-c93c47512384 在 4 毫秒内完成。 9 月 20 日 23:02:55 CKM01204505062-A 控制路径 [128199]:线程“iothread-2”中的异常 java.lang.OutOfMemoryError:直接缓冲内存 9 月 20 日 23:02:55 CKM01204505062-A 控制路径 [128199]:在 java.nio.Bits.reserveMemory(Bits.java:695) 9 月 20 日 23:02:55 CKM01204505062-A 控制路径 [128199]:在 java.nio.DirectByteBuffer.(DirectByteBuffer.java:123) 9 月 20 日 23:02:55 CKM01204505062-A 控制路径 [128199]:在 java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311) 9 月 20 日 23:02:55 CKM01204505062-A 控制路径 [128199]:在 zmq.DecoderBase.(DecoderBase.java:35) 9 月 20 日 23:02:55 CKM01204505062-A 控制路径 [128199]:在 zmq.V1Decoder.(V1Decoder.java:21) 9 月 20 日 23:02:55 CKM01204505062-A 控制路径 [128199]:在 zmq.StreamEngine.newDecoder(StreamEngine.java:102) 9 月 20 日 23:02:55 CKM01204505062-A 控制路径 [128199]:在 zmq.StreamEngine.handshake(StreamEngine.java:549) 9 月 20 日 23:02:55 CKM01204505062-A 控制路径 [128199]:在 zmq.StreamEngine.inEvent(StreamEngine.java:278) 9 月 20 日 23:02:55 CKM01204505062-A 控制路径 [128199]:在 zmq.IOObject.inEvent(IOObject.java:86) 9 月 20 日 23:02:55 CKM01204505062-A 控制路径 [128199]:在 zmq.Poller.run(Poller.java:228) 9 月 20 日 23:02:55 CKM01204505062-A 控制路径 [128199]:在 java.lang.Thread.run(Thread.java:748)
解决方案
实际上,我在以下位置找到了检测直接内存不足异常的答案: how to generate thread dump java on out of memory error
推荐阅读
- reactjs - 通过调用函数在材料表中添加行
- javascript - 带有 Axios 的 Cloudfront Trace 被 Brave Browser 阻止
- sql - 将缓冲区添加到现有表和空间连接
- nginx - Nginx 反向代理 net::ERR_HTTP2_PROTOCOL_ERROR
- apache2 - 无法在 RaspberryPi 4 上启动 Apache2 服务器
- angular - 将 Angular 从 10.1 更新到 11.0/12.0 后,Karma/Jasmine 测试中断
- google-apps-script - Google Script CSV Downloader Project - 如何指定文件夹
- javascript - 矢量瓦片集在较低缩放级别下不准确
- c# - 在 ASP.NET 中显示从服务器到客户端的文件
- java - 为什么我不能使用 Java 反射 API 访问私有方法?