成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET中性能和擴展性的秘密

開發 后端
這篇文章中,你可以學到一些提高你的asp.net網站性能的技巧。

ASP.NET有許多一旦你發現了就會大幅提高性能和擴展性的秘密。比如:在membership和Profile provider 中就有快速實現驗證和授權的秘密。此外:ASP.NET的http管道可以避免每個請求中的不必要代碼。還不只是這些,ASP.NET的線程可以充分發揮性能。瀏覽器的頁面片斷緩存機制(不是服務器緩存)可以在反復的訪問中節約下載時間。在界面加載完成后給你的網站提供快速流暢的體驗。最后,CDN和適當的使用http緩存頭可以使你的網站訪問飛快。這篇文章中,你可以學到一些提高你的ASP.NET網站性能的技巧。
我們要討論的問題:
◆管線最佳優化
◆ASP.NET過程最佳處理
◆進行之前要對ASP.NET做的事情
◆內容傳送網絡
◆在瀏覽器中緩存AJAX請求
◆優化緩存機制
◆優化頁面裝載速度提高用戶體驗
◆盡可能的優化ASP.NET 2.0的profile provider.
◆在不布置網站的情況下如何查詢membership表
◆DOS攻擊
以上技巧可用于任何基于ASP.NET的網站,尤其是使用了membership和profile provider的網站。
1.管線最佳優化
一些ASP.NET默認的HttpModules 管理請求的管線并且每一個請求。例如:SessionStateModule攔截每一個請求,分析session cookie 來加載HttpContext中的合適的session.但是并不是所有的Modules都是必需的,比如:如果你不用membership的話,就不用配置FormsAuthentication模塊;如果你不用windows身份驗證就不用配置WindowsAuthentication,這些模塊只是包含在管線里面,為每一個請求執行一些并不是必須的代碼。默認的模塊定義在machine.config中($WINDOWS$\Microsoft.NET\Framework\$VERSION$\CONFIG)
如下所示:

 

  1. <httpModules> 
  2.   <add name="OutputCache" type="System.Web.Caching.OutputCacheModule" /> 
  3.   <add name="Session" type="System.Web.SessionState.SessionStateModule" /> 
  4.   <add name="WindowsAuthentication" 
  5.         type="System.Web.Security.WindowsAuthenticationModule" /> 
  6.   <add name="FormsAuthentication" 
  7.         type="System.Web.Security.FormsAuthenticationModule" /> 
  8.   <add name="PassportAuthentication" 
  9.         type="System.Web.Security.PassportAuthenticationModule" /> 
  10.   <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorization
  11. Module" /> 
  12.   <add name="FileAuthorization" type="System.Web.Security.FileAuthorization
  13. Module" /> 
  14.   <add name="ErrorHandlerModule" type="System.Web.Mobile.ErrorHandlerModule,  
  15.                              System.Web.Mobile, Version=1.0.5000.0,  
  16.                              Culture=neutralPublicKeyToken=b03f5f7f11d50a3a/> 
  17. httpModules> 

如果你想去掉這些默認的設置,只需要在你的web.config里加入節點。

 

  1. <httpModules> 
  2.           
  3.          <remove name="Session" /> 
  4.          <remove name="WindowsAuthentication" /> 
  5.          <remove name="PassportAuthentication" /> 
  6.          <remove name="AnonymousIdentification" /> 
  7.          <remove name="UrlAuthorization" /> 
  8.          <remove name="FileAuthorization" /> 
  9. httpModules> 

上面的配置適用于基于數據庫的form認證并且不需要任何session支持的網站。所以這些節點可以被刪除。
2.ASP.NET進程配置優化
asp.net進程模型進行一些進程級別設置,比如ASP.NET使用多少線程,超時時間,多少請求等待輸入輸出工作的完成等等。默認情況下有很多限制。現在硬件越來越便宜,G級內存的服務器普遍存在,所以現在進程配置的優化可以得到更多的系統資源和擴展。
一般情況下,ASP.NET的mashine.config的配置是這樣的:

 

  1. <system.web> 
  2.     <processModel autoConfig="true" />   
  3. system.web> 

你應該改變這樣的配置,用一些值設置不同的屬性來定制ASP.NET線程的工作方式。如下所示:

 

  1. <processModel 
  2.    enable="true" 
  3.    timeout="Infinite" 
  4.    idleTimeout="Infinite" 
  5.    shutdownTimeout="00:00:05" 
  6.    requestLimit="Infinite" 
  7.    requestQueueLimit="5000" 
  8.    restartQueueLimit="10" 
  9.    memoryLimit="60" 
  10.    webGarden="false" 
  11.    cpuMask="0xffffffff" 
  12.    userName="machine" 
  13.    password="AutoGenerate" 
  14.    logLevel="Errors" 
  15.    clientConnectedCheck="00:00:05" 
  16.    comAuthenticationLevel="Connect" 
  17.    comImpersonationLevel="Impersonate" 
  18.    responseDeadlockInterval="00:03:00" 
  19.    responseRestartDeadlockInterval="00:03:00" 
  20.    autoConfig="false" 
  21.    maxWorkerThreads="100" 
  22.    maxIoThreads="100" 
  23.    minWorkerThreads="40" 
  24.    minIoThreads="30" 
  25.    serverErrorMessageFile="" 
  26.    pingFrequency="Infinite" 
  27.    pingTimeout="Infinite" 
  28.    asyncOption="20" 
  29.    maxAppDomains="2000" 
  30. /> 

 

