1. 本站需要使用 Cookie。如果您繼續使用本站,則表示同意我們使用 Cookie。 瞭解詳情。
2019 Ballistix記憶體超頻大賽報名處,最高獎金5萬元詳情點我前往

我的可用記憶體是都跑去哪了?

本帖由 smallhaung2015-06-13 發佈。版面名稱:[軟體發問區]

  1. smallhaung

    smallhaung 進階會員

    註冊:
    2008-02-28
    文章:
    391
    讚:
    0
    小弟記憶體有16G (DDR3 1600 8Gx2)
    開了4個VM(win7x64) 每個VM設定2048 MB記憶體 顯卡記憶體設定128MB
    128G SSD WIN8.1x64系統

    VM內是掛遊戲 從中午12點開機到隔天早上7點
    如圖1 pagefile我設多大他就變多大 (一開始 "目前配置" 很小 隨時間變長 他就變到5625)

    可用記憶體就剩下如 圖2 3 4所示
    照理說 我每個VM開2G 4個也不過8G 主系統+個firefox 了不起最多吃我3G
    也就如圖2所示 使用中11G 但是剩下可用的卻只剩1.7G

    此時我把VM全部關閉(通通關機) 等了很久時間 記憶體也回不來 如圖5所示
    使用中1.7G 可用剩8G
    其他的是都跑哪去了? 難道是那個 "已快取"

    如果是的話 有辦法把 WIN8.1快取關閉嗎?

    圖1
    [​IMG]
    圖2
    [​IMG]
    圖3
    [​IMG]
    圖4
    [​IMG]
    圖5
    [​IMG]
     
  2. lausinu

    lausinu 榮譽會員

    註冊:
    2007-05-01
    文章:
    1,840
    讚:
    0
    有回來啊
    "快取+可用"不是變大了?
    快取重新開機才會完全釋放,
    會變乾淨的"可用";
    快取隨時可用可釋放,
    跟乾淨的可用不大一樣,
    但一樣是算是閒置的。

    有錯請更正。
     
    #2 lausinu, 2015-06-13
    最後編輯: 2015-06-13
  3. lausinu

    lausinu 榮譽會員

    註冊:
    2007-05-01
    文章:
    1,840
    讚:
    0
    實體記憶體+可用需擬記憶體=16+5.3=21.3,
    21.3是最大記憶體可用量(概算而已),
    第一張圖符合;
    你說使用11G也是,
    如圖4,
    還要加上系統保留+modify的記憶體(修改未儲存的資料),
    扣一扣沒多少可以快取+可用,
    總記憶體就是實體記憶體+已使用的需擬記憶體(分頁檔)大小;
    再看圖五,
    關掉之後,
    原本"使用中+已修改"釋放到"乾淨的可使用"跟"暫存的快取"去。

    記憶體拿來快取是件好事啊...
    不然都空著可使用,意思就是系統都沒用到。
     
    #3 lausinu, 2015-06-13
    最後編輯: 2015-06-13
  4. smallhaung

    smallhaung 進階會員

    註冊:
    2008-02-28
    文章:
    391
    讚:
    0
    使用中+可用的+已快取 大概就是我原來的16G

    現在的問題就是 "已快取" 會越來越大 並且不會釋放

    我並不要他快取阿= =

    我原本計畫是要6開VM (每個2G RAM) =12G+主系統(win8.1)+FireFox 了不起給他3G=15G 至少還有餘力做其他事
    但是如圖1所示 記憶體14.2/15.9
    當我要開第5個VM貨主系統開第5個遊戲時
    會直接出現記憶體不足 然後 整個系統開始很LAG VM開始當掉


    有沒有辦法關閉那個雞婆的快取 我寧願他去使用SSD的pagefile
    也不要他雞婆地把我原本的記憶體拿去快取又不還我(我知道重開機後 又會還我 我開機記憶體大概吃不到2G)
     
  5. hu10us22

    hu10us22 榮譽會員

    註冊:
    2006-10-07
    文章:
    12,635
    讚:
    332
  6. arthur0905

    arthur0905 榮譽會員

    註冊:
    2011-12-22
    文章:
    3,628
    讚:
    5
    記憶体總量一向是:「實體記憶體+擬記憶體」只是通常想要直接釋放記憶体不是那麼順利而且高效:
    所以需要外裝軟体才能像手機軟体一樣完全的釋放記憶体來達到加速。
    所以實体記憶体能被當快取是件好事:這完全能達到加速效果…就像錢放著不用就是廢紙一張。

    所以記憶体不夠大的情況下讓Windows自行管理分頁檔:其最小值=實體記憶體,而最大則=實体量X3倍。
    但是有個盲點是:分頁檔不是設的大就好,因為「設定了n大的分頁檔」並不等於「使用了n大的分頁檔」。
    EX:分頁檔=8GB並不代表一定塞滿8GB,而是會在硬碟畫出1個8GB分頁檔備用。至於用多少完全是系統決定
    使用者無法自行分配1個程序或所有程序在實體記憶體或分頁檔的佔用比例。

    佔用量不等於使用量:

    程式執行之初會要求系統先保留(Reserve)一定的虛擬位址空間給它。保留位址空間不代表立即可用,這麼做
    只是為了讓程式可以使用的連續位址最大化而不用昨是今非重新規劃。有了空間才能隨時佔用Commit,
    所以不論佔用的分頁是實體的還是分頁檔的,而且這種「佔用」分頁不代表「已經使用」和真正消耗:只是一種保證能用的先行配額。

    ex:就像用餐時的分配:「大家要坐10個連續位置」。實際餐廳未必喬的出10個相連空位,服務生就要開始喬一些散客座位
    同時提醒這10位客人有位就要先坐。等到真正移出10個位子,但客人可能只到了6個人,但基於分配原則還是會先保留另外4個空位。

    由此可知,Commit Memory其實就是系統保證的應用程式佔用、但只是保留而不一定會用(就像你預約之後未必會到)。
    所以單單看實體記憶體使用量是不準的:因為你只會看到Commit空間的一部分量,程式的需要量並不等於它實際的使用量,
    總額用量還要看Commit才行。所以將Commit值稱做「需求量」會更好理解這個看量和帶量的計量。
    所以 Limit就是實體記憶體加Pagefile.sys的極限可用大小。
    而 Current的數值是維持目前程式運作的記憶體總保留量。可能同時包含了實體記憶體或分頁檔裡的空間。

    用最為簡化且不失籠統的說法解釋:Peak是最嚴苛的記憶體使用量,如果使用量峰值常現,那麼你所需要的分頁檔大小+實體記憶體
    一定要大於這個峰值才行。如果不想設分頁檔的話:更要實體記憶體大於這個峰值才行。
    由此可見要把16GB塞爆一點都不困難:如果你裝了64GB的記憶體,那麼把整個系統都快取進來也行,而且比設置什麼RAM Disk
    來得實際,因為過程中都需要Hard Fault、而且效果一樣:但記憶體量卻減半。所以說:實体記憶體足夠就不需設分頁檔!!

    所以結論就是:
    如果實體記憶體容量大於Commit Charge值:不設分頁檔也行,這樣做可以避免不必要的Hard Faults。
    如果Commit Charge剛好差一點把「實體記憶體」用完,那麼讓系統管理分頁檔是最好的設定:1來可以分散浪費、2來也比較保險。
    至於「實体記憶體」不夠用 那就表示你該買入更多的記憶体了,至於多少才夠用:請至少將這個量擴充到足夠Commit Charge使用。

    當硬碟是SSD、同時安裝了32或64GB記憶體時:就可以縮減分頁檔節省磁碟 這時候為了效能著想 更為了寶貴記憶体著想
    分頁檔更不該放RAM Disk。因為RAMDisk這種加速軟体 一樣會耗用記憶體:而且大部分RAMDisk都是在一開始就將指定空間佔滿,
    導致工作集無法縮減,即便RAMDisk完全沒資料也一樣浪費了固定空間。

    所以除非實体記憶體量真的不夠用,不然佔用空間的RAMDisk完全是反其道而行,讓「記憶體存放空白無用的分頁檔」,只是提早耗盡
    實體記憶體。但實際來說:分頁檔的資料還是得讀回實體記憶體才能被程序存取 所以這完全多此一舉。所以別說自己16G就夠用了。
    你的情況至少應該有32G才是正常的開始。
     
  7. hu10us22

    hu10us22 榮譽會員

    註冊:
    2006-10-07
    文章:
    12,635
    讚:
    332
  8. lausinu

    lausinu 榮譽會員

    註冊:
    2007-05-01
    文章:
    1,840
    讚:
    0
    快取並不影響你系統運行,
    會影響系統運行的是"系統預留+使用中+已修改",
    系統預留不可能釋放;
    使用中要關程式才會釋放;
    已修改要存檔才會釋放;
    快取,隨時可以使用;
    未使用,隨時可使用;
    看圖4就好,
    您看一下5個VM+一個CHROME跑一陣子,
    可釋放的實體記憶體就快乾了,
    也看得出沒餘力再跑第6個VM。

    實際的做法就是再上兩條8G記憶體吧,
    最近不是降價不少?

    想開6VM+CHROME不是只有15G而已,
    還得加上"已修改",
    光5VM+1CHROME"使用中+已修改"的已占不少,
    開六個,沒多久系統一定不順、當機,必然的。

     
  9. smallhaung

    smallhaung 進階會員

    註冊:
    2008-02-28
    文章:
    391
    讚:
    0
    之前只有 單隻DDR3 1600 8G 使用G3258@4.1G+MSI H81主板
    那時候只有開2個VM 設置條件都和現在相同 一樣開FireFox
    那時候可以掛機超過19小時以上 8G記憶體 都不會暴

    現在很奇怪 加了一隻DDR3 1600 8G CPU換 E3-1231 V3
    今天早上8點整個電腦才重開機掛機 現在才晚上8點 記憶體就13.3/15.9 使用中10.7 可用的2.6 已快取4G

    照此情況 連要開第5個VM可能都有問題(剛開始開可以 但是要像之前掛機超過19小時 必定出問題)

    之前掛2隻時 看記憶體使用情況 本來推估再加一隻8G RAM+換CPU 應該可以掛5~6隻
    結果現在才4開VM 照以前使用情況 要掛超過19小時 早就暴記憶體了 真是超奇怪= =
     
  10. jamesfuh

    jamesfuh 榮譽會員

    註冊:
    2003-09-21
    文章:
    3,373
    讚:
    1
    看到這麼多人引經據典.在幫您解決疑惑...

    可是再看看您2008-02-28 註冊至今...不曾對CBB網友給過任何感謝...
    [​IMG]

    您只是持續不斷地描述您那些鑽牛角尖問題...
    根本沒聽去別人在說甚麼...

    如此這般.不曾虛心聽進別人解說的狀況...
    您自己說會有解嗎??
     

分享此頁面

正在閱讀此主題 (用戶: 0, 訪客: 0)