記憶體檔案系統提升磁碟效能瓶頸

來源:互聯網
上載者:User

author:skate
time:2011/08/22

 

提升磁碟效能瓶頸

linux的記憶體檔案系統:ramdisk,ramfs,tmpfs

 

ramdisk:

是塊裝置,在使用它們之前必須用選擇檔案系統將其格式化。並且調整檔案系統大小比較麻煩,
需要修改核心引導參數並重新啟動作業系統,在我們的應用中,需要 7X24不間斷啟動並執行系統
來說,並不是一個可以接受的選擇

ramfs:
Ramfs是記憶體檔案系統,他工作於虛擬文檔系統(VFS)層。不用格式化,直接mount使用,能夠建立多個,
在建立時能夠指定其最大能使用的實體記憶體大小。

[root@localhost current]# df -haT
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
              ext3    7.7G  6.6G  724M  91% /
proc          proc       0     0     0   -  /proc
sysfs        sysfs       0     0     0   -  /sys
devpts      devpts       0     0     0   -  /dev/pts
/dev/sda1     ext3     99M   13M   82M  14% /boot
/tmpfs       tmpfs    502M     0  502M   0% /dev/shm
none   binfmt_misc       0     0     0   -  /proc/sys/fs/binfmt_misc
sunrpc  rpc_pipefs       0     0     0   -  /var/lib/nfs/rpc_pipefs
my_tmpfs     tmpfs    1.2G  1.2G   11M 100% /tmpfs
my_tmpfs     tmpfs    1.2G  1.2G   11M 100% /tmpfs
ram_tmpfs    tmpfs    1.2G     0  1.2G   0% /ram1

[root@localhost current]# mount -t ramfs  my_ramfs /ramfs -o  maxsize=100m

[root@localhost current]# df -haT
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
              ext3    7.7G  6.6G  724M  91% /
proc          proc       0     0     0   -  /proc
sysfs        sysfs       0     0     0   -  /sys
devpts      devpts       0     0     0   -  /dev/pts
/dev/sda1     ext3     99M   13M   82M  14% /boot
/tmpfs       tmpfs    502M     0  502M   0% /dev/shm
none   binfmt_misc       0     0     0   -  /proc/sys/fs/binfmt_misc
sunrpc  rpc_pipefs       0     0     0   -  /var/lib/nfs/rpc_pipefs
my_tmpfs     tmpfs    1.2G  1.2G   11M 100% /tmpfs
my_tmpfs     tmpfs    1.2G  1.2G   11M 100% /tmpfs
ram_tmpfs    tmpfs    1.2G     0  1.2G   0% /ram1
my_ramfs     ramfs       0     0     0   -  /ramfs
[root@localhost current]#

 

tmpfs:
Tmpfs是個虛擬記憶體文檔系統,他不同於傳統的用塊裝置形式來實現的ramdisk,也不同於針對實體記憶體的Ramfs。
Tmpfs能夠使用實體記憶體,也能夠使用交換分區。在Linux核心中,虛擬記憶體資源由實體記憶體(RAM)和交換分區組成,
這些資源是由核心中的虛擬記憶體子系統來(VM)負責分配和管理。Tmpfs就是和虛擬記憶體子系統來"打交道"的,他向
虛擬記憶體子系統請求頁來儲存文檔,他同Linux的其他請求頁的部分相同,不知道分配給自己的頁是在記憶體中還是
在交換分區中。Tmpfs同Ramfs相同,其大小也不是固定的,而是隨著所需要的空間而動態增減。

 

tmpfs和ramfs不同

1.ramfs是記憶體檔案系統,只使用實體記憶體;tmpfs是虛擬記憶體檔案系統,使用實體記憶體和交換分區
2.在進程佔用記憶體較多,因為tmpfs根據vm的調度策略會使用交換分區,所以tmpfs的效能可能會低於ramfs,但tmpfs也為其他程式節省了實體記憶體

 

經過以上的測試發現,在我們實際應用情境中,我們只能用tmpfs和ramfs,而為了充分利用寶貴的記憶體資源,增大記憶體檔案系統,建議使用tmpfs

 

建立測試:

[root@localhost current]# df -hTa
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
              ext3    7.7G  6.6G  724M  91% /
proc          proc       0     0     0   -  /proc
sysfs        sysfs       0     0     0   -  /sys
devpts      devpts       0     0     0   -  /dev/pts
/dev/sda1     ext3     99M   13M   82M  14% /boot
/tmpfs       tmpfs    502M     0  502M   0% /dev/shm
none   binfmt_misc       0     0     0   -  /proc/sys/fs/binfmt_misc
sunrpc  rpc_pipefs       0     0     0   -  /var/lib/nfs/rpc_pipefs
my_ramfs     ramfs       0     0     0   -  /ramfs
/tmpfs       tmpfs    502M     0  502M   0% /dev/shm
my_ramfs     ramfs       0     0     0   -  /ramfs

[root@localhost current]# mount -t tmpfs  my_tmpfs /tmpfs -o  size=100m

[root@localhost current]# df -hTa
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
              ext3    7.7G  6.6G  724M  91% /
proc          proc       0     0     0   -  /proc
sysfs        sysfs       0     0     0   -  /sys
devpts      devpts       0     0     0   -  /dev/pts
/dev/sda1     ext3     99M   13M   82M  14% /boot
/tmpfs       tmpfs    502M     0  502M   0% /dev/shm
none   binfmt_misc       0     0     0   -  /proc/sys/fs/binfmt_misc
sunrpc  rpc_pipefs       0     0     0   -  /var/lib/nfs/rpc_pipefs
my_ramfs     ramfs       0     0     0   -  /ramfs
/tmpfs       tmpfs    502M     0  502M   0% /dev/shm
my_ramfs     ramfs       0     0     0   -  /ramfs
my_tmpfs     tmpfs    100M     0  100M   0% /tmpfs
[root@localhost current]#

 

記憶體檔案系統使用情境:
tmpfs和ramfs記憶體檔案系統的特點是速度快,重啟資料丟失等特點,所以其中常用儲存非重要,中間計算,較少對磁碟的直接存取;
記憶體檔案系統不要設定過大,避免佔用記憶體太多,使系統整體系統下降或宕機。

 

 

 

-----------------end---------------

 

 

 

 

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.