国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

java 進程是如何在Linux服務(wù)器上進行內(nèi)存分配的

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

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

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

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

java 進程是如何在Linux服務(wù)器上進行內(nèi)存分配的

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

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

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

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

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

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

以上就是java 進程是如何在Linux服務(wù)器上進行內(nèi)存分配的的詳細內(nèi)容,更多關(guān)于java 進程內(nèi)存分配的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: Java
相關(guān)文章:
主站蜘蛛池模板: 黄色美女网站免费看 | 一区二区欧美视频 | 在线免费观看成年人视频 | 奇米色88欧美一区二区 | 一区二区影院 | 亚洲欧美另类专区 | 久久精品成人一区二区三区 | 日韩特级毛片免费观看视频 | a级毛片网站 | 国产精品美女一级在线观看 | 国产亚洲人成网站在线观看不卡 | 中国精品视频一区二区三区 | 亚洲精品久久久久影院 | 欧美高清视频一区 | 久久精品一区二区影院 | 手机看片欧美 | 欧美xxxxbbb| 国产乱子伦视频大全 | 国产精品高清久久久久久久 | 在线成人精品国产区免费 | 亚洲综合图片人成综合网 | 成人男女18免费o | 男女视频在线免费观看 | 高清一区在线 | 日韩国产成人资源精品视频 | 国产日本亚洲欧美 | 欧美午夜三级我不卡在线观看 | 亚洲在线不卡 | 在线观看日本视频免费 | 在线播放亚洲视频 | 成人欧美一区二区三区黑人 | 国产一级毛片午夜 | 亚洲一级二级三级 | 久久精品免费观看国产软件 | 色综合精品| 国产欧美日韩精品在线 | 男女乱配视频免费观看 | avtt亚洲一区中文字幕 | 久久性妇女精品免费 | 国产成人高清一区二区私人 | 久久综合给会久久狠狠狠 |