最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年11月23日 08:33:32   作者:zhqqqq  
這篇文章主要介紹了java 進(jìn)程是如何在Linux服務(wù)器上進(jìn)行內(nèi)存分配的,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下

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

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

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

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

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

第三點怎么理解呢?其實Linux在這里設(shè)計了一種機(jī)制叫Swap 就是在進(jìn)程分配的內(nèi)存空間超過物理內(nèi)存的時候,如果各個進(jìn)程運(yùn)行所占的內(nèi)存真的有這么多,超過了物理內(nèi)存就會觸發(fā)Swap,把不持有CPU的部分進(jìn)程的內(nèi)存數(shù)據(jù)和磁盤進(jìn)行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)用進(jìn)程的運(yùn)行速度。所以說Swap在我的理解里屬于可以應(yīng)急不使進(jìn)程崩潰,適當(dāng)使用可以減少成本,過分了不當(dāng)人的使用就會被反噬的機(jī)制。

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

以上就是java 進(jìn)程是如何在Linux服務(wù)器上進(jìn)行內(nèi)存分配的的詳細(xì)內(nèi)容,更多關(guān)于java 進(jìn)程內(nèi)存分配的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java讀取文件方法匯總

    Java讀取文件方法匯總

    這篇文章主要為大家詳細(xì)介紹了Java讀取文件方法,按字節(jié)讀取文件內(nèi)容、按字符讀取文件內(nèi)容、隨機(jī)讀取文件內(nèi)容等,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Springboot項目出現(xiàn)java.lang.ArrayStoreException的異常分析

    Springboot項目出現(xiàn)java.lang.ArrayStoreException的異常分析

    這篇文章介紹了Springboot項目出現(xiàn)java.lang.ArrayStoreException的異常分析,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Java實體類不要使用基本類型的知識點總結(jié)

    Java實體類不要使用基本類型的知識點總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于Java包裝類之實體類不要使用基本類型的知識點內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • Springcloud?feign傳日期類型參數(shù)報錯的解決方案

    Springcloud?feign傳日期類型參數(shù)報錯的解決方案

    這篇文章主要介紹了Springcloud?feign傳日期類型參數(shù)報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Idea servlet映射方法優(yōu)缺點對比

    Idea servlet映射方法優(yōu)缺點對比

    這篇文章主要介紹了Idea servlet映射方法優(yōu)缺點對比,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • SpringBoot集成antlr實現(xiàn)詞法和語法分析

    SpringBoot集成antlr實現(xiàn)詞法和語法分析

    Antlr4 是一款強(qiáng)大的語法生成器工具,可用于讀取、處理、執(zhí)行和翻譯結(jié)構(gòu)化的文本或二進(jìn)制文件,基本上是當(dāng)前 Java 語言中使用最為廣泛的語法生成器工具,本文給大家介紹了SpringBoot集成antlr實現(xiàn)詞法和語法分析,需要的朋友可以參考下
    2024-06-06
  • java項目啟動失敗的問題及解決

    java項目啟動失敗的問題及解決

    這篇文章主要介紹了java項目啟動失敗的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • JAVA生成pdf文件的實操教程

    JAVA生成pdf文件的實操教程

    PDF是可移植文檔格式,是一種電子文件格式,具有許多其他電子文檔格式無法相比的優(yōu)點,下面這篇文章主要給大家介紹了關(guān)于JAVA生成pdf文件的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • Jeecg-Boot異常處理'jeecg-boot.QRTZ_LOCKS'?doesn't?exist問題

    Jeecg-Boot異常處理'jeecg-boot.QRTZ_LOCKS'?doesn'

    這篇文章主要介紹了Jeecg-Boot異常處理'jeecg-boot.QRTZ_LOCKS'?doesn't?exist問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java之SpringBoot定時任務(wù)案例講解

    Java之SpringBoot定時任務(wù)案例講解

    這篇文章主要介紹了Java之SpringBoot定時任務(wù)案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評論

湄潭县| 出国| 绥芬河市| 龙南县| 崇礼县| 梨树县| 汉沽区| 桐梓县| 开平市| 新余市| 南昌县| 茂名市| 临西县| 大姚县| 夏津县| 湾仔区| 龙海市| 融水| 临桂县| 鲜城| 确山县| 大厂| 浑源县| 电白县| 繁峙县| 桐庐县| 舞钢市| 鹤峰县| 吴川市| 茂名市| 武隆县| 旺苍县| 阳信县| 兰考县| 柘城县| 湖口县| 乌兰察布市| 云龙县| 廉江市| 夏邑县| 藁城市|