我有各种在 Torquebox 上运行的 Rails 应用程序。有时,Torquebox 会在短时间内(可能 2-5 分钟)停止响应请求,并且日志将填满以下错误消息:
java.lang.OutOfMemoryError: Direct buffer memory
错误发生在不可预测的时间(通常是几天之间)。负载测试不会重现问题,并且无论如何在峰值负载期间不会发生问题。而且,与我过去看到的许多其他类型的内存错误不同,服务器实际上可以恢复并再次开始正常响应,而无需任何类型的重新启动或干预。
是否有任何常见的编码错误、错误配置或其他经常导致此错误的潜在问题?谷歌揭示了各种库(例如 Netty)的许多较低级别的 Java/垃圾收集类型问题,但我很想看看是否还有其他常见的地方可以查看。