介紹
為什么要對(duì)應(yīng)用程序進(jìn)行壓力測(cè)試?
準(zhǔn)備運(yùn)行壓力測(cè)試
運(yùn)行壓力測(cè)試
計(jì)算壓力測(cè)試結(jié)果
成功運(yùn)行壓力測(cè)試的提示
結(jié)束摘要
Microsoft? Windows? DNA 應(yīng)用程序的開(kāi)發(fā)和部署中經(jīng)常被忽略的步驟是對(duì)應(yīng)用程序進(jìn)行壓力測(cè)試,確保當(dāng)生產(chǎn)環(huán)境中最大數(shù)量的授權(quán)用戶訪問(wèn)該應(yīng)用程序時(shí),它將按預(yù)期執(zhí)行。本文強(qiáng)調(diào)當(dāng)涉 及使用 Microsoft Data Access Components (MDAC) 開(kāi)發(fā)應(yīng)用程序時(shí)壓力測(cè)試的重要性,并且提供一些提示使該過(guò)程更容易完成。
本文的目的是幫助有經(jīng)驗(yàn)的開(kāi)發(fā)人員和 IT 專(zhuān)業(yè)人員設(shè)計(jì)和實(shí)現(xiàn)完整的壓力測(cè)試方案,診斷測(cè)試結(jié)果,并建議進(jìn)行某些更改以糾正缺陷。本文假設(shè)讀者熟悉 Microsoft Windows NT? Server、Microsoft SQL Server?、Microsoft Internet Information Server (IIS)、Active Server Pages (ASP)、Microsoft ActiveX? 數(shù)據(jù)對(duì)象 (ADO) 和 Microsoft Component Services 環(huán)境(或者如果使用的是 Windows NT,為 Microsoft Transaction Server [MTS])等技術(shù)。
應(yīng)該強(qiáng)調(diào) COM 或 DCOM 組件中業(yè)務(wù)邏輯和數(shù)據(jù)訪問(wèn)過(guò)程的正確實(shí)現(xiàn),包括 ADO 組件。由于性能和可靠性的原因,這些過(guò)程不應(yīng)該駐留在 Active Server Page 中。如果您關(guān)心應(yīng)用程序?qū)⑷绾卧趬毫ο逻\(yùn)行,則您可能已經(jīng)設(shè)計(jì)了利用這些組件和組件服務(wù)環(huán)境益處的應(yīng)用程序。
本文不嘗試討論由客戶端瀏覽器或帶寬限制引起的壓力問(wèn)題,而是主要專(zhuān)注于服務(wù)器端數(shù)據(jù)訪問(wèn)組件和它們與 Internet Information Server 的交互。本文也不處理因使用 Remote Data Services (RDS) 所帶來(lái)的難題。
在生產(chǎn)環(huán)境中部署應(yīng)用程序之前應(yīng)該總是先執(zhí)行壓力測(cè)試。對(duì)支持 Web 的應(yīng)用程序進(jìn)行壓力測(cè)試的基本目的是達(dá)到下列目標(biāo):
對(duì)于要獲得成功的大多數(shù) Web 應(yīng)用程序,用戶體驗(yàn)最為關(guān)鍵。然而,使應(yīng)用程序經(jīng)過(guò)壓力測(cè)試過(guò)程有許多充足的理由,包括:
要確定最佳情況下的服務(wù)器分析值(也稱(chēng)為基準(zhǔn)),應(yīng)首先在受控環(huán)境中測(cè)試試驗(yàn)系統(tǒng)配置。其次,應(yīng)該在模擬生產(chǎn)環(huán)境中測(cè)試以確定生產(chǎn)環(huán)境配置如何影響試驗(yàn)系統(tǒng)的結(jié)果。
在準(zhǔn)備開(kāi)發(fā)循環(huán)的壓力測(cè)試階段時(shí),需要注意以下方面:
試驗(yàn)系統(tǒng)應(yīng)盡可能鏡像生產(chǎn)系統(tǒng)。CPU、RAM 和網(wǎng)絡(luò)帶寬的硬件配置是將在壓力測(cè)試期間被檢測(cè)的最重要方面。應(yīng)努力復(fù)制軟件配置,例如適當(dāng)?shù)?Microsoft Windows 版本和 Service Pack、MDAC 版本、Internet Information Server 配置和將在實(shí)際生產(chǎn)系統(tǒng)中的相同機(jī)器上運(yùn)行的任何其他應(yīng)用程序。安裝和注冊(cè)中間層業(yè)務(wù)規(guī)則和數(shù)據(jù)訪問(wèn) COM 組件,并按應(yīng)用程序設(shè)計(jì)要求對(duì)它們進(jìn)行配置。
務(wù)必將測(cè)試 Web 站點(diǎn)配置成能夠在進(jìn)程內(nèi)或進(jìn)程外運(yùn)行,具體配置成什么樣以最終配置的要求為準(zhǔn)。選擇該選項(xiàng)將確定 Web 應(yīng)用程序是在 IIS 所在的同一地址空間中運(yùn)行,還是在它自己的獨(dú)立地址空間中運(yùn)行。該配置對(duì)于要執(zhí)行的壓力測(cè)試有主要影響。下圖顯示了 Microsoft Windows NT 4.0 和 Microsoft Windows 2000 中進(jìn)程外應(yīng)用程序的“壓力屬性”屬性頁(yè)配置。在 Windows NT 4.0 中,選擇“在單獨(dú)的內(nèi)存空間運(yùn)行(獨(dú)立進(jìn)程)”復(fù)選框以在進(jìn)程外運(yùn)行 Web 應(yīng)用程序。在 Windows 2000 中,選擇“中”或“高”的“應(yīng)用程序保護(hù)”設(shè)置以在進(jìn)程外運(yùn)行 Web 應(yīng)用程序。
圖 1:Windows NT 4.0“壓力屬性”頁(yè)
圖 2:Windows 2000“壓力屬性”頁(yè)
配置 Internet Information Server 以鏡像生產(chǎn)服務(wù)器。“Internet 服務(wù)管理器”屬性頁(yè)為 IIS 提供各種可用的調(diào)整選項(xiàng)。特別重要的是確定是否啟用記錄(可以大大減慢系統(tǒng)速度)并且在“性能”選項(xiàng)卡下,選擇預(yù)期的每天點(diǎn)擊數(shù)。
數(shù)據(jù)服務(wù)器是可能解決與壓力相關(guān)的多數(shù)問(wèn)題的地方。為了有效執(zhí)行查詢,必須正確標(biāo)準(zhǔn)化數(shù)據(jù)庫(kù)設(shè)計(jì)。因此,必須用準(zhǔn)備與應(yīng)用程序一起使用的實(shí)際數(shù)據(jù)庫(kù) 設(shè)計(jì)進(jìn)行壓力測(cè)試,并且應(yīng)確保用應(yīng)用程序?qū)⑸傻淖畲髷?shù)據(jù)量填充表。此外,確保測(cè)試數(shù)據(jù)服務(wù)器配置選項(xiàng)(最重要的是鎖定級(jí)別和隔離級(jí)別以及使用的優(yōu)化技 術(shù),例如表索引)匹配生產(chǎn)數(shù)據(jù)服務(wù)器的配置選項(xiàng)。
應(yīng)用程序的安全方案對(duì)壓力下的應(yīng)用程序會(huì)有嚴(yán)重的性能影響,特別是系統(tǒng)包含加密技術(shù)(如 Microsoft Cryptography API)時(shí)更是如此。因此,應(yīng)該配置測(cè)試系統(tǒng)以使用相同的安全方案,但不必使用相同的憑據(jù)。Microsoft Windows NT LAN Manager (NTLM) 傳遞身份驗(yàn)證系統(tǒng)可能是訪問(wèn)后端數(shù)據(jù)存儲(chǔ)區(qū)的 Intranet 應(yīng)用程序的最通用安全協(xié)議。如果可能的話,應(yīng)該考慮使用組件服務(wù)(或 Windows NT 中的 MTS)中的角色,以簡(jiǎn)化安全身份驗(yàn)證過(guò)程并提高效率,以及提高性能和穩(wěn)定性。
首先確定預(yù)期訪問(wèn)應(yīng)用程序的最大用戶數(shù),然后將該數(shù)字加倍;成功的應(yīng)用程序所服務(wù)的用戶數(shù)最可能比預(yù)期的多。此外,計(jì)算多數(shù)用戶需要訪問(wèn)的時(shí)間,然 后確定那段時(shí)間(應(yīng)該是測(cè)試應(yīng)用程序的時(shí)間)內(nèi)的網(wǎng)絡(luò)負(fù)載。該策略使您能夠測(cè)試用戶負(fù)載影響以及系統(tǒng)范圍的硬件配置,確保應(yīng)用程序在網(wǎng)絡(luò)負(fù)載高峰期內(nèi)按預(yù) 期響應(yīng)。
在實(shí)際的數(shù)據(jù)中心情況中,由于太多用戶通過(guò) Intranet 或 Internet 連接到 Web 應(yīng)用程序,Web 服務(wù)器經(jīng)歷高連接水平。Web 壓力工具應(yīng)能夠模擬發(fā)生高并發(fā)連接數(shù)的情形,并以充足的線程滿足最大的并發(fā)連接數(shù),同時(shí)減小發(fā)送到 Web 服務(wù)器的數(shù)據(jù)包大小。幸運(yùn)地是,有許多可用的工具被設(shè)計(jì)來(lái)模擬這些實(shí)際情況。Microsoft 的 Web 應(yīng)用程序壓力工具就是這些工具中的一個(gè),當(dāng)前可從在 http://homer.rte.microsoft.com 處的 Microsoft 免費(fèi)獲得它。它提供所有必要的功能和一些好的附加功能,例如廣泛的報(bào)告功能。
Web 應(yīng)用程序壓力工具通過(guò)實(shí)際模擬從 Web 應(yīng)用程序請(qǐng)求頁(yè)的多個(gè)瀏覽器來(lái)激活測(cè)試環(huán)境,并允許通過(guò)從瀏覽器訪問(wèn)想要包括到測(cè)試中的頁(yè)來(lái)記錄腳本。然后,該腳本可以在安裝有該應(yīng)用程序的任何 Windows NT 或 Windows 2000 客戶端上保存和運(yùn)行。因?yàn)?Web 應(yīng)用程序壓力工具能夠模擬來(lái)自每個(gè)單獨(dú)工作站的多個(gè)客戶端,所以具有的可用客戶端計(jì)算機(jī)不必與生產(chǎn)應(yīng)用程序具有的一樣多。
注意
當(dāng)運(yùn)行壓力測(cè)試時(shí),注意不要增加客戶端的壓力水平,以免測(cè)試計(jì)算機(jī)在線程間的上下文切換上花費(fèi)的時(shí)間比實(shí)際運(yùn)行所用的時(shí)間多。若要確保線程分布于各個(gè)客戶端,請(qǐng)?jiān)谶\(yùn)行基于
Web的應(yīng)用程序測(cè)試時(shí)使用幾個(gè)客戶端,從而減輕一個(gè)客戶端計(jì)算機(jī)的資源限制。
為了有效地對(duì)數(shù)據(jù)訪問(wèn)組件進(jìn)行壓力測(cè)試并正確地診斷結(jié)果,使用監(jiān)視和記錄運(yùn)行統(tǒng)計(jì)的方法極為重要。性能監(jiān)視器是隨 Microsoft Windows NT 和 Microsoft Windows 2000 一起提供的工具,它是適用于在 Internet Information Server 中和數(shù)據(jù)服務(wù)器上監(jiān)視和記錄這些統(tǒng)計(jì)的最好工具。
除了在 Internet Information Server 上使用性能監(jiān)視器外,還有必要監(jiān)視數(shù)據(jù)服務(wù)器上的某些自定義計(jì)數(shù)器。大多數(shù)高性能數(shù)據(jù)服務(wù)器應(yīng)用程序,例如 Microsoft SQL Server、Oracle 和 Microsoft Exchange Server,都包括自定義性能監(jiān)視器計(jì)數(shù)器,可用于測(cè)定應(yīng)用程序和其運(yùn)行在的硬件的健康情況。
認(rèn)真地?cái)M定了測(cè)試策略后,實(shí)際運(yùn)行測(cè)試是容易的。性能測(cè)試的第一個(gè)任務(wù)是使用工具,例如 Microsoft Web 應(yīng)用程序壓力工具,將壓力施加到 Web 站點(diǎn)并測(cè)量 Web 服務(wù)器每秒能處理的最大請(qǐng)求數(shù)。這是定量測(cè)量。第二個(gè)任務(wù)是確定哪一個(gè)資源阻止每秒請(qǐng)求數(shù)的提高,例如 CPU、內(nèi)存或后端相關(guān)性,這個(gè)過(guò)程更具有藝術(shù)性,而不單是一種精確測(cè)量的技術(shù)。
首先,選擇打算運(yùn)行的 ASP 頁(yè)。(尋找 Web 站點(diǎn)的最慢頁(yè)并使用這些頁(yè)。)具體的選擇取決于哪些頁(yè)最頻繁訪問(wèn)數(shù)據(jù)庫(kù)并且具有最多或最復(fù)雜的查詢。該選擇非常重要:包括比必需的更多的頁(yè)比遺漏一些關(guān)鍵 代碼路徑要好。如果適當(dāng)?shù)脑?,還可考慮讓測(cè)試應(yīng)用程序按指定的順序訪問(wèn)一系列頁(yè),并像應(yīng)用程序?qū)⒃谡鎸?shí)情況中所做的那樣,將 cookie 或查詢字符串傳遞到每一頁(yè)。
注意
根據(jù)實(shí)際的應(yīng)用程序,可能有必要為測(cè)試準(zhǔn)備
ASP頁(yè)。一些頁(yè)可能要求硬編碼通常由應(yīng)用程序生成的和
Web壓力工具不能動(dòng)態(tài)生成的參數(shù)值。
當(dāng)在 Internet Information Server 中運(yùn)行應(yīng)用程序時(shí),應(yīng)該(使用性能監(jiān)視器)監(jiān)視以下計(jì)數(shù)器:
注意
如果應(yīng)用程序在
Windows NT 4.0中自己的內(nèi)存空間中運(yùn)行(或者在
Windows 2000中的
Stress Properties頁(yè)上的設(shè)置為
Application Protection: High [Isolated]),則應(yīng)監(jiān)視
mtx.exe(或
Windows 2000中的
dllhost進(jìn)程)而不是監(jiān)視
Inetinfo進(jìn)程。
如下圖所示,性能監(jiān)視器中的 Active Server Pages 每秒請(qǐng)求數(shù)計(jì)數(shù)器將顯示應(yīng)用程序的實(shí)際吞吐量(此例中每秒的請(qǐng)求數(shù)為 1.000)。該統(tǒng)計(jì)使您能夠診斷壓力下的 Internet Information Server 性能,并查明潛在的瓶頸。這反過(guò)來(lái)使您得以判斷應(yīng)用程序以可接受的響應(yīng)時(shí)間服務(wù)數(shù)量最多的用戶的能力。
圖 3:性能監(jiān)視器
運(yùn)行 ASP 技術(shù)的 Web 服務(wù)器從啟動(dòng)時(shí)建立的池中給每頁(yè)分配一個(gè)線程;如果所有線程都已使用,后面的頁(yè)請(qǐng)求將被放置在隊(duì)列中。通過(guò)用性能監(jiān)視器監(jiān)視總的隊(duì)列長(zhǎng)度,可以確定有多少客戶端正在等待服務(wù)器的響應(yīng)。
兩個(gè)最常見(jiàn)的與壓力有關(guān)的非硬件數(shù)據(jù)庫(kù)問(wèn)題是死鎖和鎖定并發(fā)。在數(shù)據(jù)服務(wù)器上,使用數(shù)據(jù)存儲(chǔ)區(qū)將提供的自定義性能監(jiān)視器計(jì)數(shù)器時(shí),應(yīng)該至少監(jiān)視下列內(nèi)容:
Web 應(yīng)用程序也應(yīng)配置成利用 OLE DB 資源池,該資源池由 Microsoft SQL Server 7.0 的中間層 OLE DB 提供程序自動(dòng)管理。通過(guò)基于每頁(yè)創(chuàng)建連接對(duì)象并立即釋放它們,數(shù)據(jù)庫(kù)可以處理數(shù)千個(gè)并發(fā)用戶,而使用的開(kāi)放式數(shù)據(jù)庫(kù)連接數(shù)少得多。這可保留數(shù)據(jù)庫(kù)資源并提 供更大的可縮放性。應(yīng)通過(guò)跟蹤數(shù)據(jù)服務(wù)器上的用戶連接數(shù)(使用性能監(jiān)視器)監(jiān)視此性能增強(qiáng)。隨著吞吐量增加,當(dāng)池控制數(shù)據(jù)服務(wù)器上實(shí)際創(chuàng)建的連接數(shù)時(shí),用 戶連接數(shù)應(yīng)保持穩(wěn)定。
針對(duì)數(shù)據(jù)庫(kù)調(diào)節(jié)應(yīng)用程序的過(guò)程對(duì)實(shí)現(xiàn)性能目標(biāo)至關(guān)重要,并且必須作為因素計(jì)入開(kāi)發(fā)循環(huán)。這應(yīng)包括優(yōu)化分配內(nèi)存的大小、應(yīng)用程序在磁盤(pán)驅(qū)動(dòng)器和控制器上的分布以及 ActiveX 組件的計(jì)算機(jī)位置。要特別考慮盡可能消除進(jìn)程間的數(shù)據(jù)封送處理,因?yàn)檫@是非常昂貴的操作。
運(yùn)行壓力測(cè)試的時(shí)間應(yīng)比應(yīng)用程序在實(shí)際用戶環(huán)境中不中斷運(yùn)行的預(yù)計(jì)時(shí)間長(zhǎng)百分之五十。許多問(wèn)題,尤其是內(nèi)存泄漏,只有在應(yīng)用程序運(yùn)行時(shí)間超過(guò)預(yù)期時(shí)間后才會(huì)暴露出來(lái)。
每個(gè)性能監(jiān)視器計(jì)數(shù)器的平均值取決于特定的應(yīng)用程序和硬件配置。因此,當(dāng)壓力測(cè)試運(yùn)行時(shí),應(yīng)該檢查每個(gè)計(jì)數(shù)器中是否有任何偏離這些平均值的異常偏差。
當(dāng)查找瓶頸時(shí),在 Internet Information Server 計(jì)算機(jī)上監(jiān)視的最重要方面如下:
根據(jù)設(shè)計(jì)的應(yīng)用程序環(huán)境,在壓力測(cè)試期間可能還有其他要跟蹤的性能方面。下列任何可能的情況可能表明應(yīng)用程序有問(wèn)題,在最終發(fā)布前應(yīng)修復(fù)這些問(wèn)題。
CPU 使用率
CPU 使用率的減少可能表明應(yīng)用程序性能的降低,可能是線程爭(zhēng)用問(wèn)題。
當(dāng)監(jiān)視用戶時(shí)間和內(nèi)核時(shí)間之間的 CPU 時(shí)間比時(shí),記住作為規(guī)則,用戶時(shí)間應(yīng)是 CPU 總時(shí)間的百分之八十至九十。因此,超過(guò)百分之二十的內(nèi)核模式時(shí)間表明有內(nèi)核級(jí)別 API 調(diào)用爭(zhēng)用。
為了使計(jì)算機(jī)物有所值,應(yīng)該在峰值負(fù)載期間注冊(cè)超過(guò)百分之五十的處理器使用率。更低的使用率值可能提示您需要解決系統(tǒng)中的其他瓶頸。
內(nèi)存使用
內(nèi)存使用暴漲或逐步增加是另外一個(gè)問(wèn)題,這個(gè)問(wèn)題經(jīng)常被認(rèn)為是長(zhǎng)期運(yùn)行的服務(wù)器應(yīng)用程序的常見(jiàn)問(wèn)題。通常,這是內(nèi)存和資源泄漏在測(cè)試階段暴露出來(lái)的地方。
吞吐量
監(jiān)視 Active Server Pages 每秒請(qǐng)求數(shù)計(jì)數(shù)器使您得以確定應(yīng)用程序開(kāi)始什么時(shí)候以及是否有性能問(wèn)題。該計(jì)數(shù)器在實(shí)際的應(yīng)用程序中通常有所不同,但是通過(guò)認(rèn)真地設(shè)置線程數(shù)和并發(fā)連接數(shù) (例如,通過(guò) Web 應(yīng)用程序壓力工具配置屏幕進(jìn)行設(shè)置),將能夠模擬穩(wěn)定的請(qǐng)求數(shù)。該計(jì)數(shù)器值的突然減少預(yù)示著麻煩。
可選測(cè)試方面
下面的是壓力測(cè)試期間可能發(fā)現(xiàn)值得監(jiān)視的其他方面的示例:
內(nèi)部處理數(shù)據(jù)服務(wù)器的各種 MDAC 服務(wù)和格式化用于顯示的數(shù)據(jù)通常會(huì)消耗專(zhuān)用于 Web 應(yīng)用程序的大多數(shù)可用服務(wù)器資源。因此,當(dāng)對(duì)應(yīng)用程序進(jìn)行壓力測(cè)試時(shí),如果與應(yīng)用程序的數(shù)據(jù)訪問(wèn)和數(shù)據(jù)操作區(qū)域有關(guān),則必須特別考慮這些組件的性能。
數(shù)據(jù)庫(kù)用戶連接、鎖爭(zhēng)用和死鎖是數(shù)據(jù)服務(wù)器上要監(jiān)視的主要對(duì)象。定期查看數(shù)據(jù)庫(kù)的管理控制臺(tái)中的進(jìn)程信息(例如,在運(yùn)行 SQL Server 的計(jì)算機(jī)上,是在 SQL 企業(yè)管理器的 Current Activity 區(qū)域中)。檢查阻塞的服務(wù)器進(jìn)程 ID,它是不返回響應(yīng)的數(shù)據(jù)查詢的常見(jiàn)原因。這是個(gè)爭(zhēng)用問(wèn)題,并且通常要求對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)或應(yīng)用程序邏輯進(jìn)行重大更改。
可以用不同的方法識(shí)別死鎖。識(shí)別死鎖的最常用的方法是使用性能監(jiān)視器中的 Number of Deadlocks/sec 自定義計(jì)數(shù)器。應(yīng)用程序應(yīng)該已經(jīng)檢查死鎖問(wèn)題并適當(dāng)響應(yīng),因?yàn)樵试S數(shù)據(jù)服務(wù)器指定死鎖受害人(即,將被取消以解決死鎖的用戶或會(huì)話)會(huì)引起應(yīng)用程序問(wèn)題。 應(yīng)用程序應(yīng)在遇到死鎖時(shí)檢測(cè)死鎖情況,并相應(yīng)響應(yīng)。遇到死鎖時(shí)一般做法是等待幾毫秒,然后再重試操作;通常,死鎖僅是對(duì)時(shí)間敏感的錯(cuò)誤,當(dāng)重試操作時(shí)該錯(cuò) 誤將會(huì)消失。
當(dāng)完成壓力測(cè)試并且測(cè)試結(jié)果可用于檢查時(shí),目標(biāo)性能基準(zhǔn)與測(cè)試期間收集的統(tǒng)計(jì)的比較將指出所需要的更改,以確保用戶將需要的吞吐量。以下是需要進(jìn)行性能改正應(yīng)檢查和計(jì)算的特定方面:
也許增加應(yīng)用程序吞吐量最簡(jiǎn)單和最經(jīng)濟(jì)的解決方案是硬件升級(jí)。通常,升級(jí)硬件比付錢(qián)給開(kāi)發(fā)人員團(tuán)隊(duì)重寫(xiě)部分應(yīng)用程序要經(jīng)濟(jì)高效得多。例如,只是通過(guò) 將更多的 RAM 添加到服務(wù)器,您可以使應(yīng)用程序的吞吐量加倍。然而,如果測(cè)試結(jié)果表明 CPU 使用率是瓶頸,則升級(jí)可能更貴,因?yàn)榭赡鼙仨毶?jí)整個(gè)計(jì)算機(jī)來(lái)增加 CPU 的使用數(shù)量與速度。
其他與硬件有關(guān)的增強(qiáng)包括增加硬盤(pán)和控制器的速度以及添加更快或附加的網(wǎng)絡(luò)接口卡。
當(dāng)計(jì)算有關(guān)數(shù)據(jù)庫(kù)設(shè)計(jì)的問(wèn)題時(shí),請(qǐng)尋找作用點(diǎn)。分析死鎖統(tǒng)計(jì),并確認(rèn)已經(jīng)優(yōu)化了應(yīng)用程序以盡可能避免死鎖。如果有必要,請(qǐng)考慮更改數(shù)據(jù)訪問(wèn)算法以避免爭(zhēng)用。用不同的索引解決方案進(jìn)行實(shí)驗(yàn)。檢查數(shù)據(jù)服務(wù)器的查詢執(zhí)行計(jì)劃以確認(rèn)查詢正在使用適當(dāng)?shù)乃饕?,等等?
應(yīng)認(rèn)真分析包含對(duì) ActiveX 數(shù)據(jù)對(duì)象類(lèi)型庫(kù)的引用的 ActiveX 組件以進(jìn)行可能的優(yōu)化。不要使用 ADO 中允許的默認(rèn)屬性。為避免意外使用默認(rèn)屬性,應(yīng)總是指定某些屬性,例如,Cursor Type 和 Cursor Location 屬性。
如果 Web 應(yīng)用程序消耗了異乎尋常的大量?jī)?nèi)存,則游標(biāo)定位的不適當(dāng)使用可能就是問(wèn)題的原因。當(dāng)使用客戶端游標(biāo) (recordset.cursorlocation = adUseClient) 時(shí),注意客戶端實(shí)際是 Internet Information Server,而不是瀏覽器。(該規(guī)則的例外情況是當(dāng)使用 Remote Data Services 時(shí),本文不對(duì)此進(jìn)行討論。)開(kāi)發(fā)人員常犯的錯(cuò)誤是假定客戶端游標(biāo)的使用將整個(gè)記錄集移動(dòng)到瀏覽器而不是運(yùn)行 IIS 的計(jì)算機(jī)。因此,記住您實(shí)際正在將記錄集存儲(chǔ)到運(yùn)行 IIS 的計(jì)算機(jī)上將使您更多地意識(shí)到所用的資源。
例如,如果應(yīng)用程序要求訪問(wèn)列出有效州或縣代碼的表并且該信息存儲(chǔ)在數(shù)據(jù)服務(wù)器中,則使用客戶端游標(biāo)創(chuàng)建駐留在 IIS 計(jì)算機(jī)上的記錄集,然后本地訪問(wèn)該代碼將更有效,這樣避免了當(dāng)應(yīng)用程序訪問(wèn)該信息時(shí)需要另外往返于數(shù)據(jù)服務(wù)器。一定要注意利弊關(guān)系,如果內(nèi)存不可用,則不 要以大內(nèi)存要求加重 IIS 的負(fù)載。
如果包含數(shù)據(jù)訪問(wèn)過(guò)程的 ASP 頁(yè)花費(fèi)太長(zhǎng)時(shí)間執(zhí)行,則可能需要將數(shù)據(jù)訪問(wèn)代碼從 ASP 頁(yè)移動(dòng)到 ActiveX 組件,該組件一般放置在 Microsoft Transaction Server(在 Windows NT 中)的包中或 Component Services(在 Windows 2000 中)的包中,這取決于正在運(yùn)行的操作系統(tǒng)。該編輯代碼運(yùn)行效率比包含在 Active Server Page 中的解釋腳本代碼有效得多。
監(jiān)視正使用 Internet Information Server 的應(yīng)用程序數(shù)量和類(lèi)型??赡苄枰砑痈郊拥姆?wù)器,將應(yīng)用程序移動(dòng)到另一服務(wù)器,或者考慮實(shí)現(xiàn) Windows Load Balancing Service。
Internet 使您的應(yīng)用程序可以比傳統(tǒng)的客戶端-服務(wù)器應(yīng)用程序面向更多的潛在用戶。隨著越來(lái)越多的組織將 Web 作為他們業(yè)務(wù)策略的策略部分,他們需要確保他們選擇的技術(shù)可以處理他們苛求的需要。除了容易使用的工具,這些組織還需要基礎(chǔ)結(jié)構(gòu)來(lái)滿足他們用戶負(fù)載要求。 因此,壓力測(cè)試是測(cè)試體系的基礎(chǔ)部分這個(gè)理念比以前更重要,特別是當(dāng)將 MDAC 合并到應(yīng)用程序中時(shí)。
注意
在壓力情況下成功運(yùn)行的基本要求是在開(kāi)發(fā)周期中采取最佳慣例方法。這就意味著為負(fù)載條件下的性能測(cè)試和調(diào)整應(yīng)用程序以達(dá)到性能目標(biāo)的時(shí)間調(diào)度必須考慮到開(kāi)發(fā)過(guò)程中。
負(fù)載下的壓力測(cè)試和反復(fù)調(diào)節(jié)應(yīng)用程序的好處是簡(jiǎn)單明了:
聯(lián)系客服