大內存加速網站應用方案

        一臺裝了8GB或以上內存的IBM3650 M3的網站服務器,運行Windows200864位)之後才使用了1.2GB左右的內存,運行了TOMCATmysql 服務之後最高也才達到3GB之多。其中tomcat最高使用1G,就算程序上再優化(包括數據庫的優化),這臺服務器所能提供的有效鏈接數與響應時間便被固定下來。在同等網速客戶訪問量持續性增加的情況下,客戶打開網站只會越來越慢。網站的特性是小而密集的文件在磁盤中被反覆讀取提交給客戶,在網速這個有限資源被固定的情況下,提高文件的讀取速度是加速網站的響應速度是關鍵點。怎麼樣利用閒置的5G內存,下面是已知的兩種解決方案:

1、將部分內存虛擬成硬盤。這樣一來系統中將會出現一個讀寫速度非常快的分區。將部分應用程序安裝在虛擬硬盤中之後,啓動這些應用程序的速度會有非常明顯的提升,但是對整個系統的性能影響並不大。不過現在的虛擬硬盤軟件也支持在關機時將虛擬硬盤中的數據寫入鏡像,不會再出現關機即丟失數據的情況。這種方案目前也有一定的侷限性——目前的虛擬硬盤軟件只能創建容量在4GB以內的虛擬硬盤。

2、將內存虛擬成磁盤緩存,爲硬盤分配內存作緩存,並攔截系統發送至硬盤的IO請求。如果IO請求讀取的數據已經在緩存中,則直接讀取緩存中的數據並完成IO請求,否則數據則從硬盤中讀取出來,並存入緩存,同時完成IO請求。由此可見,從緩存讀取的數據量越多,則系統性能提升得越多,避免頻繁讀取速度較慢的硬盤,從而提升系統性能。

而我們採用兩種結合的方案,既有一個虛擬硬盤來放置網站程序又有一個整盤緩存來加速系統,如圖:

實現方法:

第一步:採用VSuite Ramdisk這款軟件來實現大內存的硬盤虛擬。這類軟件都是通過獨特的算法,將內存虛擬成硬盤,使得對硬盤文件的數據讀寫轉化爲對內存的數據訪問,大幅提高數據的訪問速度,這對於頻繁通過網絡交換大容 量文件的用戶尤其有幫助。新版的VSuite Ramdisk提供鏡像功能,支持關機時自動保存數據到鏡像文件以及開機時自動從鏡像文件加載數據到虛擬硬盤,可以避免原來那些內存虛擬硬盤軟件造成數據 在關機時丟失的問題。而且VSuite Ramdisk還具有檢測和利用系統未識別內存的功能,可以解決32Windows操作系統無法完全使用4GB或更多內存的問題。

 

 

配置如下:

注意:一定要把鏡像文件保存在物理硬盤分區上,不然關機後文件會丟失。
分區對比測試:

1、          物理分區

2、          虛擬硬盤

 

可以看到虛擬硬盤的讀取速度比物理的快了近10!

隨機讀取測試:

1、          物理分區

 

 

2、          虛擬分區

 

IOPS上看到小文件的隨機讀取有近百倍的差距!

 

 

第二步:採用將內存虛擬成硬盤緩存來使用了。我們採用

FancyCache把從硬盤中讀取的數據存入系統內存,使系統在下次訪問該數據時可以很快從內存中讀取,而且FancyCache還支持將其他磁盤虛擬給硬盤作爲二級緩存。

配置如下:

可以在性能監視中看到緩存命中率:

 

在同一業務下,系統運行時間越長命中率越高,從而網站的響應速度越快。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章