問一些關於RAMDISK和分頁檔的問題...

字體: | 打印

小弟的記憶體總共2G,我想要割1G做ramdisk,裡面全放1G分頁檔,其他2G放在硬碟,這樣配置OK嗎?? 還是有其他更好的設定方法?? 請大大指點,謝謝!

---

Super Cache 這個軟體跟 Ramdisk 有什麼不一樣?? 2G RAM用S.C.比較好還是做1G Ramdisk比較好呢??

我也來說兩句 查看全部評論 相關評論

  • ㄚ一 (2008-9-06 14:31:07)

    RAMDISK顧名思義就是讓你把RAM當作硬碟使用
    SuperCache簡單的說就是做加大硬碟機的快取
    http://www.superspeed.com/desktop/supercache.php



    我自己不管是在windows還是Linux全部都把虛擬記憶體關閉
    然後我的windows還更進一步把Prefetch也給關掉了
    過時的預讀機制不用也霸!

    對於你的疑問我想你應該先了解你要的是什麼,而不應該是為了設定才去設定
    需求不同方法也不一樣,不過一般我的做法是如果決定要把PF放到RAMDISK裡
    那硬碟就不要在放PF了!效能可能不會增加,只是浪費空間浪費資源而已
  • 小狄~ (2008-9-06 15:04:50)

    QUOTE:

    原帖由 ㄚ一 於 2008-9-6 14:31 發表
    RAMDISK顧名思義就是讓你把RAM當作硬碟使用
    SuperCache簡單的說就是做加大硬碟機的快取
    http://www.superspeed.com/desktop/supercache.php
    ...
    那1G的RAMDISK全放1G的PF,全機系統也只設定那1G的PF,這樣OK嗎?? PF一定要設定成RAMx1.5嗎(網路上都這樣說)??
  • Jasper (2008-9-06 15:32:40)

    不一定要設RAM的1.5倍...只是這是比較適當的值
    設太大沒用...設太小會造成效能不佳
    不過還是要看個人使用的方式情況去調整...
    並不是1.5倍就一定是最佳的大小
  • 小狄~ (2008-9-06 15:49:28)

    QUOTE:

    原帖由 Jasper 於 2008-9-6 15:32 發表
    不一定要設RAM的1.5倍...只是這是比較適當的值
    設太大沒用...設太小會造成效能不佳
    不過還是要看個人使用的方式情況去調整...
    並不是1.5倍就一定是最佳的大小
    有在用大型軟體的 就不能設定太小,是這樣嗎?? 可以設定比RAM小嗎?

    [ 本帖最後由 小狄~ 於 2008-9-6 15:51 編輯 ]
  • Jasper (2008-9-06 18:18:17)

    我不曉得您對Page file的了解是多少...大概講一下
    這個是OS裡virtual memory的觀念
    大略的說一下...
    理由:
    所有運行的程式都需要載入進memory內(占用多少mem看不同的程式而定)
    但為了節省記憶體...每個program並不是將其本身所有的data " 全部 "都載入到memory中
    當process在運行中只會載入"現有需要"的部分...(這部分由軟體設計者和OS做處理)
    如此可以達到節省記憶體目的...記憶體內也可以空出更多的空間放入更多的process
    而有效利用memeory
    作法:
    為了達到此一目的就必須在硬碟中空出一塊空間(virtual memory以下稱VM)
    當程式運行時OS會將其所有會用到的data分成一塊塊大小相同的Page(這就是Page file)
    這些page file放在virtual memory中
    而memory也切成和這些page大小相同一樣的frame
    而當program執行時將"必要所需"的page載入到memory frame裡...尚未用到的就留在VM中
    等到需要時再載入...
    EX : 某程式執行時共有100個page ---->目前需要用到其中某20個page的資料--->
            memory內載入這20個 --->剰下80個尚未運用到的仍在VM中

    回到問題...既然所有程式都需要載入memory中
    1.當你記憶體夠大時...所有的program怎麼塞都無法塞滿memory...那甚至不需要VM
    2.當記憶體不夠大時...那就需要VM做有效的記憶體利用

    如果VM設的比RAM小...那也可以運作..但不符合效能.當MEM沒有所要的page而去VM抓資料
    在VM也不夠大的情況下就有可能找不到...disk還得在做IO把資料再放入VM中...效能被IO拖住

    在一般情況下VM的大小是大於memory 的....畢竟一般情況memory不可能和disk差不多大
    比如我今天只有512MB或256MB的RAM
    但我要同時處理3Dmax MAYA photoshop等影像處理那MEM是不可能夠用的如果cache(VM)
    又小...自然效能會很糟
    但如果RAM大到跟不用錢買的一樣........自然就不會有VM的問題
    總歸一句......還是看你的使用情況而定

    [ 本帖最後由 Jasper 於 2008-9-6 18:21 編輯 ]
  • 天行者 (2008-9-06 21:46:19)

    我覺得 Windows 對 VM 處理方式和 Linux 及 FreeBSD 不同,以前我在使用 Linux 及 FreeBSD 有觀察過,這類型作業系統只有當 Physical Memory 用完才會去動用 VM,而 Windows 就很奇怪了,不管你實體記憶體多大,它都還是會去動用 VM。

    [ 本帖最後由 天行者 於 2008-9-6 22:05 編輯 ]
  • kkavp (2008-9-06 22:34:36)

    QUOTE:

    原帖由 Jasper 於 2008-9-6 18:18 發表
    我不曉得您對Page file的了解是多少...大概講一下
    這個是OS裡virtual memory的觀念
    大略的說一下...
    Jasper 大,感謝你把VM說得如此淺顯易懂
    長知識了
  • SPeter (2008-9-06 23:14:57)

    真是踏實的一課。終於比較理解VM和RAM間的關係。

    我想請教幾個問題:
    開啟工作管理員後,可以選擇顯示「分頁錯誤」和I/O的讀寫次數。
    關於「分頁錯誤」我GOOGLE了一下,看到的解釋綜合上 Jasper大的說明,我得到的認知大概就是當OS從VM調一次資料進MEMORY中時會計一次「page faults」,按原先的記憶體位址找不到會計為「 Invalid Page Faults」(這會導致程式出錯嗎?)。先要問這樣的認知對不對,以及工作管理員底下的「分頁錯誤」與「分頁錯誤差異」是否對應這兩者?
    還想問:從物理讀取速度來看,page faults增加顯然會拖慢執行速率,除了RAM不夠這種情況,WINDOWS底下,應用程式是否能寫成直接優先使用physical memory?

    最後,照Jasper大的說明,「I/O讀寫」就完全不計算VM中的存取動作了?

    曾聽人說,VM不要跟系統設在同一顆硬碟上(還是不同槽就好?),現在想來似乎就是基於這種原理。
  • ㄚ一 (2008-9-07 17:01:33)

    QUOTE:

    原帖由 天行者 於 2008-9-6 21:46 發表
    我覺得 Windows 對 VM 處理方式和 Linux 及 FreeBSD 不同,以前我在使用 Linux 及 FreeBSD 有觀察過,這類型作業系統只有當 Physical Memory 用完才會去動用 VM,而 Windows 就很奇怪了,不管你實體記憶體多大,它都還是會去動用 VM。
    Linux跟FreeBSD除非你沒有SWAP,要不然你要讓它們RAM用完才使用SWAP
    必須調整使用比例,Linux的話一般好像當RAM使用率超過60%後就開使用SWAP
    如果你的Linux或FreeBSD都沒有用到SWAP那只有兩個可能
    第一就是沒有達到使用SWAP的限制,第二就是比例上已經修改過了
    另外還有一點,如果沒有SWAP會無法做休眠!

    [ 本帖最後由 ㄚ一 於 2008-9-7 17:03 編輯 ]
  • Jasper (2008-9-07 20:06:27)

    page fault : 分頁錯誤(一般都翻成尋頁缺失...我認為這樣翻比較好)
    是的就像SPeter大所講的VM調一次資料進MEMORY中時會計一次
    page fault本身的意義就是當mem中找不到所需的page時...就叫page fault
    至於是不是一定從VM中調入....一般而言是如此

    page fault delta : 分頁錯誤差異是指 : 在單位時間內page fault產生和上次update完後差異的量....簡而言之就是單位時間內發生page fault的次數

    Invalid Page Fault : 無效分頁錯誤
    所指的是當Page Fault發生時OS依照page table所記載的位址要mapping進所需的page時
    卻因某些原故無法載入此page
    windows產生Invalid Page Fault 的原因很多...請google或上微軟網站搜尋
    那是不是產生Invalid Page Fault 就會讓程式出錯............是的

    windows下讓應用程式優先使用記憶體...
    嗯....if記憶體夠大就沒有這問題....而記憶體過小OS就會要求你先close掉某些process空出空間...至於有沒有"優先"應該是要soft_engineer估計program需要多少mem而較大的mem可以讓program利用更多的空間增進效能...應該沒有"優先使用"的問題...這只是我的想法
    至於到底有沒有"讓應用程式優先使用記憶體"...抱歉...我了解還不夠不曉得
    或許可以查查API內有沒有這種功能

    至於I/O讀寫有資料存取就有I/O讀寫...只是看是哪方面的.VM存取當然也有I/O

    最後會說設在不同硬碟的原因是當VM在另一硬碟上(同顆就沒用)硬碟可以減掉大量的VM存取浪費
    EX : 在同顆硬碟 :時間 =  一顆硬碟要做VM的IO + 其他的IO...費時...讀寫頭運作頻繁...硬碟也  較易壞
            不同顆硬碟 : 一顆專做VM....主硬碟只做其他IO則當然比一顆省時...硬碟情況較一顆好
  • SPeter (2008-9-07 21:45:17)

    我之前的說法太爛搞得很難懂……失禮了……
    其實該簡單的說:一個程式用多少physical memory、多少VM,是由OS來作分配,還是程式本身可以主動設定?

    VM設在不同硬碟可以減掉大量的VM存取浪費的原理瞭解了。請教一個實際情況配置:我有兩顆硬碟(SATA系統碟跟IDE資料碟),目前IDE資料碟只用來庫存和跑EMULE。在有跑P2P的情況下,不知大家會怎麼建議硬碟的配置運用?
  • 小狄~ (2008-9-07 23:07:18)

    好深奧喔

    我割1G的RAM做RAMDISK了,分頁檔用973MB,FX快取用了50MB,感覺是有變快不少~

    謝謝大大囉
  • Jasper (2008-9-08 11:17:28)

    資源的分配和控制管理由OS處理..一般程式是無法對直接要求要多少資源的(除非有特別權限)
    但程式可以向OS提出請求資源...
    不然A程式說我要多少資源...B程式說我要多少資源..這樣的話.........
    還是要由OS當資源分派和管理的仲裁者
    當然軟體設計者還是必須要知道要讓軟體可以運作至少需要多少資源(買的時候不是都註明硬體需求)

    [ 本帖最後由 Jasper 於 2008-9-8 11:20 編輯 ]
  • kingyeh (2008-9-26 01:46:05)

    個人之前設定ramdisk後,結果用工業設計軟體時變的頓頓的,直到取消後才又正常 參考1下...
  • marco (2008-10-08 15:49:02)

    我自從插了4G之後都沒有煩惱過這些問題了...