在 Apache Karaf 下设置 Java 堆大小
如果这是重复的,我深表歉意,但我似乎无法在任何地方找到这个问题的答案。
使用 Apache Karaf 时增加最大 Java 堆大小的最佳方法是什么?
目前,我修改了 karaf.bat 文件中的以下行:
set DEFAULT_JAVA_OPTS=-server -Xmx
。
我觉得修改bat文件不是最好的解决方案。此外,似乎没有一个配置文件有地方可以放置它。
谢谢
I apologize if this is a duplicate, but I can't seem to find this answered anywhere.
What is the best way to increase the maximum Java heap size when using Apache Karaf?
Currently, I modified the following line in the karaf.bat file:
set DEFAULT_JAVA_OPTS=-server -Xmx<NewMaxValue>M
.
I feel like modifying the bat file is not the best solution. Additionally, none of the config files seem to have a place to put this.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
(至少)在 karaf 2.2.10 中:
如果通过
bin/start
运行 karaf正如 FordGuo 指出的,可以在
bin/setenv
文件中配置内存值:如果将 karaf 作为服务运行 (
karaf-service
)在这种情况下,任何导出的变量似乎都会被忽略。
最大 java 堆大小可以在
etc/karaf-wrapper.conf
中定义:(At least) in karaf 2.2.10:
If running karaf through
bin/start
As Ford Guo pointed out, memory values could be configured in the
bin/setenv
file:If running karaf as a service (
karaf-service
)In this case any exported variable seems to be ignored.
The maximum java heap size could be defined in the
etc/karaf-wrapper.conf
:更新到 Karaf 2.2.3 会显示一个新的 bat 文件。
这意味着只需创建一个系统变量即可,而无需修改 bat 文件。
Updating to Karaf 2.2.3 reveals a new bat file.
This means one can just create a system variable instead of modifying the bat file.
这就是我在你的情况下会做的。
我看到人们建议使用服务启动,它允许您定义命令行参数。
我喜欢使用网络控制台,因此我对其进行了更改,以便它为它启动的应用程序读取 karaf.vmoptions 文件。这需要修补代码,但事实证明它非常有用。
That what I would do in your situation.
I have seen people suggest using a service start which allows you define the the command line arguments.
I liked using the webconsole so I changed it so it read a karaf.vmoptions file for the applications it starts. This requires patching the code, but it turned out to be very useful.
在bin目录下,有一个setenv(.bat)文件,
您可以在那里设置最大/最小内存。
in the bin directory ,there is a setenv(.bat) file,
you can set the max/min mem in there.
setenv
没有为我加载(使用 karaf 包装器),所以我将其放入包装器配置中:(/opt/apache-servicemix-6.1.3/etc/karaf-wrapper.conf
在我的例子中)在重新启动之前检查:
setenv
wasnt loaded for me (using the karaf wrapper), so I put it into the wrapper config: (/opt/apache-servicemix-6.1.3/etc/karaf-wrapper.conf
in my case)Check prior to the restart: