首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以合理地期望在AWS -Xmx Ubuntu服务器上使用什么Java设置?

我可以合理地期望在AWS -Xmx Ubuntu服务器上使用什么Java设置?
EN

Server Fault用户
提问于 2019-05-09 18:19:24
回答 1查看 1.1K关注 0票数 0
  • 你有什么经验?你能证实我的实验结果吗?
  • 我通常可以使用total RAM - 600 MB0.4 * total RAM吗?
  • 还是它总是不断地尝试和错误,并希望它足够低?

上下文:我正在尝试在T3实例上设置jenkins,尝试使用UbuntuServer16.04和18.04。

我从一个t3.micro实例(1GBRAM)开始,但是我发现OOM杀手杀死了我的java进程,因为我使用的不仅仅是-Xmx400m,这似乎有点低。我原本希望能够使用更多类似-Xmx750m的工具。

这是否意味着Ubuntu需要大约600 MB才能工作?

问题是,即使我将-Xms和-Xmx设置为非常高的值(如700m ),java进程也会启动。只有在我向网站提出第一次请求时,这个过程才会被终止。

我现在用一个t3.small实例(2GB内存)进行实验,但我再次不确定要配置什么。

在Windows上,这是一种确定性的:我将-Xms-Xmx设置为相同的值。如果服务无法启动,则值太高。如果服务成功启动,则值很好,内存将保留给我的进程。

一些背景:

EN

回答 1

Server Fault用户

发布于 2019-05-09 18:53:30

如果您想在有限的资源环境中在Linux上运行任何应用程序,您应该确保了解Linux上的内存是如何实际工作的。听起来很刺耳,但这确实是了解幕后所发生的事情的唯一途径。

如果OOM杀手被触发,这意味着你的内存一开始就用完了。如果这种情况发生在-Xmx400中,那么这就是特定应用程序在特定环境中执行它所做的特定工作的限制。

在考虑将vm.overcommit_memory设置为非默认值之前,请确保您真正理解了分配内存和使用内存之间的区别(就linux虚拟内存系统而言)。否则,您只需确保您永远无法有效地使用系统的内存。

话虽如此:在80%-90%的用例中,缺省值通常是好的。对于Jenkins来说,内核中的默认值实际上应该运行得很好。您将希望内核过度提交可用内存(这是默认的),并使其在实际运行时触发OOM (也是默认的)。

如果这不适用于可用的内存,您将需要更多的内存。此外,设置应用程序不需要的更大的-Xmx值也被认为是有害的,但是您询问的是Linux内存,而不是Java内存:)

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/966608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档