亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

java 進程是如何在Linux服務器上進行內存分配的

瀏覽:15日期:2022-08-20 17:10:31

眾所周知,Java進程在啟動的時候我們可以通過 -Xms 和-Xmx來設置內存的上限和下限。直到我發現使用top命令監控的Java進程在-Xms設置4g的情況下占用的內存并不是4g,這就產生了一個疑問Linux服務器的內存到底是如何進行分配的。

于是乎,我查閱了一些知乎,課程以及Linux相關的書籍。這里分享并記錄的一下相關的知識。

在Linux上運行的進程不僅限于Java。都有一個概念,邏輯內存(Logic Memory),而物理機真是持有的內存,我們稱為 物理內存(Physic Memory)。

java 進程是如何在Linux服務器上進行內存分配的

進程在開始運行時并不會直接分配物理內存,進程只是傻乎乎的以為自己持有了內存,也就是邏輯內存。當程序運行需要內存分配的時候,Linux服務器會以頁的(Page)至小4k的方式分配,并一對一映射物理內存和邏輯內存的關系,看到了嗎這里其實用了代理的思想是得內存的分配進行了解耦。

這樣做的好處是什么呢? 1進程之間相互隔離 2進程自己認為占有了一段獨立連續的內存 3可以申請比物理內存更大的內存空間。

第三點怎么理解呢?其實Linux在這里設計了一種機制叫Swap 就是在進程分配的內存空間超過物理內存的時候,如果各個進程運行所占的內存真的有這么多,超過了物理內存就會觸發Swap,把不持有CPU的部分進程的內存數據和磁盤進行io數據交換。因為CPU一時間不可能超過所有占有的內存,所以這種優化就造就了能多申請一些內存,大概是原來內存的2-3倍,這就很可觀了,畢竟內存是非常貴的。

Swap雖然好,也帶來了一些問題。

比如頻繁的Swap,這會導致內存操作轉化為磁盤的的IO操作,拖慢應用進程的運行速度。所以說Swap在我的理解里屬于可以應急不使進程崩潰,適當使用可以減少成本,過分了不當人的使用就會被反噬的機制。

當然如果太不當人,進程還是會崩潰了,Swap是一個類似Buffer的機制,有大小的。超過設置的上限,Kernel內核就會觸發OOM Killer,殺死一部分進程騰空間。

以上就是java 進程是如何在Linux服務器上進行內存分配的的詳細內容,更多關于java 進程內存分配的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 欧美一级欧美一级在线播放 | 黄色一级毛片免费看 | 99久久精品费精品国产一区二区 | 久久久久日韩精品免费观看网 | 免费久| 91视频丝袜 | 噜噜噜在线视频 | 欧美一级爆毛片 | 国产私拍写真福利视频 | 亚洲国产资源 | 欧美日韩一区二区三区色综合 | 99国产在线观看 | 看看黄色毛片 | 黄网站色年片在线观看 | 久久精品免看国产 | 草久免费视频 | 99久在线观看 | 精品国产_亚洲人成在线高清 | 男女自偷自拍视频免费观看篇 | 欧洲第一区第二区第三区 | 特级淫片国产免费高清视频 | 国产v精品成人免费视频71sao | 国产精品久久天天影视 | 柠檬福利视频在线观看 | 国产一区二区不卡免费观在线 | 女性无套免费网站在线看 | 久久狠狠干 | 国产99高清一区二区 | 国产一区二区三区在线看 | 欧美xxxx69tube8护士 | 在线观看视频一区二区 | 国产欧美精品专区一区二区 | 天天影视色综合 | 成人黄色在线视频 | 手机看片国产欧美日韩高清 | 欧美黑人双插 | 真人毛片免费拍拍拍aa视频 | 国产精品第一页在线 | 久本草在线中文字幕亚洲欧美 | 成人毛片免费观看视频 | 国产成人yy免费视频 |