吞吐量是您的应用程序在给定时间段内完成的生产工作量。这就带来了一个问题,什么是生产性工作?什么是非生产性工作?
生产性工作:这基本上是您的应用程序在处理业务花费的时间。
非生产性工作:这基本上是您的应用程序在整理工作(主要是垃圾收集)上花费的时间。
假设您的应用程序运行了60分钟。在这60分钟中,假设2分钟用于GC活动。
这意味着应用程序在GC活动上花费了3.33%(即2/60 * 100),这意味着应用程序吞吐量将变为96.67%(即100-3.33)。
是什么导致吞吐量下降?
当应用程序遇到以下问题之一时,其吞吐量将降低:
1. GC长时间停顿
当应用程序遇到长时间的GC暂停时,吞吐量将下降。要了解导致长时间GC暂停的原因以及如何减少它们
2.内存泄漏
当应用程序遇到内存泄漏时,JVM将开始重复调用Full GC。当重复调用Full GC时,应用程序将在垃圾回收上花费更多的时间
3.连续 Full GC
有时,Full GC可能会在您的应用程序中连续运行。当它们连续运行时,由于Full GC占用大量时间,因此应用程序的吞吐量会降低
4.应用程序等待CPU和IO资源
如果在运行应用程序的服务器上运行了多个进程,则可能会因为CPU和I / O周期而使应用程序崩溃。在这种情况下,应用程序的吞吐量也会下降
网友评论