微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何微调JVM配置以减少最大线程堆栈大小?

如何解决如何微调JVM配置以减少最大线程堆栈大小?

我想为Spring-Boot Web应用程序更改Java中的认线程堆栈大小。我该如何更改?还是我需要使用哪个参数来更改此值?

第二个问题是,我可以在运行时以编程方式更改它吗?

解决方法

是的,您可以这样做。基本上,您可以在应用程序中配置线程的最大堆栈大小。

为此,您可以使用名为ss的选项来调整最大堆栈大小。通常使用-X{option}传递VM选项。因此,您可以使用java -Xss1M将最大堆栈大小设置为1M

另一个示例是java -Xss1048576,它将最大线程大小设置为大约1 MB

还请查看下面的两个博客,以获取更多信息和其他标记。

-> https://www.baeldung.com/jvm-configure-stack-sizes

-> https://docs.gigaspaces.com/latest/production/production-jvm-tuning.html

,

我想添加一些非常有用的资源:

默认值为每个线程1M,但是幸运的是情况还不错。操作系统延迟分配内存页,即在第一次使用时分配内存页,因此实际的内存使用量会低得多(每个线程堆栈通常为80-200 KB)。

在JDK 11/12中[最小线程堆栈大小]为:min_stack_size = 40 KB +(1 + 2 + 1 + 20)* 4 KB = 136 KB

如果我尝试设置一个较低的值,则可能会收到错误消息:

/usr/java/jdk-12.0.2/bin/java -Xss100k

指定的Java线程堆栈大小太小。指定至少136k

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。