除了下面的值外都是一些默認值:
maxWorkerThreads:默認每個進程是20個線程。在雙核的服務器上,系統會分配40個線程給ASP.NET,這就意味著ASP.NET在雙核服務器上同時可以處理40個并發請求。為了給ASP.NET的每個進程增加線程,我曾經設置過100.如果你的應用的CPU強勁而且有更多的請求需要,你可以設置這個屬性。特別是你的網絡就用使用了大量的webservice或者上傳/下載大量數據這些不會把壓力轉到CPU上的時候。當ASP.NET用完了所有的線程,它會停止接收更多的響應。請求會排成隊列等待直到其它工作中的線程被釋放。這種情況經常發生在網站接收到超出預期的點擊的時候,這種情況下,如果你有備用的CPU,請增加進程的線程數量。
maxIOThreads:默認是20個。雙核服務器中系統會提供40個I/O線程給ASP.NET.I/O請求可以用于網站的文件讀寫,數據庫讀取,webservice調用,http請求等等。你可以把它設置的更高一點,特別是在你的網站做并發的上傳/下載和 webservice調用的時候。
minWorkerThreads:當ASP.NET自由工作線程低于這個值時,ASP.NET會推送一些請求進入隊列。所以你可以設置一個低值來增加當前的請求數量。當然這個值不能設置的太低,因為網站要做一些后臺處理和并行處理,這些工作都是需要一些線程來運行的。
minIOThreads:和minWorkerThreads相當,只不過是針對I/O進程進行的設置。它可以設置的比in case of 低,因為I/O并行處理線程沒有什么問題。
memoryLimit:指定最大的內存使用大小。它指定的是占所有系統內存的百分比,是指定系統處理進程時可以使用的最大內存數。如果服務器上只有你自己的網站而且沒有其它的使用內存的進程,你可以把它設置的高一些,比如:80.如果你的網站存在內存泄露問題,你最好把這個值設置的低一點,這樣泄露的內存不久就會釋放出來,這樣會保持網站的正常運行。特別是你在使用COM組件造成內存泄露的時候。當然這只是個臨時方案,最終你還是要解決這個內存泄露的問題。
除了processModel之外,ASP.NET還可以設置單一IP最大的請求數量:

 

 

  1. <system.net> 
  2.   <connectionManagement> 
  3.     <add address="*" maxconnection="100" /> 
  4.   connectionManagement> 
  5. system.net> 

默認是2,這個值太低了。這意味著每一個IP最多只能有兩個請求到你的網站,這樣會造成請求擁堵。這里設置成了100,當然有必要的話,你可以設置得更高。

 

編輯推薦】

  1. 淺談ASP.NET中ViewState與ViewData的區別
  2. ASP.NET 3.5圖表控件親密接觸
  3. 自己動手實現Asp.net的MVC框架
  4. ASP.NET MVC應用程序的本地化、單元測試和AJAX應用
  5. ASP.NET中防止用戶多次登錄的方法
責任編輯:佚名 來源: 博客園
相關推薦

2017-01-05 19:29:10

公共云云存儲微軟

2023-10-11 13:46:26

緩存Web應用程序

2018-04-10 14:38:10

區塊鏈

2009-11-30 17:47:24

2021-12-09 05:36:16

云存儲可擴展性數據存儲云存儲

2012-12-24 09:23:27

ASP.NETC#IIS

2021-09-02 09:42:11

測試軟件可擴展性開發

2010-06-30 17:15:39

向外擴展SQL Ser

2011-03-01 11:31:38

SOA甲骨文

2011-09-20 09:34:09

Windows Ser微軟虛擬化

2010-07-21 11:21:05

SQL Server

2011-10-14 10:37:54

ASP.NET

2010-07-01 11:38:13

向外擴展 SQL Se

2022-09-05 15:17:34

區塊鏈比特幣可擴展性

2009-07-24 16:15:00

擴展ASP.NET G

2009-09-03 17:18:40

C#擴展性對象模型

2015-05-13 17:15:01

Elasticsear分布式搜索插件

2009-07-29 16:08:07

ASP和ASP.NET

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

2009-09-03 17:33:08

C#常規擴展性模型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 老司机67194精品线观看 | 自拍偷拍欧美 | 精品日韩一区 | 亚洲免费成人av | 国产伦精品一区二区三区高清 | 亚洲精选一区 | 7777奇米影视 | 午夜天堂精品久久久久 | 欧美日在线 | 日韩欧美在线不卡 | 亚洲日韩中文字幕一区 | 日韩欧美三区 | 亚洲 欧美 日韩 在线 | 欧美日韩在线播放 | 国产高清视频在线 | 亚洲精品第一国产综合野 | 成人综合视频在线 | 欧美网址在线观看 | 欧美男人天堂 | 国产精品日日夜夜 | 欧美成人一区二区 | 永久看片| 久久久久久久久99 | 精品一区二区久久久久久久网精 | 中文字幕一区二区不卡 | 精品伦精品一区二区三区视频 | 91国产精品在线 | 亚洲精品在线看 | 欧美视频一级 | 精品综合久久久 | 欧美中文字幕在线观看 | 不卡一区| 国产成人在线视频免费观看 | 国产精品久久一区二区三区 | 国产精品高潮呻吟久久av黑人 | 国产成人在线一区二区 | 精品麻豆剧传媒av国产九九九 | 欧美欧美欧美 | 在线免费观看一区二区 | 欧美精品v | 中文字幕1区2区 |