【已解決】請問 Ramdisk 有沒有動態配置?

Google了很久都沒找到答案。。

比方說有一個 4GB 的 RAM,其中的 2GB 被用來設定成 ramdisk。
但是這 2GB ramdisk 裡其實只用了 1GB,那麼 OS 還能使用的 RAM 是那原本沒有被設定成 ramdisk 的 2GB;還是 2GB + 1GB (ramdisk 沒用到的空間)= 3 GB呢?
Kadaj wrote:
比方說有一個 4GB 的 RAM,其中的 2GB 被用來設定成 ramdisk。
但是這 2GB ramdisk 裡其實只用了 1GB,那麼 OS 還能使用的 RAM 是那原本沒有被設定成 ramdisk 的 2GB;還是 2GB + 1GB (ramdisk 沒用到的空間)= 3 GB呢?(恕刪)

哪怕 2GB 的 RAMDISK 只用了 128KB,還是佔用了 2GB 的記憶體空間
除非 RAMDISK 可動態調整大小,不然設多少就是得扣掉多少
Kadaj wrote:
Google了很久都...(恕刪)


為什麼我看了兩次,都不知道你在說什麼???
RAMDISK就是用RAM來當DISK,你設多少,就用掉多少實體的RAM。
你說4G的RAM,WINDOWS辨識時少1G,那是在32位元的作業系統才會發生。
不見的那1G一樣可以被開啟,GOOGLE有教。不過,那是強制開啟,對部份程式未必穩定。
可以透過RAMDISK開啟PAE做記憶體定址的延伸,把隱藏的那1G打開當RAMDISK使用。至於設2G的RAMDISK反而沒有意義,同時使用隱藏和系統的記憶體,對系統的效能未必較好。

當然要更多的RAMDISK不是不行,前提是你有比4G更多的記憶體再來玩。
大多數的RAMDISK軟體都是設多少就馬上吃多少ram
目前試過ImDisk跟Primo Ramdisk是動態配置
有放檔案才會吃ram

aleck1119 wrote:
大多數的RAMDISK軟體都是設多少就馬上吃多少ram
目前試過ImDisk跟Primo Ramdisk是動態配置
有放檔案才會吃ram


別的我不知道

Primo Ramdisk確實可以動態配置

用多少就多少

不會一設定就馬上吃掉多少RAM
SniperX wrote:
哪怕 2GB 的 R...(恕刪)

本來以為是這樣,但是好像有動態配置的,很少人談到這個所以想確認一下。

jason1204 wrote:
為什麼我看了兩次,都...(恕刪)

我也不知道為什麼連例子都舉出來了還會有人不明白~(開玩笑)
這跟 32/64-bit OS 的課題沒有關係。

aleck1119 wrote:
大多數的RAMDIS...(恕刪)

小弟是用 Linux 的 tmpfs,在維基上這樣寫着:記憶體使用量會隨著 tmpfs 的使用而時有增長或消減。
所以這是屬於動態配置的對嗎?這樣的話例子的答案是,OS 還能使用的空間是 3GB。
那麼 ramdisk 設置多一些也沒差,因為用不多的話其實 OS 還是可以使用其中的記憶體空間而不會造成浪費。

kinyo wrote:
別的我不知道Prim...(恕刪)

看來是設置 ramdisk 的軟件的關係。
因為 virtualbox 之類都有動態配置,推想 ramdisk 應該也有吧~
重新開機之後確認 Linux 的 tmpfs 是屬於 dynamic adjustable ramdisk,用多少才算多少。
所以可以放心大大力給它設定幾個 GB 下去,把瀏覽器的 cache files 都丟到裡面去,不用怕傷到硬碟了,哈哈!!

感謝各位大大熱情回覆~
這個想法非常棒
雖然我也不懂真正的原理
但是聽你這一提起倒是一個值得研究的好課題

