首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何增加交换大小允许我增加堆大小?

如何增加交换大小允许我增加堆大小?
EN

Stack Overflow用户
提问于 2016-01-18 15:26:40
回答 1查看 1.9K关注 0票数 1

我有一个ubuntu服务器,其中我有8GB的RAM。当我试图将堆大小设为8GB时,我的web服务器(Weblogic)不会启动。但是如果我将交换大小增加到11 GB,webserver就启动了。

那么,我的问题是,在增加交换大小之后,如何将8GB堆大小分配给我的web服务器(当我有8GB内存,其中操作系统需要1到2GB)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-18 15:31:25

做。不。这样做。

多点记忆。

Java和交换做。不。混合。Java和交换就像“横穿流”一样糟糕。

Java堆的一部分将被交换掉,然后Java将GC,这将严重地破坏盒子,而堆的一部分仍将被交换掉,Java将再次GC。

冲洗和重复,直到你最终杀死-9 Weblogic。

得到更多的记忆,否则就不用了。交换不是一种选择。

增编:

您的机器有“虚拟内存”(VM)。通过添加交换,可以扩展VM。当您拥有比实际内存更多的VM时,机器将将不活动的内存页“交换”到交换空间,然后“交换在”希望从交换空间激活到RAM的页。如果您有一堆空闲的进程很少需要时间,这并不是非常可怕的。

但是Java放大了这个问题。当您耗尽物理RAM时,会将其中一些RAM交换到磁盘上。当其中一些RAM是Java堆时,当垃圾收集器启动时,您就会遇到一个大问题。因为,通常情况下,GC会触及堆的每个页面。这意味着所有的堆页面都需要是“活动的”,因此,“交换了”。

但如果他们不适合,那么你有一个问题,像8益智。将内存从磁盘中移出的地方。这叫鞭打。

一个交换的JVM堆,即GC,是最坏情况的教科书案例。

机器允许您分配额外的内存,因为它认为您有更多的内存,因为您的虚拟内存(物理RAM +交换)更大。

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

https://stackoverflow.com/questions/34858289

复制
相关文章

相似问题

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