Spring 在负载测试下从 dispatcherServlet 启动应用程序错误
Spring boot application error from dispatcherServlet under load testing
声明:
这个问题不像 NullPointerException 或如何处理 NPE 那么简单。它是关于多线程编程的。我确实知道如何捕获异常,问题是我无法定位此异常的来源,甚至无法弄清楚问题是性能瓶颈还是逻辑错误。所以我来这里寻求你的帮助。最后,我找到了这个错误并在我自己的答案中解决了它。
我开发了一个 REST API 用于在 Spring 引导应用程序中上传块并通过了功能测试。以下是版本信息。
Spring Boot 1.5.8 with Embedded Tomcat
现在我想评估一下使用 JMeter 进行负载测试时的性能。我设计了测试计划并成功地在轻负载下对其进行了验证。这是我关于线程属性的测试计划,
Number of Threads (users): 3
Ramp-Up Period (in seconds): 1
Loop Count: 3
但是当负载增加到10个线程甚至更多时,测试报告显示500类型的一些错误。服务器打印了一些错误
2018-01-20 20:34:23.744 ERROR 57809 --- [o-8083-exec-346] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] i
n context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException: null
是服务器瓶颈了还是逻辑上出了问题?以及如何调试和跟踪这个问题?
谢谢。
我明白了。我在服务器的日志文件中找到了完整的异常堆栈跟踪。控制台错过了完整的堆栈信息。它在一开始就抛出了完整的信息,然后就像我在问题中发布的那样只打印了一个句子,这让我很难调试这个问题。无论如何,谢谢@JB Nizet,你是对的,我在那里有一个错误。
声明: 这个问题不像 NullPointerException 或如何处理 NPE 那么简单。它是关于多线程编程的。我确实知道如何捕获异常,问题是我无法定位此异常的来源,甚至无法弄清楚问题是性能瓶颈还是逻辑错误。所以我来这里寻求你的帮助。最后,我找到了这个错误并在我自己的答案中解决了它。
我开发了一个 REST API 用于在 Spring 引导应用程序中上传块并通过了功能测试。以下是版本信息。
Spring Boot 1.5.8 with Embedded Tomcat
现在我想评估一下使用 JMeter 进行负载测试时的性能。我设计了测试计划并成功地在轻负载下对其进行了验证。这是我关于线程属性的测试计划,
Number of Threads (users): 3
Ramp-Up Period (in seconds): 1
Loop Count: 3
但是当负载增加到10个线程甚至更多时,测试报告显示500类型的一些错误。服务器打印了一些错误
2018-01-20 20:34:23.744 ERROR 57809 --- [o-8083-exec-346] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] i
n context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException: null
是服务器瓶颈了还是逻辑上出了问题?以及如何调试和跟踪这个问题?
谢谢。
我明白了。我在服务器的日志文件中找到了完整的异常堆栈跟踪。控制台错过了完整的堆栈信息。它在一开始就抛出了完整的信息,然后就像我在问题中发布的那样只打印了一个句子,这让我很难调试这个问题。无论如何,谢谢@JB Nizet,你是对的,我在那里有一个错误。