我個人的想法是這樣的(猜測啦).....
記憶體一共有4G
你切了2G當虛擬硬碟
所以剩下2G留給系統與應用軟體
現在問題來了...
一開機的時候系統一定已經畫好2G為虛擬硬碟了
不管你使用多少容量最大就是用到2G
那剩下的2G記憶體哪
作業系統與應用軟體也應該最大能使用到2G而已
無法越界去使用那個閒閒空在那邊的虛擬硬碟容量
為啥哪
假設應用軟體越界調用了1G的虛擬硬碟容量共使用了3G
然後虛擬硬碟需要用到2G的時候怎麼辦?
他要跟誰要少掉的1G?
這樣是不是就衝突了?

當然詳細情形我並不清楚啦
只是有人提起
就動動腦筋思考一下
不知正確的理論是怎樣????
Linux 核心 2.6 以上,內建 RamDisk(tmpfs)
是先進的技術,動態配置的

/dev/shm
其實就是 tmpfs 了,不必另外去建磁區

指令打:df -h
可以看到

應用舉例:
cd /var
sudo mv www /dev/shm
sudo ln -s /dev/shm/www www

說明:
將 apache 根目錄移到 RamDisk 中
在原先位置,建一個軟連結,欺騙軟體

註:這個只是範例,若要這樣用,注意 RamDisk 資料重開機或斷電就會消失的問題。需要腳本去備份。

mysql 的話,也能這樣用,一樣用軟連結去欺騙,就可以把資料庫快速無痛移到 RamDisk。不過要注意電力問題,一定要定時備份,不然斷電資料就不見了。


有一招 SOFT RAID,可以將 RamDisk 和 硬碟映像檔 綁定做 RAID-1,就不怕斷電的問題,不過那個很複雜,不在這磝述了。有興趣在說。

*********************************

使用 tmpfs 請注意一點:

Linux 的 tmpfs 不全然只吃 RAM
如果 RAM 不夠用,會吃到 SWAP!

核心在預設的情況下,只會分配一半 RAM 給 /dev/shm

所以 /dev/shm 的容量僅有 RAM 的一半
這是一個「保險值」

自己額外去建磁區
並指定檔案系統採用 tmpfs(即是手動開 RamDisk)

雖然 Linux 的 tmpfs 是動態配置的

但是不能想設多少就設多少的
因為:假如 RAM 吃滿了,tmpfs 會去吃 SWAP!

註:SWAP 就是硬碟,交換檔,虛擬記憶體。


比方說,可以做個實驗:

主機板有 4GB 的 RAM
然後開了一個 tmpfs 磁區,給 5GB

它是用多少,RAM 吃多少沒錯
但是 RAM 只有 4GB
開 5GB 的話,且也存到 5GB 的檔案了
那額外的 1GB 到底是從哪裡"生"出來的?
答案:從 SWAP

它不會因為邏輯錯誤當機
只是會從 SWAP 去吃多出來的容量

做個實驗就可以明瞭,觀察 swap 使用量。

所以 tmpfs 建議估算用多少,就設多少,不要設太大
且也不要超過 RAM 的一半
否則有很大機率,會去吃到 SWAP,沒加速反而還減速...


*******************************

附帶一提:

如果對 Windows 下的 imdisk 有興趣,可參考這篇:

http://www.mobile01.com/topicdetail.php?f=512&t=2444890

但 imdisk 個人實測的結果,RamDisk 的讀寫效能
僅有 SuperSpped 或 DataRam 的 1/3....

也就是說:
假如 SpuerSpeed 或 DataRam 的磁碟
實測有 3GB/s 的讀寫速度
那麼換成 imdisk 實測可能只有 1GB/s 讀寫速度

可能是因為它虛擬比較多層,導致效能降低了

但就算只有別牌 RamDisk 1/3 速度
說到底 RAM 還是 RAM,1GB/s 快過主流 SSD 兩倍

用 imdisk 當 RamDisk
追求極致速度的話,不推薦
但追求方便性的話,推薦
所以就買大一點的ram

然後把暫存檔、分頁檔、ie暫存檔全設到ramdisk上

一勞永逸
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!