自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

優(yōu)化DotNetNuke網(wǎng)站性能的10個技巧

開發(fā) 后端
隨著越來越多的人開始應用DNN,被問到最多的一個問題就是如何提高DNN的運行速度?默認的DNN配置并不是最優(yōu)化的配置,在這里就和大家分享一下優(yōu)化DNN的技巧。

以下的這些配置是目前為止我所發(fā)現(xiàn)的最佳基準配置,依據(jù)不同的主機運行環(huán)境,更新頻率,訪問量,以及用戶數(shù)量,網(wǎng)站的優(yōu)化配置會有些不同。經(jīng)過優(yōu)化的DNN也是可以運行得很快的。
以下我將使用DNN5.01中文版示范,這些技巧同樣適用于DNN4.x。

1. 主機管理 -> 主機設(shè)置中的基本優(yōu)化

首先我們來優(yōu)化主機設(shè)置,我僅在這里指出關(guān)鍵的設(shè)置

外觀

“顯示版權(quán)信息”:禁用此項

◆高級設(shè)置 -> 身份驗證設(shè)置 (只適用于DNN4.x,DNN5設(shè)置方法見下) 禁用不需要的身份驗證方式, 通常我會禁用LiveID和OpenId以增加用戶登陸的速度

◆高級設(shè)置 -> 性能設(shè)置

◆網(wǎng)頁狀態(tài)保存方式:“頁面”,這里是指viewstate的存儲方式

◆模塊緩存方式:“重量級緩存”,這里使用的是頁面輸出緩存

◆客戶端緩存:“Public”,這樣瀏覽器就會緩存js,css,圖片這些資源文件

◆壓縮設(shè)置:“GZip方式壓縮”,注意這里只是Gzip壓縮只是壓縮aspx動態(tài)頁面,javascript, css等資源文件請在IIS中設(shè)置壓縮。壓縮后頁面大小一般會減少60%以上,速度提高也節(jié)省帶寬。

◆高級設(shè)置 -> 其它設(shè)置

◆任務(wù)調(diào)度模式: “計時器模式”,HTTP請求模式對訪問率低的網(wǎng)站會造成初次訪問加載過重的現(xiàn)象。啟用事件記錄緩存? :選中此項。是否自動同步文件? :禁用此項

2. 卸載不需要的模塊和Provider

卸載不需要的模塊可以提高加載網(wǎng)站的速度,卸載模塊后模塊對應的程序集(dll)也會從bin文件夾中移除,這樣會減少初次讀取網(wǎng)站時加載程序集到內(nèi)存的數(shù)量,以提高網(wǎng)站讀取速度。DNN安裝向?qū)е心J模式只會安裝基本的模塊和Provider, 但如果安裝時選擇了全部模塊及Provider請按以下方式卸載, 當需要時再安裝。

DNN4.x :“主機管理 -> 模塊定義” 中刪除不需要的模塊

DNN5.x :“主機管理 -> 功能擴展” 中刪除不需要的擴展,例如不需要論壇時就不要安裝,網(wǎng)站不提供OpenId驗證方式就卸載掉。

3. 禁用不需要的身份驗證方式

此設(shè)置只適用于DNN5, 在DNN5中如果安裝了多種身份驗證方式,例如OpenID, LiveID, Active Directory在站點管理中可以針對不同的站點關(guān)閉開啟需要的驗證方式,這點比DNN4.x要靈活。在這里我們要禁用不需要的身份驗證方式已提升登陸頁面速度。 在“站點管理 -> 功能擴展中”選擇擴展類型“Authentication System(身份驗證系統(tǒng))”然后編輯不需要的身份驗證系統(tǒng)并禁用,通常我會只開啟Default Authentication(默認的DNN驗證方式),禁用:

DNN_OpenIDAuthentication

DNN_LiveIDAuthentication

DotNetNuke Active Directory Authentication Project

4. 調(diào)度管理的設(shè)置

在“主機設(shè)置 -> 調(diào)度管理中”根據(jù)需要延長或關(guān)閉不需要的調(diào)度任務(wù),以防止頻繁執(zhí)行調(diào)度任務(wù)增加服務(wù)器壓力。

如果網(wǎng)站不提供站內(nèi)搜索,則禁用DotNetNuke.Services.Search.SearchEngineScheduler

如果網(wǎng)站提供站內(nèi)搜索,則把DotNetNuke.Services.Search.SearchEngineScheduler任務(wù)頻率設(shè)置為1天重試頻率設(shè)為12小時,這將會極大的減緩服務(wù)器壓力。

