一、何謂ASP緩存/為什么要緩存
當你的web站點采用asp技術建立的初期,可能感覺到的是 asp動態網頁技術帶來的便利性,以及隨意修改性、自如的http控制。但是,隨著訪問量的增加,你一定會發現自己的站點訪問速度越來越慢,IIS重新啟動得越來越頻繁。接下來,你一定想優化asp,諸如更換性能更優異的數據庫、建立索引、編寫存儲過程等等。這些措施有些不需要增加成本壓力,有些則成本壓力很大(譬如叢access到SQL),而且效果還不一定。
面對web訪問壓力,我認為最經濟的辦法是利用緩存優化技術來實現緩解 web的服務壓力。
Web訪問量增加通常意味著以下資源需求的快速增長:
1、 網卡流量增加,需要消耗更多的CPU處理網絡流量和網絡I/O線程。
2、 需要更頻繁的打開/關閉數據庫連結(如果使用數據庫技術—通常asp都會采用數據庫作為數據存儲),嚴重消耗資源的事物數量、以及事務相互競爭資源引起的死鎖、會增加網絡I/O或者CPU消耗。
3、 如果采用session的話,IIS為了維持狀態,會消耗更多內存,而內存消耗可能會引發物理內存不夠,引起物理內存同輔存間的頻繁交換,從而引起代碼執行的停頓,web響應阻滯。
4、 由于訪問的不到及時響應,會引起網頁訪問故障,導致用戶刷新,從而加劇CPU、內存等資源需求。
實際上,考慮通常的web應用程序,很多時候的動態代碼執行是不必要的。
二、asp緩存的分類
擅自總結,asp的緩存可以分為兩類:
1、 文件緩存
所謂文件緩存,就是根據邏輯判斷,一段時間內某個asp的特定執行將不會有很大的變動,因而將內容以靜態html的形式存放,然后以web的重定向技術讓客戶端訪問靜態文件,以達到減少CPU、數據庫資源等的需求。這樣的應用很多,譬如很多論壇就是在回復貼子的時候將整個貼子重新生成一個靜態文件,然后進行重定向的,例如 donews.com的論壇。該成靜態還有一個副作用(好處)–可以很容易被google等搜索引擎收錄。一些所謂新聞發布系統的都采用了此技術。
2、 文件片斷緩存
所謂文件緩存,也是基于邏輯判斷,某部分數據(通常是需要消耗資源的大容量數據庫查詢取得)在一定時間內不會改變,所以我們可以將這些數據利用文件的形式進行存儲,當需要時候,可以通過讀取文件來獲取數據,避免增加數據庫的負擔。例如,我們通常將一些數據以xml格式存儲,然后利用xslt技術實現顯示(xml處理通常需要大量CPU資源,所以通常是IE直接讀取xml到客戶端在客戶的CPU上進行處理)。CSDN的論壇就是這樣處理的。
3、 主存緩存
除此之外,還可以考慮在內存中處理緩存,將需要及時響應的內容存儲在內存中,一旦訪問需求,立即從快速的貯存中輸送出去。如果極大量的訪問需求集中在幾個少量的頁面或者主存足夠多,我想采用主存緩存一定可以大幅度提高web訪問性能。
新聞熱點
疑難解答