亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

linux swap 沒有開啟,但是進程仍然有在使用虛擬內存,這是為什么?

linux swap 沒有開啟,但是進程仍然有在使用虛擬內存,這是為什么?

鳳凰求蠱 2018-08-23 17:48:08
阿里云服務器上開啟了不少服務,用top命令查看內存使用情況發現KiB Swap: 0 total, 0 free, 0 used表明系統沒有打開swap分區。下面的進程使用了很大的虛擬內存例如elastic使用了16個G的虛擬內存。為什么在沒有打開swap分區的情況下進程仍然在使用虛擬內存?虛擬內存使用了這么多是不是表明系統內存不足?
查看完整描述

2 回答

?
雨丶辰

TA貢獻2條經驗 獲得超1個贊

應該是把 Linux 系統的“虛擬內存”和 進程的“虛擬內存”混淆了。

Linux 的“虛擬內存”就是硬盤上的一塊空間,被稱為 swap。在內存足夠時,通常系統是不會需要用到這塊“虛擬內存”空間進行置換,swap 未啟動也沒關系。

而進程的 VIRT (Virtual Memory)指標,實際上指的是一個進程需要占用內存的最大集(包括? malloc/calloc? ?系列函數申請的內存、堆/棧需要的內存等等)。但在實際運行中并不是每個時刻都需要這么多內存的,RES (Resident Memory)指標才是當前進程在使用的物理內存。當前的物理內存完全足夠進程使用了,自然不需要用到 swap,但 VIRT 指標始終是客觀存在的。

查看完整回答
1 反對 回復 2018-12-21
?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

如果內存不夠用,肯定要緩存部分到swap或文件,僅做參考

查看完整回答
反對 回復 2018-08-26
  • 2 回答
  • 0 關注
  • 3329 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號