夸克斯。负载测试和内存利用率

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/