Memory: 內(nèi)存使用情況可能是系統(tǒng)性能中最重要的因素。如果系統(tǒng)“頁(yè)交換”頻繁,說(shuō)明內(nèi)存不足。“頁(yè)交換”是使用稱為“頁(yè)面”的單位,將固定大小的代碼和數(shù)據(jù)塊從 RAM 移動(dòng)到磁盤的過程,其目的是為了釋放內(nèi)存空間。盡管某些頁(yè)交換使 Windows 2000 能夠使用比實(shí)際更多的內(nèi)存,也是可以接受的,但頻繁的頁(yè)交換將降低系統(tǒng)性能。減少頁(yè)交換將顯著提高系統(tǒng)響應(yīng)速度。要監(jiān)視內(nèi)存不足的狀況,請(qǐng)從以下的對(duì)象計(jì)數(shù)器開始: Available Mbytes:可用物理內(nèi)存數(shù). 如果Available Mbytes的值很小(4 MB 或更小),則說(shuō)明計(jì)算機(jī)上總的內(nèi)存可能不足,或某程序沒有釋放內(nèi)存。 page/sec: 表明由于硬件頁(yè)面錯(cuò)誤而從磁盤取出的頁(yè)面數(shù),或由于頁(yè)面錯(cuò)誤而寫入磁盤以釋放工作集空間的頁(yè)面數(shù)。一般如果pages/sec持續(xù)高于幾百,那么您應(yīng)該進(jìn)一步研究頁(yè)交換活動(dòng)。有可能需要增加內(nèi)存,以減少換頁(yè)的需求(你可以把這個(gè)數(shù)字乘以4k就得到由此引起的硬盤數(shù)據(jù)流量)。Pages/sec 的值很大不一定表明內(nèi)存有問題,而可能是運(yùn)行使用內(nèi)存映射文件的程序所致。 page read/sec:頁(yè)的硬故障,page/sec的子集,為了解析對(duì)內(nèi)存的引用,必須讀取頁(yè)文件的次數(shù)。閾值為>5. 越低越好。大數(shù)值表示磁盤讀而不是緩存讀。 由于過多的頁(yè)交換要使用大量的硬盤空間,因此有可能將導(dǎo)致將頁(yè)交換內(nèi)存不足與導(dǎo)致頁(yè)交換的磁盤瓶徑混淆。因此,在研究?jī)?nèi)存不足不太明顯的頁(yè)交換的原因時(shí),您必須跟蹤如下的磁盤使用情況計(jì)數(shù)器和內(nèi)存計(jì)數(shù)器: Physical Disk\ % Disk Time Physical Disk\ Avg.Disk Queue Length 例如,包括 Page Reads/sec 和 % Disk Time 及 Avg.Disk Queue Length。如果頁(yè)面讀取操作速率很低,同時(shí) % Disk Time 和 Avg.Disk Queue Length的值很高,則可能有磁盤瓶徑。但是,如果隊(duì)列長(zhǎng)度增加的同時(shí)頁(yè)面讀取速率并未降低,則內(nèi)存不足。 要確定過多的頁(yè)交換對(duì)磁盤活動(dòng)的影響,請(qǐng)將 Physical Disk\ Avg.Disk sec/Transfer 和 Memory\ Pages/sec 計(jì)數(shù)器的值增大數(shù)倍。如果這些計(jì)數(shù)器的計(jì)數(shù)結(jié)果超過了 0.1,那么頁(yè)交換將花費(fèi)百分之十以上的磁盤訪問時(shí)間。如果長(zhǎng)時(shí)間發(fā)生這種情況,那么您可能需要更多的內(nèi)存。 Page Faults/sec:每秒軟性頁(yè)面失效的數(shù)目(包括有些可以直接在內(nèi)存中滿足而有些需要從硬盤讀取)較page/sec只表明數(shù)據(jù)不能在內(nèi)存的指定工作集中立即使用。 Cache Bytes:文件系統(tǒng)緩存(File System Cache),默認(rèn)情況下為50%的可用物理內(nèi)存。如IIS5.0 運(yùn)行內(nèi)存不夠時(shí),它會(huì)自動(dòng)整理緩存。需要關(guān)注該計(jì)數(shù)器的趨勢(shì)變化 如果您懷疑有內(nèi)存泄露,請(qǐng)監(jiān)視 Memory\ Available Bytes 和 Memory\ Committed Bytes,以觀察內(nèi)存行為,并監(jiān)視您認(rèn)為可能在泄露內(nèi)存的進(jìn)程的 Process\Private Bytes、Process\Working Set 和Process\Handle Count。如果您懷疑是內(nèi)核模式進(jìn)程導(dǎo)致了泄露,則還應(yīng)該監(jiān)視 Memory\Pool Nonpaged Bytes、Memory\ Pool Nonpaged Allocs 和 Process(process_name)\ Pool Nonpaged Bytes。 Pages per second :每秒鐘檢索的頁(yè)數(shù)。該數(shù)字應(yīng)少于每秒一頁(yè)。 Process: %Processor Time: 被處理器消耗的處理器時(shí)間數(shù)量。如果服務(wù)器專用于sql server,可接受的最大上限是80-85% Page Faults/sec:將進(jìn)程產(chǎn)生的頁(yè)故障與系統(tǒng)產(chǎn)生的相比較,以判斷這個(gè)進(jìn)程對(duì)系統(tǒng)頁(yè)故障產(chǎn)生的影響。 Work set: 處理線程最近使用的內(nèi)存頁(yè),反映了每一個(gè)進(jìn)程使用的內(nèi)存頁(yè)的數(shù)量。如果服務(wù)器有足夠的空閑內(nèi)存,頁(yè)就會(huì)被留在工作集中,當(dāng)自由內(nèi)存少于一個(gè)特定的閾值時(shí),頁(yè)就會(huì)被清除出工作集。 Inetinforivate Bytes:此進(jìn)程所分配的無(wú)法與其它進(jìn)程共享的當(dāng)前字節(jié)數(shù)量。如果系統(tǒng)性能隨著時(shí)間而降低,則此計(jì)數(shù)器可以是內(nèi)存泄漏的最佳指示器。 Processor:監(jiān)視“處理器”和“系統(tǒng)”對(duì)象計(jì)數(shù)器可以提供關(guān)于處理器使用的有價(jià)值的信息,幫助您決定是否存在瓶頸。 %Processor Time:如果該值持續(xù)超過95%,表明瓶頸是CPU。可以考慮增加一個(gè)處理器或換一個(gè)更快的處理器。 %User Time:表示耗費(fèi)CPU的數(shù)據(jù)庫(kù)操作,如排序,執(zhí)行aggregate functions等。如果該值很高,可考慮增加索引,盡量使用簡(jiǎn)單的表聯(lián)接,水平分割大表格等方法來(lái)降低該值。 %Privileged Time:(CPU內(nèi)核時(shí)間)是在特權(quán)模式下處理線程執(zhí)行代碼所花時(shí)間的百分比。如果該參數(shù)值和"hysical Disk"參數(shù)值一直很高,表明I/O有問題。可考慮更換更快的硬盤系統(tǒng)。另外設(shè)置Tempdb in RAM,減低"max async IO","max lazy writer IO"等措施都會(huì)降低該值。 此外,跟蹤計(jì)算機(jī)的服務(wù)器工作隊(duì)列當(dāng)前長(zhǎng)度的 Server Work Queues\ Queue Length 計(jì)數(shù)器會(huì)顯示出處理器瓶頸。隊(duì)列長(zhǎng)度持續(xù)大于 4 則表示可能出現(xiàn)處理器擁塞。此計(jì)數(shù)器是特定時(shí)間的值,而不是一段時(shí)間的平均值。 % DPC Time:越低越好。在多處理器系統(tǒng)中,如果這個(gè)值大于50%并且Processor:% Processor Time非常高,加入一個(gè)網(wǎng)卡可能會(huì)提高性能,提供的網(wǎng)絡(luò)已經(jīng)不飽和。 Thread ContextSwitches/sec: (實(shí)例化inetinfo 和dllhost 進(jìn)程) 如果你決定要增加線程字節(jié)池的大小,你應(yīng)該監(jiān)視這三個(gè)計(jì)數(shù)器(包括上面的一個(gè))。增加線程數(shù)可能會(huì)增加上下文切換次數(shù),這樣性能不會(huì)上升反而會(huì)下降。如果十個(gè)實(shí)例的上下文切換值非常高,就應(yīng)該減小線程字節(jié)池的大小。 Physical Disk: %Disk Time %:指所選磁盤驅(qū)動(dòng)器忙于為讀或?qū)懭胝?qǐng)求提供服務(wù)所用的時(shí)間的百分比。如果三個(gè)計(jì)數(shù)器都比較大,那么硬盤不是瓶頸。如果只有%Disk Time比較大,另外兩個(gè)都比較適中,硬盤可能會(huì)是瓶頸。在記錄該計(jì)數(shù)器之前,請(qǐng)?jiān)赪indows 2000 的命令行窗口中運(yùn)行diskperf -yD。若數(shù)值持續(xù)超過80%,則可能是內(nèi)存泄漏。 Avg.Disk Queue Length:指讀取和寫入請(qǐng)求(為所選磁盤在實(shí)例間隔中列隊(duì)的)的平均數(shù)。該值應(yīng)不超過磁盤數(shù)的1.5~2 倍。要提高性能,可增加磁盤。注意:一個(gè)Raid Disk實(shí)際有多個(gè)磁盤。 Average Disk Read/Write Queue Length:指讀取(寫入)請(qǐng)求(列隊(duì))的平均數(shù)。 Disk Reads(Writes)/s: 物理磁盤上每秒鐘磁盤讀、寫的次數(shù)。兩者相加,應(yīng)小于磁盤設(shè)備最大容量。 Average Disksec/Read: 指以秒計(jì)算的在此盤上讀取數(shù)據(jù)的所需平均時(shí)間。 Average Disk sec/Transfer:指以秒計(jì)算的在此盤上寫入數(shù)據(jù)的所需平均時(shí)間。 Network Interface: Bytes Total/sec :為發(fā)送和接收字節(jié)的速率,包括幀字符在內(nèi)。判斷網(wǎng)絡(luò)連接速度是否是瓶頸,可以用該計(jì)數(shù)器的值和目前網(wǎng)絡(luò)的帶寬比較 SQLServer性能計(jì)數(shù)器: Access Methods(訪問方法) 用于監(jiān)視訪問數(shù)據(jù)庫(kù)中的邏輯頁(yè)的方法。 . Full Scans/sec(全表掃描/秒) 每秒不受限的完全掃描數(shù)。可以是基本表掃描或全索引掃描。如果這個(gè)計(jì)數(shù)器顯示的值比1或2高,應(yīng)該分析你的查詢以確定是否確實(shí)需要全表掃描,以及S Q L查詢是否可以被優(yōu)化。 . Page splits/sec(頁(yè)分割/秒)由于數(shù)據(jù)更新操作引起的每秒頁(yè)分割的數(shù)量。 Buffer Manager(緩沖器管理器):監(jiān)視 Microsoft® SQL Server? 如何使用: 內(nèi)存存儲(chǔ)數(shù)據(jù)頁(yè)、內(nèi)部數(shù)據(jù)結(jié)構(gòu)和過程高速緩存;計(jì)數(shù)器在 SQL Server 從磁盤讀取數(shù)據(jù)庫(kù)頁(yè)和將數(shù)據(jù)庫(kù)頁(yè)寫入磁盤時(shí)監(jiān)視物理 I/O。 監(jiān)視 SQL Server 所使用的內(nèi)存和計(jì)數(shù)器有助于確定: 是否由于缺少可用物理內(nèi)存存儲(chǔ)高速緩存中經(jīng)常訪問的數(shù)據(jù)而導(dǎo)致瓶頸存在。如果是這樣,SQL Server 必須從磁盤檢索數(shù)據(jù)。 是否可通過添加更多內(nèi)存或使更多內(nèi)存可用于數(shù)據(jù)高速緩存或 SQL Server 內(nèi)部結(jié)構(gòu)來(lái)提高查詢性能。 SQL Server 需要從磁盤讀取數(shù)據(jù)的頻率。與其它操作相比,例如內(nèi)存訪問,物理 I/O 會(huì)耗費(fèi)大量時(shí)間。盡可能減少物理 I/O 可以提高查詢性能。 .Page Reads/sec:每秒發(fā)出的物理數(shù)據(jù)庫(kù)頁(yè)讀取數(shù)。這一統(tǒng)計(jì)信息顯示的是在所有數(shù)據(jù)庫(kù)間的物理頁(yè)讀取總數(shù)。由于物理 I/O 的開銷大,可以通過使用更大的數(shù)據(jù)高速緩存、智能索引、更高效的查詢或者改變數(shù)據(jù)庫(kù)設(shè)計(jì)等方法,使開銷減到最小。 .Page Writes/sec (.寫的頁(yè)/秒) 每秒執(zhí)行的物理數(shù)據(jù)庫(kù)寫的頁(yè)數(shù)。 .Buffer Cache Hit Ratio. 在“緩沖池”(Buffer Cache/Buffer Pool)中沒有被讀過的頁(yè)占整個(gè)緩沖池中所有頁(yè)的比率。可在高速緩存中找到而不需要從磁盤中讀取的頁(yè)的百分比。這一比率是高速緩存命中總數(shù)除以自 SQL Server 實(shí)例啟動(dòng)后對(duì)高速緩存的查找總數(shù)。經(jīng)過很長(zhǎng)時(shí)間后,這一比率的變化很小。由于從高速緩存中讀數(shù)據(jù)比從磁盤中讀數(shù)據(jù)的開銷要小得多,一般希望這一數(shù)值高一些。通常,可以通過增加 SQL Server 可用的內(nèi)存數(shù)量來(lái)提高高速緩存命中率。計(jì)數(shù)器值依應(yīng)用程序而定,但比率最好為90% 或更高。增加內(nèi)存直到這一數(shù)值持續(xù)高于90%,表示90% 以上的數(shù)據(jù)請(qǐng)求可以從數(shù)據(jù)緩沖區(qū)中獲得所需數(shù)據(jù)。 . Lazy Writes/sec(惰性寫/秒)惰性寫進(jìn)程每秒寫的緩沖區(qū)的數(shù)量。值最好為0。 Cache Manager(高速緩存管理器) 對(duì)象提供計(jì)數(shù)器,用于監(jiān)視 Microsoft® SQL Server? 如何使用內(nèi)存存儲(chǔ)對(duì)象,如存儲(chǔ)過程、特殊和準(zhǔn)備好的 Transact-SQL 語(yǔ)句以及觸發(fā)器。 . Cache Hit Ratio(高速緩存命中率,所有Cache”的命中率。在SQL Server中,Cache可以包括Log Cache,Buffer Cache以及Procedure Cache,是一個(gè)總體的比率。) 高速緩存命中次數(shù)和查找次數(shù)的比率。對(duì)于查看SQL Server高速緩存對(duì)于你的系統(tǒng)如何有效,這是一個(gè)非常好的計(jì)數(shù)器。如果這個(gè)值很低,持續(xù)低于80%,就需要增加更多的內(nèi)存。 Latches(閂) 用于監(jiān)視稱為閂鎖的內(nèi)部 SQL Server 資源鎖。監(jiān)視閂鎖以明確用戶活動(dòng)和資源使用情況,有助于查明性能瓶頸。 . Average Latch Wait Ti m e ( m s ) (平均閂等待時(shí)間(毫秒)) 一個(gè)SQL Server線程必須等待一個(gè)閂的平均時(shí)間,以毫秒為單位。如果這個(gè)值很高,你可能正經(jīng)歷嚴(yán)重的競(jìng)爭(zhēng)問題。 . Latch Waits/sec (閂等待/秒) 在閂上每秒的等待數(shù)量。如果這個(gè)值很高,表明你正經(jīng)歷對(duì)資源的大量競(jìng)爭(zhēng)。 Locks(鎖) 提供有關(guān)個(gè)別資源類型上的 SQL Server 鎖的信息。鎖加在 SQL Server 資源上(如在一個(gè)事務(wù)中進(jìn)行的行讀取或修改),以防止多個(gè)事務(wù)并發(fā)使用資源。例如,如果一個(gè)排它 (X) 鎖被一個(gè)事務(wù)加在某一表的某一行上,在這個(gè)鎖被釋放前,其它事務(wù)都不可以修改這一行。盡可能少使用鎖可提高并發(fā)性,從而改善性能。可以同時(shí)監(jiān)視 Locks 對(duì)象的多個(gè)實(shí)例,每個(gè)實(shí)例代表一個(gè)資源類型上的一個(gè)鎖。 . Number of Deadlocks/sec(死鎖的數(shù)量/秒) 導(dǎo)致死鎖的鎖請(qǐng)求的數(shù)量 . Average Wait Time(ms) (平均等待時(shí)間(毫秒)) 線程等待某種類型的鎖的平均等待時(shí)間 . Lock Requests/sec(鎖請(qǐng)求/秒) 每秒鐘某種類型的鎖請(qǐng)求的數(shù)量。 Memory manager:用于監(jiān)視總體的服務(wù)器內(nèi)存使用情況,以估計(jì)用戶活動(dòng)和資源使用,有助于查明性能瓶頸。監(jiān)視 SQL Server 實(shí)例所使用的內(nèi)存有助于確定: 是否由于缺少可用物理內(nèi)存存儲(chǔ)高速緩存中經(jīng)常訪問的數(shù)據(jù)而導(dǎo)致瓶頸存在。如果是這樣,SQL Server 必須從磁盤檢索數(shù)據(jù)。 是否可以通過添加更多內(nèi)存或使更多內(nèi)存可用于數(shù)據(jù)高速緩存或 SQL Server 內(nèi)部結(jié)構(gòu)來(lái)提高查詢性能。 Lock blocks:服務(wù)器上鎖定塊的數(shù)量,鎖是在頁(yè)、行或者表這樣的資源上。不希望看到一個(gè)增長(zhǎng)的值。 Total server memory:sql server服務(wù)器當(dāng)前正在使用的動(dòng)態(tài)內(nèi)存總量.
|
|
來(lái)自: 網(wǎng)上文件夾 > 《oracle》