夸克斯。负载测试和内存利用率
Quarkus. Load test and memory utilisation
我创建了一个 简单 服务,该服务执行 4 次 HTTP 调用和 4 次数据库调用 以收集一些数据并将其传递给 HTTP
响应为 JSON
.
当我启动应用程序时(native,没有 docker),我看到它消耗 7MB
,有时 15MB
有时 30MB。好
当我开始加载测试时,
每 10 毫秒发送 1 个请求,总共 100 个请求.
我注意到内存消耗立即达到 200MB。然后再经过 5-6 次测试后达到 400MB。 (与 Spring 启动版本一样多)。
问题是:是否应该是这样?
它是否应该尝试对内存进行极简主义(对于它的原生 v)并自行清理,至少在 n 分钟左右之后?有设置吗?
我不是 GraalVM 本机图像方面的专家,但通过使用 "Hello world" 应用程序进行的快速本地测试,我看到了与您相似的数字。似乎如果您不对最大堆大小设置限制,则会自动选择一个(不确定标准)。您可以使用 -XX:+PrintGC
启动您的应用程序以查看内存 activity。然后,您可以尝试使用 -Xmx
(例如 -Xmx32m
将最大堆大小设置为 32 MB)——您为应用程序提供的内存越多,垃圾收集周期的频率就越低。本文展示了一些更有趣的 GC 选项:https://e.printstacktrace.blog/graalvm-heap-size-of-native-image-how-to-set-it/
我创建了一个 简单 服务,该服务执行 4 次 HTTP 调用和 4 次数据库调用 以收集一些数据并将其传递给 HTTP
响应为 JSON
.
当我启动应用程序时(native,没有 docker),我看到它消耗 7MB
,有时 15MB
有时 30MB。好
当我开始加载测试时, 每 10 毫秒发送 1 个请求,总共 100 个请求.
我注意到内存消耗立即达到 200MB。然后再经过 5-6 次测试后达到 400MB。 (与 Spring 启动版本一样多)。
问题是:是否应该是这样?
它是否应该尝试对内存进行极简主义(对于它的原生 v)并自行清理,至少在 n 分钟左右之后?有设置吗?
我不是 GraalVM 本机图像方面的专家,但通过使用 "Hello world" 应用程序进行的快速本地测试,我看到了与您相似的数字。似乎如果您不对最大堆大小设置限制,则会自动选择一个(不确定标准)。您可以使用 -XX:+PrintGC
启动您的应用程序以查看内存 activity。然后,您可以尝试使用 -Xmx
(例如 -Xmx32m
将最大堆大小设置为 32 MB)——您为应用程序提供的内存越多,垃圾收集周期的频率就越低。本文展示了一些更有趣的 GC 选项:https://e.printstacktrace.blog/graalvm-heap-size-of-native-image-how-to-set-it/