如何解决如何微调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 举报,一经查实,本站将立刻删除。