• <td id="ae6ms"><li id="ae6ms"></li></td>
  • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
  • <table id="ae6ms"></table>
  • <td id="ae6ms"></td>
    <td id="ae6ms"></td>
  • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
  • <td id="ae6ms"></td>
  • <table id="ae6ms"><li id="ae6ms"></li></table>
  • <table id="ae6ms"></table>
    西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
    軟件
    軟件
    文章
    搜索

    首頁編程開發其它知識 → Win2003+IIS6.0搭載web服務器如何進行性能優化

    Win2003+IIS6.0搭載web服務器如何進行性能優化

    相關軟件相關文章發表評論 來源:西西整理時間:2012/5/21 9:47:29字體大?。?em class="fontsize">A-A+

    作者:佚名點擊:358次評論:21次標簽: 性能優化

    • 類型:游戲其他大?。?i>4KB語言:中文 評分:5.0
    • 標簽:
    立即下載

    問:好多asp.net程序,放在一臺服務器上,客戶端連接使用一段時間后,在服務器上打開任務管理器一看,發現有很多w3wp.exe,占用內存很大,達到1g,請問為什么會這樣?有什么辦法可以避免這種情況呢?

    答:這主要是你的ASP.NET 開發的程序有 內存泄漏;對于 非托管資源,一定要注意 釋放。

    問:我的具體情況是這樣的:

    服務器配置 至強2.8G 內存512M SCSI硬盤 2塊 (軟鏡像)

    系統 windows 2003

    現在掛了一個asp.net開發的網站 訪問量不大 但是出現一個 題目就是

    每當服務器運行2-3天后 訪問網站就特別慢 重啟動服務器后就 正常了

    查看進程使用內存的情況 發現w3wp.exe 和sqlservr.exe 進程 占用內存

    相當大 達到了170多M( 每個) 物理可用內存幾乎用光

    (服務器重啟動時 占用的內存很小才40多M 每個)

    以前網站掛在一個虛擬機數據庫是分開掛的 從沒出現這種情況

    后來 原版移植到新服務器上就 出現這樣的題目~~

    還個一題目就是 我在SQL企業管理器中查看SQL進程 發現有很多是 。net 引起的進程是sleeping 但是卻占用了內存~ 無法釋放

    搞了很久了 一直都沒解決,求救~~請高手 指教~~ 萬分感謝~~~~~

    答:IIS服務管理器----》應用程序池----》添加你的應用,并設置最大內存,當程序達到最大內存后其會自動重啟。

    我的題目跟你一樣,不過我的內存是2G的,訪問量比較高,一般是差未幾運行24小時后就得重啟,內存沒耗完,W3WP進程占到一百***十兆,SQL占了二百多兆時,就得重啟,不然整個站點就當在那邊....55555555,搞了快半個月了還是不行,痛苦啊

    w3wp.exe 就是你的ASP.NET應用宿主,假如你使用了大量的Session、Cache等資源,并且Session超市時間很長,那么內存占用量就比較大。應用池是為增加性能而設的一個特性,但是也消耗很大的內存。另外關掉Windows Server 2003里的大多數Service(那個不用都可以關掉),也可以節省一部分內存

    1.懷疑在程序中應用的CACHE,

    2.CACHE中有大量的數據

    3.頻繁刷新CACHE

    4.沒有設計好CACHE的方式

    你的問題我以前也遇見過,我以前是用的Session,后我全部改成cook之后就好多了,應該是你的Session或是你的CACHE有問題(CACHE不太懂,但多多少應該是有的)

    跟蹤下SQL的調用記錄,在每次往CACHE或SESSION寫入大量數據時記錄一下時間,看是否太過頻繁

    1.在win2003里asp.net的進程就是w3wp.exe

    2.512M 內存個人用是夠用了,但是放在服務器上就有點不夠用了,尤其是win2003 + asp.net +sql server 。尤其是sql server 他是很吃內存的,假如不控制的話,他會占光所有的物理內存(只剩下幾十M 倒 100M 吧)。win2003 本身就要占用150M左右。也就剩不下什么了。

    3.優化asp.net程序,就向樓上的說的那樣,少用或不用session cache application之類的東西,再有就是是不是有翻頁的地方,翻頁處理不好也是會占很多內存的。

    4.限制sql的內存。企業管理器——SQL的屬性(一般是local)——“內存”標簽

    在這里看內存的設置,把最大值改成100M吧。

    第四條是最快的方法,可以試一試。

    我的一個自開發OA系統也存在這樣的問題。

    總結上面,大概原因是因為 session 和 cache 的不合理使用造成的。

    我的應用程序中,確實用了很多的Session 和 Cache,

    在 MSDN 中找到 了 “動態內存分配”這一篇,今天就試看看,是否有效。

    ??从薪涷灥呐笥讯嘟o些信息,大家也好總結下出現類似錯誤的原因,謝謝??!

    不知道你是什么網站。按理說是不會占用這么大的。如上你用了cache存放了超額的內容。當然。象session這種是不太可能占用這么大的了,或用了 application 類似的一些有超長時間或永久保持性的對象來保存大量數據。如利用單例保存數據這些都有可能造成使用大量的內存。

    建義2003系統安裝至少1G內存。

    w3wp.exe是2003下的一個iis進程,至于樓主說的sql占用內存,那有可能是因為你的sql沒有設置占用內存上限

    打造基于IIS 6.0的站點是很多企業的首選,但是IIS相對于其他Web平臺不但對硬件的要求比較高,而且其性能不夠盡如人意。如果沒有強勁的硬件平臺,用IIS搭建的Web站點確實有些老牛破車的味道。另外,IIS保守的默認設置讓這一切雪上加霜。如何在現有的硬件平臺上打造快捷的Web服務器呢?那就從IIS優化,為Web減負開始。
      1、禁止多余的Web服務擴展

      IIS6.0支持多種服務擴展,有些管理員偷懶或者不求甚解,擔心Web運行中出現解析錯誤,索性在建站時開啟了所有的Web服務擴展。殊不知,這其中的有些擴展比如“所有未知CGI擴展”、“在服務器端的包含文件”等是Web運行中根本用不到的,況且還占用IIS資源影響性能拖垮Web,甚至某些擴展存在漏洞容易被攻擊者利用。因此,科學的原則是,用到什么擴展就啟用什么擴展。

      如果企業站點是靜態頁面,那什么擴展都不要開啟。不過現在的企業站點都是交互的動態頁面比如asp、php、jsp等。如果是asp頁面,那只需開啟“Active Server Pages”即可。對于php、jsp等動態頁面IIS6.0默認是不支持的需要進行安裝相應組件實現對這些擴展的支持。不過,此時用不到的擴展完全可以禁用。

      禁止Web服務擴展的操作非常簡單,打開“IIS管理器”,在左窗格中點擊“Web服務擴展”,在右側選擇相應的擴展,然后點擊“禁用”即可。(圖1)

     

    2、刪除不必要的IIS擴展名映射

      IIS默認支持.asp、.cdx等8種擴展名的映射,這其中除了.asp之外其他的擴展幾乎用不到。這些用不著的擴展會加重web服務器的負擔,而且帶來一定的安全隱患。比如.asa,.cer等擴展名,就可以被攻擊者利用來獲得webshell。因為一般的asp系統都會限制asp文件的上傳,但如果沒有限制.asa或者.cer等擴展名,攻擊者就可以更改文件后綴突破上傳限制,運行.asa或者.cer的文件獲得webshell。(圖 2)

     

    刪除IIS擴展名的操作是:打開IIS管理器,右鍵單擊“默認Web站點”選擇“屬性”,點擊“主目錄”選項卡,然后點擊“配置”打開應用程序窗口,最后根據自己的需要選擇不必要的應用程序映射比如.shtml, .shtm, .stm等,然后點擊“刪除”即可。(圖3)

     

    3、取消訪問記錄

      IIS6.0默認開啟對于web的訪問記錄。當開啟記錄功能后,IIS會事無巨細地忠實記錄所有的web訪問記錄。這些記錄文件的內容是非常龐雜的,比如訪問時間、客戶端IP、從哪個鏈接訪問、 Cookies等,另外還包括 Method(方法), UserAgent(用戶代理)等。這些記錄不但占用大量的磁盤空間還大大地影響了web服務器的性能。有人做過評測,停止訪問記錄可以提升5%到8%的 web性能。而且這些記錄對于一般用戶,特別是中小型的Web站點沒有什么用途,簡直太耗費系統性能了,因此建議關閉它。

      取消訪問記錄的操作是:打開IIS管理器,定位到具體的web站點,右鍵點擊選擇“屬性”,在“主目錄”選項卡下取消對“記錄訪問”的勾選即可。(圖4)

     

    4、對訪問流量進行限制

      默認情況下IIS 6.0對于訪問量是沒有限制的,如果并發連接過大超過了Web的負載輕則發生網絡擁塞,重則導致服務器宕機。因此需要對用戶的訪問進行限制,控制Web訪問的流量。

      打開“Internet信息服務”管理器,在其窗口右側點擊主機名前面的“+”號,依次定位到某個Web站點上。選中該Web站點右鍵單擊選擇 “屬性”,在打開的屬性設置窗口中選中“性能”標簽,將“啟用帶寬限制”復選框選中,在隨后被激活的“最大網絡使用”設置框中,指定你的網絡站點帶寬的具體數值。大家可以根據服務器的性能及其訪問量綜合考慮繼續設置。對于一般的企業站點將帶寬流量設置為1500kb/s就差不多了。同時在“網站連接”下可以進行連接限制的設置,大家可以根據情況設置一個數值。完成以上設置后,IIS就只能使用其被授予的資源進行Web服務,杜絕了異常情況造成的服務器過載,為Web減負。(圖5)

     

    5、讓Web負載自由伸縮

      默認情況下IIS是全負荷地為Web提供服務的,這在一定程度上加重了Web負擔。如何能夠自動地根據負載變化自動調節工作進程呢?

      利用IIS 6.0的Web園,我們只需指定用于某個應用程序池的工作進程的數量就可以了實現各個Web站點之間的隔離。具體的配置步驟是:在“Internet信息服務”管理器中打開應用程序池的“屬性”對話框,轉到“性能”頁,在“Web園”下面的“最大工作進程數”輸入框中輸入進程數量。當服務器的負載較小,不需要額外的工作進程時,IIS 6.0在一定的時間后(默認20分鐘,可配置)自動縮減實際的工作進程數量;如果負載變大,需要額外的工作進程,IIS 6.0再次增加工作進程數量。另外,還可以“啟用CUP監視”,設置“最大CPU使用率”,“刷新CUP使用率值”以及“CPU使用率超過最大使用率是執行的操作”,這些設置可以根據需要進行設置。當一切設置完成后這一切就交給IIS自動進行,不需要管理員干預。 (圖6)

      

    6、配置應用呈現池

      IIS可以支持多個Web服務,特別是虛擬主機一臺服務器上有非常多的Web站點。如何才能做到各個站點之間相互獨立,不因某些Web站點出現故障而影響其他站點呢?為不同工作進程指定應用程序池是個很好的解決辦法。

      (1)、創建

      打開“IIS 管理器”中,展開本地計算機,右鍵單擊“應用程序池”,選擇“新建→應用程序池”。在“應用程序池名稱”框中,輸入新的應用程序池名稱。如果點選選“將現有應用程序池作為模板”,可以在“應用程序池名稱”下來列表中選擇相應的應用程序池,最后單擊“確定”即可。 (圖7)

    (2)、指派

      在“IIS 管理器中”,右鍵單擊你要為其指派應用程序池的站點然后單擊“屬性”。在該站點的屬性面板中“主目錄”選項卡,在“應用程序池”下拉列表中選擇剛才創建的應用程序池即可。如果所有的選項為灰色,單擊“創建”按鈕就可以輸入“應用程序名”,然后在“應用程序池”列表框中,選擇并指派網站的應用程序池了。(圖 8)

      

    (3)、回收

      利用“回收”功能,可是設置如何恢復系統資源進行IIS資源使用的靈活定制。打開“IIS 管理控制臺”,單擊“+”號依次“展開本地計算機→應用程序池”。選擇你要回收的應用程序池右鍵單擊選擇“屬性”,出現應用程序池的屬性對話框,單擊“回收”選項卡在其下可以設置“進程回收”、“內存回收”等,所有這些設置大家根據實際需要進行設置。(圖9)

      

    總結:通過上述IIS優化措施,Web服務器就能輕裝上陣其性能將會有較大的提升。當然,要從根本上改善Web性能,僅僅進行軟設置是不夠的。另外,還需要進行硬件改造,軟硬結合才是最完美的解決方案。

    管理互聯網信息服務器(Internet Information Server,IIS)大家都知道,它是一個既簡單而又麻煩的東西,簡單的是安裝它幾乎不需要費什么腦筋,選擇一下路徑,然后一路按“下一步”就可以完成;配置也比較簡單,只要有一定的NT和網絡知識,照著說明書就可以架設一個像模像樣的Web站點出來。然而管理IIS卻沒有想像的那樣簡單。使用一段時間以后,管理員往往會遇上服務器性能不良的情況。這時候,IIS的性能優化,就尤為重要了。

      導致IIS服務性能不良的原因有兩個方面。一個是人為的,也就是說管理員在安裝、配置IIS的時候沒有進行優化或者配置錯誤。另一個則是客觀上的,隨著運行的服務種類,以及訪問人數的增加,服務器原有的硬件配置已不能滿足要求了,這就需要提高硬件配置。

      在服務器配置上優化IIS性能

      1.IIS高速緩存是對IIS進行優化時要考慮的最重要的項目之一。服務器保留了一部分內存空間用作IIS高速緩存,為將來的請求存儲對象,這樣IIS就可從高速緩存中檢索對象而不用從硬盤中檢索。

      調整IIS高速緩存的容量需要修改注冊表,表項如下:

      \HKEY_LOCAL_MACHINE
      \System
      \CurrentControlSet
      \Services
      \InetInfo
      \Parameters
      \MemoryCacheSize
      MemoryCacheSize的范圍是從0道4GB,缺省值為3072000(3MB)。

      IIS通過高速緩存系統句柄、目錄列表以及其他常用數據的值來提高系統的性能。這個參數指明了分配給高速緩存的內存大小。如果該值為0,那就意味著 “不進行任何高速緩存”。在這種情況下系統的性能可能會降低。如果你的服務器網絡通訊繁忙,并且有足夠的內存空間,可以考慮增大該值。必須注意的是修改注冊表后,需要重新啟動才能使新值生效。

      2.使IIS使用處理器時間最長。服務器的CPU處理器能力總是有限的。哪一個應用程序占用處理器的時間最長,誰的性能就能得到最大的提高。

     ?。?)在NT的控制面板中,雙擊系統圖標。
     ?。?)單擊性能標簽。
     ?。?)在應用程序性能下將游標拖到None的位置,這樣就可以使所有正在運行的服務,包括IIS,使用處理器的時間達到最大值。

      3.服務器屬性設置。在服務器屬性里有一項可以使網絡應用程序的總處理能力最大的選項,你當然應該選擇它。

      (1)在桌面上右鍵單擊網絡鄰居圖標,然后選擇屬性選項。
      (2)單擊“服務標簽”。
      (3)單擊“服務器”,然后按“屬性”。
      (4)選擇最大化網絡應用程序的總處理能力。然后單擊“OK?!?

      提高硬件配置來優化IIS性能

      當進行了上述的優化配置,IIS的性能仍然沒有什么明顯改善的話,也許你應該考慮提高服務器配置了。如升級處理器,增加硬盤,升級網卡,增加內存等。

      優化IIS的注意事項

      為了避免以后的頭疼,在安裝IIS之時就應該注意到IIS的優化。比如:

      1.為了提高性能和節約資源,應該只運行需要的協議。這一點很多管理員都沒有注意,筆者曾見到在一臺只作Web服務的機器上同時安裝有NetBEUI、Tcp/IP和IPX協議。顯然這是不合理的。

      2.應該將IIS服務器,設置為獨立的服務器,不要讓服務器去承受域控制器要求的額外負荷。試想:服務器一邊在響應用戶的登錄,一邊還要提供IIS服務,性能能不下降嗎?

      3.可以把NT服務器的頁交換文件分布到多個物理磁盤上,注意是多個“物理磁盤”,分布在多個分區上是無效的。另外,不要將頁交換文件放在與WIndows NT引導區相同的分區中。

      4.使用磁盤鏡像或磁盤帶區集可以提高磁盤的讀取性能。

      5.關于日志的記錄,應該采用文件記錄而不是記錄到ODBC數據源。此外,還可以在記錄期間增加用來記錄日志的內存緩沖區的容量來減少磁盤的活動。該緩沖區的缺省容量值為64KB。

      6.最好把所有的數據都儲存在一個單獨的分區里。然后定期運行磁盤碎片整理程序以保證在存儲Web服務器數據的分區中沒有碎片。使用NTFS有助于減少碎片。筆者推薦使用Norton的Speeddisk,可以很快地整理NTFS分區。

      7.雖然SSL可以提供相當可靠的加密傳輸。但是所需的額外開銷會導致IIS服務器速度下降,尤其是在處理大型文件的時候。所以應該只對確實需要保護的目錄進行SSL加密。

      相關評論

      閱讀本文后您有什么感想? 已有人給出評價!

      • 8 喜歡喜歡
      • 3 頂
      • 1 難過難過
      • 5 囧
      • 3 圍觀圍觀
      • 2 無聊無聊

      熱門評論

      最新評論

      發表評論 查看所有評論(21)

      昵稱:
      表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
      字數: 0/500 (您的評論需要經過審核才能顯示)
      女人让男人桶30分钟免费视频,女人张开腿让男人桶个爽,一进一出又大又粗爽视频
    • <td id="ae6ms"><li id="ae6ms"></li></td>
    • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
    • <table id="ae6ms"></table>
    • <td id="ae6ms"></td>
      <td id="ae6ms"></td>
    • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
    • <td id="ae6ms"></td>
    • <table id="ae6ms"><li id="ae6ms"></li></table>
    • <table id="ae6ms"></table>