应用程序服务器最大内存限制

发布于 2024-10-24 05:12:03 字数 191 浏览 3 评论 0原文

服务器(Jboss、Tomcat 等)可以使用多少内存?例如,如果服务器有128GB内存,它可以使用至少100GB吗?我正在将这些参数用于本地:

-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512

Can这些参数配置为使用100GB吗?

How much memory can a server (Jboss, Tomcat etc...) use? For example if the server has 128gb memory, can it use at least 100gb of it? I'm using these parameters for my local:

-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512

Can these parameters configured for usage of 100gb?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

你对谁都笑 2024-10-31 05:12:03

我们使用它来运行 24GB 64 位 JVM,GC 暂停时间为亚秒级,同时每秒处理 100 多个页面请求:

-Xms24g -Xmx24g -XX:MaxPermSize=256m -XX:NewRatio=4 -XX:SurvivorRatio=8    
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+DisableExplicitGC  
-XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSClassUnloadingEnabled  
-XX:+CMSScavengeBeforeRemark -XX:CMSInitiatingOccupancyFraction=68

如果您的服务器有内存,那么您没有理由不能指定 100GB。由于我们使用的内存低于 32GB,因此我们还使用 -XX:+UseCompressedOops 来减少 64 位寻址的开销。此外,我们使用 -XX:+UseLargePages 来获得更好的性能,但是您必须首先为您的操作系统启用大页面支持。

We use this to run a 24GB 64-bit JVM with sub-second GC pauses while serving 100+ page requests per second:

-Xms24g -Xmx24g -XX:MaxPermSize=256m -XX:NewRatio=4 -XX:SurvivorRatio=8    
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+DisableExplicitGC  
-XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSClassUnloadingEnabled  
-XX:+CMSScavengeBeforeRemark -XX:CMSInitiatingOccupancyFraction=68

There shouldn't be any reason you can't specify 100GB if you server has the memory. Since we're using under 32GB we also use -XX:+UseCompressedOops to reduce the overhead of 64-bit addressing. Additionally we use -XX:+UseLargePages for better performance, however you have to enable large page support for your OS first.

莫多说 2024-10-31 05:12:03

正如 Mat 所说,这些巨大的堆可能会导致垃圾收集出现问题,但是对于一个大堆,您可能正在使用多核机器,您可以使用基本上在自己的核心上运行的收集器。

否则 -Xm 接受单位“g”,因此您可以编写 -Xmx100g

Java 手册页(在 OS X 上)说:

在 Mac OS X 平台上,上部
运行时对该值的限制
32 位模式 (-d32) 大约为
2100m 减去间接费用,以及
减去开销约 127 吨
在 64 位模式下运行时的数量
(-d64)。在 Solaris 7 和 Solaris 8 SPARC 上
平台,此上限
值约为 4000m
减去管理费用。在 Solaris 2.6 上
和 x86 平台,上限为
约2000m减去
间接费用金额。在Linux平台上,上层
限制约为 2000m 减去
间接费用金额。

As Mat said, those huge heaps could get problematic with Garbage Collection, but then with a large heap, you probably are using a multi-core machine, where you can use a collector that basically runs on a core of its own.

Otherwise -Xm accepts a unit of 'g' so you can write -Xmx100g

Manpage for java (on OS X ) says:

On Mac OS X platforms, the upper
limit for this value when running in
32-bit mode (-d32) is approximately
2100m minus overhead amounts, and
approximately 127t minus overhead
amounts when running in 64-bit mode
(-d64). On Solaris 7 and Solaris 8 SPARC
platforms, the upper limit for this
value is approximately 4000m
minus overhead amounts. On Solaris 2.6
and x86 platforms, the upper limit is
approximately 2000m minus
overhead amounts. On Linux platforms, the upper
limit is approximately 2000m minus
overhead amounts.

萝莉病 2024-10-31 05:12:03

对于这种堆大小,您可能会遇到(可能)剧烈的 GC 暂停。
(除此之外,当然,只要您运行的是 64 位虚拟机,我就不知道硬限制)

与您的问题没有直接关系,但我发现了这个 关于 Ehcache 的 Google TechTalks 视频 很有趣 - Greg Luck 讨论了其中的堆大小问题。

You'll run into (probably) dramatic GC pauses for that kind of heap size.
(Aside from that, I don't know of hard limitations as long as you're running a 64bit VM of course)

Not directly related to your question, but I found this Google TechTalks video on Ehcache interesting - Greg Luck talks about heap size issues in there.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文