同樣把DotNetNuke.Services.Scheduling.PurgeScheduleHistory任務(wù)頻率設(shè)置為1天

以上1-4就是最基本的通過網(wǎng)站配置實現(xiàn)的優(yōu)化,總的來說以上的改變會帶來顯著的性能提升,但大多時間仍然不能足夠的保正網(wǎng)站平滑的運行,因此依據(jù)不同情況我會進行以下的優(yōu)化。

5. 定期清除事件記錄

很多用過DotNetNuke的朋友會發(fā)現(xiàn)數(shù)據(jù)庫中[EventLog] 表(記錄站點“事件記錄”的表)可能會成為導致性能下降的罪魁禍首因為DNN網(wǎng)站中的很多操作都會被記錄到事件記錄(EventLog)中, 開啟事件記錄緩存會減緩尺寸過大的[EventLog]表對網(wǎng)站帶來的副作用,但是最佳的優(yōu)化方法莫過于定期清除“事件記錄”。 方法有很多種

如果只有一個站點,用主機管理員(host)帳號登陸在站“點管理 -> 事件記錄”中選擇清除所有記錄。如果有很多站點一個一個清除很麻煩,直接到 “主機管理 -> SQL查詢” 里運行 "TRUNCATE TABLE eventlog" 則可一次清除[eventlog]的所有記錄。如果對數(shù)據(jù)庫有管理權(quán)限則可設(shè)置數(shù)據(jù)庫調(diào)度任務(wù)定期自動執(zhí)行"TRUNCATE TABLE eventlog"

另外也可以使用Scheduled SQL Jobs這個免費模塊來定期清空事件記錄

請記住,我們必須保持“事件記錄” (eventlog表)的記錄數(shù)在一個很小的范圍內(nèi),這樣才能保證網(wǎng)站的運行效率,很多國外收費很貴的DNN專用主機空間所作的主要優(yōu)化就是定期清除事件記錄。當然在“站點管理 -> 事件記錄 -> 編輯記錄設(shè)置" 中關(guān)閉不需要的記錄,例如APPLICATION_START, APPLICATION_END也是個不錯的方法。

6. 皮膚優(yōu)化

皮膚優(yōu)化也是很重要的,購買或制作皮膚時一定要選用支持XHTML的使用DIV+CSS制作的皮膚,這會增加網(wǎng)頁讀取的流暢度,css也可以被瀏覽器緩存也可以增加頁面讀取速度。 另外選擇一個支持CSS的菜單控件,例如House Menu皮膚控件來替換默認的皮膚控件可以減少頁面尺寸30%甚至更多。優(yōu)化后的皮膚可令頁面讀取速度減少50%以上。

另外關(guān)于客戶端優(yōu)化Yahoo的網(wǎng)站優(yōu)化最佳實踐是個很好的指南,我們也可以下載Firefox中的YSlow插件來查看優(yōu)化的效果。

7. 防止網(wǎng)站重新加載編譯

很多人對DNN速度慢的印象大多來自于初次訪問速度過慢,這其實是因為Asp.Net網(wǎng)站初次加載到程序池需要進行動態(tài)編譯導致感覺速度很慢,其實加載之后速度就會很快了。 另外對于訪問量不多的網(wǎng)站, 網(wǎng)站在靜止一段時間后會被從程序池中踢出,當有用戶訪問時網(wǎng)站會重新加載編譯,所以對于訪問量少的網(wǎng)站用戶總是覺得網(wǎng)站很慢。 解決這個問題的關(guān)鍵是保持網(wǎng)站在程序池中活躍,以防網(wǎng)站重新加載。這方面的工具不少,原理一般就是定時ping網(wǎng)站保持網(wǎng)站活躍。

我比較推薦的是一個免費工具Smarter Ping 之前有個客戶的網(wǎng)站訪問量很小導致每次訪問網(wǎng)站都會重新加載,一般要等2,30秒,在使用了Smarter Ping之后每次都是一下就打開了不超過2秒。 Smart Ping是一個Windows Service它會定時ping你預設(shè)的網(wǎng)站,這里建議時間間隔設(shè)為10分鐘一次,另外DNN也有提供一個專門響應這類工具的網(wǎng)頁在網(wǎng)站根目錄下”KeepAlive.aspx“ 添加要ping的網(wǎng)址時則可設(shè)為http://www.mydnn.com/KeepAlive.aspx

