衡量Web性能的方法

發表于:2008-05-06來源:作者:點擊數: 標簽:webWebWEB性能
衡量web服務器性能的唯一方式是對服務器進行壓力測試(stress testing) 1. 自動 壓力測試工具 是衡量的唯一方式 2. 瀏覽器的點擊刷新并不能作為痕量手段…… l 收集多個典型應用場景方案: 1. 在應用車工女婿執行過程中模擬典型事物處理的過程 2. 痕量常用的
衡量web服務器性能的唯一方式是對服務器進行壓力測試(stress testing)
1. 自動壓力測試工具是衡量的唯一方式
2. 瀏覽器的點擊刷新并不能作為痕量手段……
l 收集多個典型應用場景方案:
1. 在應用車工女婿執行過程中模擬典型事物處理的過程
2. 痕量常用的單個頁面的性能(熱點)
3. 確定個場景及個頁面的使用率
l 通過測試找出系統的新能指標:
1. 服務器的處理能力
2. 確定適合可接受TTFB/TTLB響應時間范圍的可支持的最大客戶端負載(并發用戶)
性能測試工具
l 微軟Web Application Stress Tool
1. 可免費下載(10MB),適用于XP、2000、2003
2. http://www.microsoft.com/technet/treeview/default.aspx?url=/technet/itsolutions/intranet/downloads/webstres.asp
l 微軟應用程序中心測試工具(Microsoft Application Center Test)
1. 作為VS.NET Enterprise 的一部分提供給客戶
2. 啟用更豐富的腳本及報告
主要的性能測試觀測項PerfMon Counters
l Processor,CPU % Utilization
Low numbers = blocking or lock contention
l ASP.NET,Requests In Application Queue
出現線型增長時表示服務器已達滿負荷
l ASP.NET,Applications,Requests/Sec
動態吞吐量(應保持一致、無大的波動)
l ASP.NET,Applications,Errors Total
預示著功能級錯誤(應為0)
l ASP.NET App/Worker Process Restarts
表示有嚴重錯誤編程級錯誤(應為0)
壓力測試環境的注意事項
l 在獨立與Web服務器及應用服務器的機器上運行壓力測試工具
1. 否則工具將超出服務器CPU的最大范圍
2. 對于繁重的負載使用多個客戶端機器
l 對測試進行配置,以模擬不同的客戶端帶寬級別
1. 特定用于衡量56K撥號
l 消除應用之外的任何瓶剄:
1. 網絡、客戶端等
邏輯設計
l 建議:采用3層邏輯模型
1. Pages and User Controls UI
2. Business and Data Aclearcase/" target="_blank" >ccess classes in \bin dir
3. Data withwin a SQL Database via SPROCs
l 設計系統時要考慮到Scale-Out的情形
1. 不要假設客戶端的請求
l 永遠會返回到同一機器
使用最佳的Data Provider
l ADO.NET 可支持多個Provider:
1. System.Data.SqlClient
2. System.Data.OracleClient
3. System.Data.OleDb
4. System.Data.Odbc
l 所有Provider的編程模型相同
1. 但是性能方面存在明顯差異
l 建議:使用最佳
1. 在訪問MSDE/SQL 是始終使用SqlClient
2. 在訪問Oracle時始終使用OracleClient
DataReader vs.DataSets
l DataReader
1. 對查詢的結果提供了單向讀取的操作
2. 輕量快速-但在Reader關閉之前數據庫始終處于連接狀態
l DataSet
1. 非連接的數據訪問方式
2. 內部使用DataReader用戶獲取數據
3. 在完成DataSet的獲取后會自動關閉DataReader
l Which is better?
1. 依賴于你的應用
2. 原則上在Middle_Tier設計到大量數據處理或進行離線的數據訪問時建議使用DataSet
連接池
l ADO.NET擁有內置的連接遲
1. 自動緩寸/重新使用連接
2. 不必為此編寫任何代碼
l 代碼建議
1. “在后期打開代碼中的連接,然后在早期將其關閉”
2. 切無長時間保持連接狀態 �C 切無嘗試構建你自己的“智能”連接池邏輯
3. 完成后應立即顯示地關閉數據庫連接,以將其返回致池中
l 優化提示:
1. 不同的連接字符串可以生成多個不同的連接池
2. 在Web.Config中存儲單個連接字符串
3. 使用ConfigurationSettings.AppSettings以在運行時采用編程形式對其進行訪問
4. 觀察”.NET CLR數據“性能計數器,以變對由ADP.NET維護的連接池數量保持
使用存儲過程
l 建議將SPROC用于數據存取
1. 通過DBA進行更輕松的性能調試
2. 通過使用數據庫事務處理避免出現分布事務成本
3. 有助于防止SQL注入攻擊
4. 有助與消除應用與數據庫反復調用的成本
服務器控件
l 對性能優化而言有兩點需要注意:
1. ViewState
2. Number of controls generated(especially for lists)
ViewState管理
l ASP.NET controls能夠維護頁面Control元素的狀態:
1. 狀態以”viewstate” hidden field進行傳遞
l 負面影響:
1. 增加網絡負荷(both on render and postback)
2. 額外的服務器性能消耗(serialize values to/from viewstate)
l ViewState靈活性:
1. 頁面級(Can disable viewstate entirely for a page)
2. 控件級(Can disable viewstate usage on a per control basis)
l 建議
1. 認真審核該功能的使用
2. 若不使用PostBack功能,在頁面級屏蔽ViewState
3. PostBack時沒次都重新生成控件,請對控件級的ViewState屏蔽
4. 使用<%@ Page Trace=”true”%>跟蹤ViewState的大小

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97