8. DNN優(yōu)化模塊

在這里不得不提Snapsis PageBlaster這個優(yōu)化模塊,它可以提供全方位的優(yōu)化,例如頁面壓縮, 緩存, 合并靜態(tài)文件減少http請求... 大大提升頁面讀取速度。如果前面優(yōu)化效果不理想可以試試這個模塊。

9. 服務(wù)器優(yōu)化建議

在不同運行環(huán)境下的優(yōu)化配置

云平臺:類似于Mosso這種云服務(wù)平臺也是可以支持DNN的,但是在這種環(huán)境下模塊緩存到內(nèi)存是不工作的,所以在主機設(shè)置里我們要把“模塊緩存方式”設(shè)為硬盤,這樣會提升20-30%的性能。其它的設(shè)置基于以上優(yōu)化不用變動。

共享主機:共享主機中"模塊緩存方式"設(shè)置為內(nèi)存沒什么問題,因為內(nèi)存比磁盤要快很多,但是對于很繁忙的Web服務(wù)器,例如存放上百個網(wǎng)站的Web服務(wù)器使用共享的應用程序池,每個網(wǎng)站分配到的內(nèi)存可能都會很少,這種情況下緩存到內(nèi)存的命中率會很低,大部分時間會從服務(wù)器重新請求,這時設(shè)置“模塊緩存方式設(shè)”為硬盤的效果會好些。

虛擬主機:情況和共享主機類似,“模塊緩存方式”默認設(shè)置為內(nèi)存,根據(jù)具體情況如果網(wǎng)站很多覺得速度慢改為硬盤試試看。

對于在本地測試使用debug模式在Visual Studio中運行的朋友,不要期待在這種環(huán)境下速度會很快,這種模式下運行DNN這種大型網(wǎng)站會很吃力,在IIS中設(shè)置網(wǎng)站速度會提高不少。

10. 修復反復發(fā)生的錯誤

反復發(fā)生的錯誤異常是所有網(wǎng)站的性能殺手, 每當有不能處理的異常拋出都會對.net的進程造成一些影響,并且DNN系統(tǒng)會捕捉并記錄異常到數(shù)據(jù)庫的[EventLog]表,對于高訪問量的網(wǎng)站這種代價是很難承受的。經(jīng)常查看“站點管理 -> 事件記錄”確定沒有反復發(fā)生的錯誤是保證網(wǎng)站正常工作的前提。 如果發(fā)現(xiàn)此類異常要及早處理, 異??赡苁怯傻谌侥K造成,也可能是系統(tǒng)本身的bug,對于不熟悉.Net除錯和DotNetNuke系統(tǒng)的朋友,可能會比較麻煩,這時最好利用社區(qū)的幫助或者咨詢專業(yè)公司。

總結(jié)

以上就是我優(yōu)化DotNetNuke網(wǎng)站性能的一些經(jīng)驗, 希望有自己獨門優(yōu)化秘籍的朋友也來和大家分享分享,讓DNN運行速度越來越快!!

 

責任編輯:彭凡 來源: cnblogs
相關(guān)推薦

2022-02-25 23:46:54

JavaScript網(wǎng)站開發(fā)

2022-10-09 13:36:44

接口性能優(yōu)化

2024-01-22 13:16:00

接口性能優(yōu)化本地緩存

2011-05-10 17:06:05

SEO

2020-03-25 08:00:32

Kubernetes節(jié)點工作

2024-06-21 08:21:44

2011-06-29 17:08:51

網(wǎng)站優(yōu)化

2024-08-26 11:50:08

2019-08-21 10:53:29

.NET性能優(yōu)化

2011-07-07 18:39:22

SEO

2023-02-07 08:00:00

MySQL數(shù)據(jù)庫技巧

2018-02-23 13:55:16

ASP.NET性能優(yōu)化技巧

2021-11-18 08:20:22

接口索引SQL

2013-09-26 10:39:35

Windows 7優(yōu)化技巧

2024-12-02 14:28:17

JavaScriptWeb開發(fā)

2009-06-16 16:39:49

Hibernate性能

2011-04-28 16:55:07

電子商務(wù)網(wǎng)站設(shè)計網(wǎng)站

2017-02-05 17:33:59

前端優(yōu)化Web性能

2011-06-14 10:35:15

性能優(yōu)化
點贊
收藏

51CTO技術(shù)棧公眾號