版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、- PAGE 31 -金蝶K/3產品性能穩定性優化指導手冊(輔助工具)(V3.0)金蝶軟體(中國)有限公司研發中心K/3產品事業部.設計部解釋目的本手冊在於指導技術支援人員、分支機搆實施服務人員和客戶處理K/3系統應用過程中產生的性能問題、中間層伺服器問題等;同時也指導我們的實施服務人員和客戶在實施中如何避免將來可能發生的性能問題和中間層問題。讓研發人員、技術支援人員和分支機搆實施人員一起共同提高工作能力,快速反應快速解決客戶的問題。適合對象本手冊的主要閱讀物件是K/3系統研發人員、技術支援人員、實施人員、客戶服務人員和公司授權的有一定技術能力的客戶系統管理員。回饋本手冊是對研發在處理客戶性能
2、和穩定性問題的收集和總結,所以涉及到的面有可能還不夠。完善本手冊,提供一個更加完整的客戶問題解決指導方案,離不開大家的支持,所以大家在碰到相關的問題時,請回饋K/3設計部,我們將及時對手冊更新。導讀本手冊包括資料庫、中間層、用戶端和輔助分析工具介紹四大篇,分別介紹K/3客戶性能和穩定性問題的處理方法、案例以及輔助工具,請您根據您的需要選擇相應的章節閱讀。注意由於此手冊可能牽涉一些K/3在技術方面的細節,為了防止有些人用意不良,斷章取義來攻擊K/3和公司,請注意保密。 金蝶K/3產品性能穩定性優化指導手冊(輔助工具)目錄 TOC h z t 功能标题1,1,功能标题2,2,功能标题3,3,功能标
3、题4,4 HYPERLINK l _Toc195678486目錄 1.5 元件服務主要用來分析中間層的性能表現一)使用方法使用元件服務管理工具可以配置和管理 COM 元件及 COM+ 應用程式,在K/3中間層伺服器監視元件的使用情況。1)啟動元件服務管理工具在“開始”功能表,依次指向“程式”、“管理工具”,然後單擊“元件服務”。2)檢查K/3中間層元件是否在運行如下圖,選擇“Com+應用程式”可以發現哪些元件正在運行;選擇工具條上的“狀態查詢”能夠更加直觀的查找哪些元件在運行中。如果用戶端用戶比較多或者網路速度比較慢的情況下,中間層伺服器有可能出現服務,從而引起性能問題。可以通過元件服務的事件
4、列表檢查是否有比較多的事件在排隊等待。介面如下圖:二)如何找到正在執行的資源耗用多的組件有時候如果中間層的CPU或記憶體耗用很嚴重,由於在多個客戶的併發下有時候客戶很難發現是那一項操作引發了問題,這時候可以找一下那一個元件包中的哪一個元件耗用資源比較嚴重,配合其他的觀察:如在此階段用戶都在做那些操作,有助於發現引發問題的功能。首先在任務管理器的進程選頁簽上尋找耗用資源較多的DLLHOST進程,在這兒說明一下,每一個中間層元件包在運行時有一個DLLHOST進程,每一個包包含很多元件。找到耗用資源較多的DLLHOST,找對應的PID(進程標示號),根據PID在元件管理中可以找到對應的元件包,然後在
5、對元件包下面尋找調用時間長的元件,把此元件的資訊和其他用戶操作資訊回饋到研發,可以定位到具體的功能。三)如何判斷中間層的阻塞對於中間層伺服器,有可能發生阻塞,這時候主要看上面所描述的元件伺服器中事務列表中的元件排隊情況,如果有較長的排隊情況,就代表出現阻塞,可以考慮把組塞較多的元件分離出來重新放到一個新建的包中,因為每一個COM+元件包有一個進程。四)關於STA模式COM+元件線程數限制問題對於VB編寫的COM+元件,由於不能編譯為MTA線程模型,每個元件包進程的線程數默認為10個,也就是說同一個元件包中所有元件功能只能最多有十個同時運行。對此問題,微軟提供了一個修改線程數量限制的方法,那就是
6、修改註冊表選項,可以讓線程數達到100。此項改進在V10.0已經在安裝包做了修改,如果是以前版本的客戶可以直接修改中間層伺服器註冊表選項。可以直接把以下註冊表檔導入。修改默認設置後,會提高中間層的併發性能。1.6 SQLDiag.exeSQLDiag.exe 工具程式默認的檔路徑位於 : Program FilesMicrosoft SQL ServerMSSQLBinn 目錄之下,產生出來的日誌檔默認放在:Program FilesMicrosoft SQL ServerMSSQLLOG 目錄之下,檔案名為 SQLDiag.txt。它可以在同一時間、一次幫你收集相當多的資訊。在相同的時間區段
7、內,收集各種方面的資訊非常重要。例如你觀察到 SQL Server 對某個查詢的回應遲緩,可能需要同時觀察系統硬體各項資源的使用,SQL Server 當時的鎖狀況,是否有錯誤發生等等,必須要互相參照,才容易找出禍首。 SQLDiag.exe 就可以在同一時間搜集到相當多的資訊,它必須在 SQL Server 伺服器本身執行,而不能在用戶端工作站執行。輸出的相關資料列述如下:獲取記錄檔,若是SQL Server 2000 的版本,這些記錄檔默認是位於“Program FilesMicrosoft SQL ServerMSSQLLOG”目錄下,名稱為ERRORLOG 及副檔名是數字的先前版本,如
8、Errorlog.1、Errorlog.2 一直到Errorlog.6 等等,若版本是 SQL Server 7.0,則這些記錄檔路徑默認是 MSSQL7log。這些日誌檔是文本類型,雖然名稱是ErrorLog,但放的不儘然是錯誤,SQL Server 會將一些資訊,如啟動時所完成的動作,放在這個檔中。當然,若有錯誤,也會存放在這個檔中,SQLDiag 默認會將這些ErrorLog 檔一併放到輸出結果的檔內。獲取相關的註冊(registry)資訊。獲取相關程式庫(dll library)的版本資訊。通過sp_configure 系統存儲過程獲取SQL Server 執行實例的各項配置。通過sp
9、_who 系統存儲過程獲取當前登錄SQL Server 執行實例的用戶各項細節。通過sp_lock 系統存儲過程獲取鎖的相關資訊。通過sp_helpdb 系統存儲過程獲取SQL Server 執行實例內各資料庫的相關資訊。通過xp_msver 擴展存儲過程獲取軟硬體平臺的簡要資訊。通過sp_helpextendedproc 系統存儲過程獲取擴展存儲過程(extended stored procedures)的相關資訊。由於擴展存儲過程是以DLL 的形式與SQL Server 的核心執行在同一個程式中,若有任何閃失,輕則造成記憶體洩露,重則導致服務程式當掉。通過這個系統存儲過程會表列出所有的擴展
10、存儲過程,你可以將它的輸出與一般安裝的SQL Server 做個比較,看看是否有用戶自行安裝的擴展存儲過程,造成系統的不穩定。從master.dbo.Sysprocesses 系統資料表獲取程式(process)的相關資訊。當系統忙碌時,你可以通過它觀察到底有哪些程式在伺服器內執行,各用了多少資源等等。搭配其他的系統存儲過程,如sp_who、sp_who2、sp_lock 等等,可以獲得整體的狀況。例如通過waittime 欄位知道有哪些程式已經等待很久,從cpu、physical_io 以及memusage 欄位可以看出哪些程式在耗CPU、磁片輸出入或記憶體資源。以及打開了事務,但執行狀況卻
11、是sleeping 的不當事務管理。通過DBCC INPUTBUFFER (spid) 獲取各進程正在執行的命令。獲取鎖鏈接的起始者(head blocker)。通過MSInfo32.exe 獲取系統的細節資料,這需要耗掉一些時間。最後100 個查詢和異常狀況(Exception)。SQLDiag.exe 獲取系統資訊是靠MSInfo32.exe 工具程式取得系統的相關資訊,你可以直接執行該工具程式以查看更豐富的資訊,如下圖:點擊MSInfo32.exe 主功能表的檔 - 導出選項,可以將系統當前的各項資訊導出成文字檔案,供你日後參考。由於導出屬性包含軟硬體的各項細節資訊,所以按下導出後可能要
12、稍等一下。SQLDiag.exe 是一個相當容易執行的工具程式,若要參照它的使用方式,可以進入“命令提示符”程式,轉到SQLDiag.exe 所在的目錄下執行SQLDiag /?(SQLDiag.exe 默認目錄是:Program FilesMicrosoft SQL ServerMSSQLBinn),以顯示各項參數,或是在SQL Server 所附的“聯機文檔”利用SQLDiag 關鍵字找尋使用的細節,URL 是:mk:MSITStore:C:Program%20FilesMicrosoft%20SQL%20Server80ToolsBooks coprompt.chm:/cp_sqldia
13、g_96k9.htm以下簡述它各項參數的使用方式:-?:顯示使用說明。-I :指定要連接的本機SQL Server 執行實例(Instance)。若不指定 I 選項,則連接至本機默認的執行實例。-U :指定登錄SQL Server 的帳號。-P :上述帳號對應的密碼。若指定-P 選項但不賦予值,則SQLDiag 認定密碼為空。密碼有區分大小寫。-E:使用信任連接,也就是以當前登錄作業系統的帳號來連接SQL Server。-O :將SQLDiag 的導出重新導向到指定的檔。若未指定-O 選項,則默認輸出檔名稱為SQLDiag.txt。此時,跟蹤檔案名稱仍維持原先的blackbox.trc 和bl
14、ackbox_01.trc。若指定-O 選項,則SQLDiag根據你配置的名稱,重新命名跟蹤文件blackbox.trc 和blackbox_01.trc (例如,若output_file 指定為MyDiagnostics.txt,跟蹤檔將分別重新命名為MyDiagnostics.trc 和MyDiagnostics_01.trc)。-X:排除錯誤日誌檔。-M:執行DBCC 堆疊列印(stackdump)。-C:抽取聚集信息。執行範例如下:SQLDiag -E -O diag.log通過E 參數,會以登錄作業系統的帳號登錄 SQL Server,而O diag.log 參數則會產生名稱為dia
15、g.log 的輸出。1.7 性能監視器(Performance Monitor)Windows NT 之後所附的性能監視器是顯示各種性能資料非常詳盡的工具。你可以用它來觀測伺服器當前的運行,記錄整個系統多台機器上的各種性能計數器,以找出整個系統的瓶頸。我們在性能調校的過程中會一再地用它。Windows NT 之後,就直接提供性能監視器(Performance Monitor),一般是用來查看、跟蹤在整個系統中,是否有哪個部分顯示資源不足的狀態,或是系統的使用狀況、演變的趨勢等等。而性能計數器代表的是一種指標,它本身不是問題,某些背後隱含的問題導致該指標的變化。因此不要看到單一性能計數器的值就下
16、定論,一定要建立推論:是什麼原因導致該性能計數器有當前的值,若該原因是真的,那同時哪些性能計數器應該顯示什麼現象?而你當然應該再進一步分析與推論相關的計數器。性能監視器讓你獲得證據以完成:支持自己的假設,或是推翻結論另尋原因。獲取電腦全盤的狀態,讓你可以發現電腦發生了什麼狀況(WHAT) ,而不是為何(WHY)或如何(HOW)發生這種狀況。抽取電腦變化的狀態,有基線以供比較是非常重要的,它讓你可以知道什麼是正常,而什麼不是。如果無法獲取基線,則尋找記錄中的變化,查看計數器相對的值而非絕對的值,並與先前的使用經驗做一個比較。除了一般的硬體,如記憶體、硬碟、中央處理器乃至於網路等系統提供的性能計數
17、器外,大部分微軟提供的伺服器軟體在安裝完畢後,也會註冊它自身的性能計數器,而SQL Server 會增加相當多類的性能計數器供你查核使用狀況,而這些性能物件皆以“SQLServer:”開頭。在要抽取性能的記錄之前,儘量將不相關的、當前不需要的服務先停掉,如IIS,系統掃毒等等。如果需要調校的電腦可能會當機,則要採用遠端記錄,避免資料未記錄到就掛了。相反地,若網路有問題,當然需要在本機完成記錄。而一旦採用遠端監控,要先同步兩台機器的時間才好比對結果。你可以在命令提示視窗中,通過以下的命令同步系統之間的時間:NET TIME RemoteMachine /SET就SQL Server 的使用特性來
18、說,依其重要程度,觀察硬體資源不足的順序依序是:記憶體、硬碟、中央處理器乃至於網路。SQL Server 是非常耗用記憶體的軟體,因為它凡用過的資料必先留在記憶體中,除非資源不足,否則不輕易從緩衝區清掉,讓資料庫的運行儘量少使用硬碟。當記憶體不足時,會連帶地影響硬碟和中央處理器。例如有新的資料要放到屬性已滿的緩衝區,則SQL Server 內部負責將緩衝區屬性更新到硬碟的LazyWriter 程式就需要持續地執行,好更新緩衝區的資料,並釋放較沒有使用到的記憶體區塊,這會同時讓CPU 與硬碟忙碌起來。也就是說,當CPU 和硬碟性能不足時,有可能源頭是記憶體不足造成的。磁片子系統的性能不佳,也一定
19、會讓SQL Server 性能好不起來,畢竟它需要大量讀寫存在硬碟上資料庫內的資料。若你沒錢購置RAID,最好也多買幾顆硬碟,讓Log 檔、資料庫檔以及Windows 作業系統用做虛擬記憶體的交換檔分在不同的硬碟上,因為這三種檔的設計目的不同,存取的習性與頻率也不同,當三者在同一顆硬碟上時,有可能因為多個人存取資料庫,有的做更新,有的查詢,這些運行讓作業系統要配置虛擬記憶體,因此硬碟要同時存取三種檔,這會導致磁頭忙碌地移動,讓硬碟的存取大多是隨機讀取,無法做循序讀取,導致硬碟性能降低。因此建議將三種檔分別放在不同的硬碟上。硬碟的性能遲緩,必定導致資料庫的查詢與資料異動延遲(這兩種動作分別是存取
20、資料庫檔與Log 檔),這又造成事務要花較長的時間才能結束,進而讓鎖的資源無法釋放,多人存取的系統彼此等待資源,進入大家都被延遲的慘況。CPU性能的重要性不用強調了吧,它慢,週邊設備再快都沒有用。但要注意的是,我們當前電腦的設計往往是中央處理器極快,但週邊運行緩慢,導致CPU無法有效發揮它的能力。因此當考慮加強中央處理器時,要看看是否是周邊設備的不足,導致CPU忙碌。一般來說,啟動性能監視器後,只要記錄資訊而不需要做圖。以較穩定的方式抽取電腦完整的狀態,由於在事前你很難預料判斷瓶頸時,會需要哪些資料,所以儘量記錄所有的計數器5。如圖3.5 所示,除了通過默認的視窗觀察系統當前的情況外,最好還要
21、通過添加記錄的方式,對系統作較長時間的監控。執行性能監視器時間要長到足以抓取到問題,一般粗略的配置綱要如下:記錄2小時每4 秒記錄一次。記錄1天每30 秒記錄一次。記錄1天每180 秒記錄一次。活動中的圖形只能顯示瞬間的系統狀況,長時間記錄的資料才能看出趨勢時間間隔不要小於4 秒,以免記錄這個動作本身就傷害電腦的性能,除非是要抽取磁片I/O 的性能,最高頻率也勿超過每2 秒記錄一次。另外,為減輕對電腦長期的影響,若沒有特殊需求,只要記錄2 小時就好。如果需要的話,執行diskperf y 以抽取磁片的性能資訊。初次記錄時,在不傷及性能的前提下,僅可能地抽取所有的物件,供你對整個系統有一個全面性
22、的概觀。縮略表列一般要記錄的物件如下(如果不可能取得全部物件):Cache, memory, objects, paging file, physical disk, logical disk, process, thread, processor, server, system。所有的SQL Server 物件。如果有網路相關的問題,所有與網路相關的物件(Protocol Stack Objects)。一次記錄通常無法包含所有需要的資訊,可能要多次後續不同的記錄資料。另外,在記錄上尚有其他的考量,如每個記錄存成一個檔,在記錄停止後,下次打開一個新的檔。檢查記錄檔所花的硬碟空間。若某個日誌檔屬
23、性太大,而你只需要其中重要的部分,重新建立記錄(Re-logging)可能會很有用。日誌檔最大極限1 gigabyte (GB),而單一日誌檔太大也很難處理,可行的日誌檔大小應該在100 megabytes (MB) 左右,建議取50 MB。若你需要長時間記錄,而系統是在Windows NT 上,考慮以script 自動停掉並重起記錄,以減低記錄檔大小。若在Windows 2000 則可以利用Sysmon 的計畫任務,定時停掉並重起記錄,以分成多個日誌檔。使用Windows XP 或Windows 2003,可以通過Relog.exe 工具程式對事件重新建立記錄,它可以將日誌檔轉換成不同的格式
24、,並在新建立的日誌檔中包含較少的計數器數目。使用relog.exe 的步驟如下:1. 查看日誌檔資料:打開先前抽取的.blg 文件。2. 選擇你要繪圖的計數器。3. 圖表上以滑鼠右鍵選擇“另存新檔”,格式為HTML。4. 將新建的html 檔以附屬應用程式的“記事本”打開。5. 保留你有興趣的計數器,將其餘的計數器刪掉,同時把所有的格式通通刪掉,只保留如下的格式屬性:ComputerObjectParent/Instance#IndexCounter若需要多個計數器,則每個名稱間以換行符號分開,範例如下:BYRON2003NBMemoryPages/secBYRON2003NBPhysical
25、Disk(_Total)Avg. Disk Queue LengthBYRON2003NBProcessor(_Total)% Processor Time其中Computer 名稱可以省略。6. 以一般文字檔案格式ANSI 編碼存檔,或許換個檔案名比較合適,例如以.txt 為副檔名。要小心的是默認“Windows System Monitor”將HTML 格式的配置檔是以Unicode 存檔,“記事本”會依照原編碼格式也就是Unicode 存檔,而Relog.exe 看不懂這種檔格式。命令執行範例如下:relog SQLPerformance.blg -cf General.txt -f C
26、SV -o General.csv在範例中,原始日誌性能的檔案名稱是SQLPerformance.blg,而該檔以二進位格式存放性能日誌資料,而我們只取部分的計數器,定義在General.txt 文件中。過濾的結果將以逗號分隔的一般文字存檔,也就是默認給Excel 看的.csv 檔,所以結果輸出到General.csv 檔中,你可以直接通過Excel 打開查看分析。上述步驟的相關細節可以參閱微軟支援網站,查詢檔“Q195654 Methods for Condensing a Performance Monitor Log File”,或是執行範例光碟第3章“重新過濾Log”目錄下的myRel
27、og.cmd 批次檔案來測試錄製完一段時間的系統執行狀況後,接著要做的是顯示以及替日誌檔繪圖,Windows NT 所附的Perfmon 受限在只能畫到100%,而Windows 2000 之後的Sysmon 則可以超過這個範圍。若系統間有不同時區的差異,Sysmon 會做調整,Perfmon 則不會。若要與其他的資料做比較而時區不同,如SQL Profiler 的跟蹤檔,可能會造成混淆。在查看資料時,應先繪製全部記錄的圖表,以瞭解整體的趨勢。對於同一個日誌檔可以繪製多個圖表,以避免單一圖表顯示過多的資訊。為不同的記錄instance 配置不同的值域範圍(range),若要突顯圖表中某個ins
28、tance 的線條,可以在下方區塊選到該線條後按快捷鍵Ctrl+H。查看圖形時,利用時間範圍slider 來取得特定趨勢時段的細節,並利用鍵盤上的左右箭頭一次移動一個點,若偶有一兩個點遠高出邊界,可能是除零運算的結果,可以忽略不計。最後要注意的是不要利用Windows NT 的Perfmon 讀取Windows 2000 Sysmon 產生的日誌檔當要分析記錄所得的資料時,尋找某些模式,以及不正常之高或低的計數值,這有助於瞭解什麼是“正常”值,對建立基線是有幫助的,如果一個計數器顯示某個問題,可尋找其他的證據以支持你的理論,例如:% Process Time 的值持續很高,瓶頸不一定是在CPU
29、 。也可能因實體記憶體不足,為了處理page faults 造成很高的%Privilege Time。SQL Server Total Server Memory 持續飆高不一定是memory leak。Buffer Pool 會在SQL Server 尚未用到記憶體限制或極限時,持續增加。不要忘了查看SQL Profiler 跟蹤檔、errorlog,或其他相關資訊,有助於解釋你在性能記錄所看到的現象。當特定的計數值走高時:SQL Profiler 是否同時抽取到值得注意的現象?是否有大量的recompile 和compile 事件?是否有特別的查詢或批次處理工作在執行?是否在errorlo
30、g 中看到任何錯誤或資訊?性能監視器就介紹到此,我們接著要討論的是針對個別問題需要進一步研究時,可以採用的工具程式。1.8 VBCheckW2k用於檢查使用VB編寫的DLL編譯是否正確,可以檢查整個系統中的COM+元件物件、IIS Web 應用程式以及單個的DLL檔使用方法:vbchkw2k /sc or dllname 參數說明:1:/sc 掃描IIS(進程中),OOP Pooled、以及安裝在COM+元件和COM+目錄下的獨立的應用程式;(由於K/3系統相應的DLL比較多,可以把內容輸出成一個日誌檔,然後在進行分析,方式在後面加上” log.txt “)2:dllname 掃描指定的DLL
31、3:無掃描IIS(進程中),OOP Pooled、以及安裝在COM+元件下的獨立的應用程式;示例命令:vbchkw2k /sc log.txt結果:Scanning dllhost.exe (PID:828) kdsvrmgrC:WINNTsystem32KDCOMKdsvrmgr.dll is fine. Retained In Memory :ON Unattended Execution :ON Retained In Memory :OFF Unattended Execution :OFF C:WINNTsystem32KDCOMMTSCACHESERVICE.DLL Please
32、Recompile! Retained In Memory :OFF Unattended Execution :OFFC:WINNTsystem32KDVBF.dll Please Recompile! Retained In Memory :OFF Unattended Execution :OFFC:Program FilesKingdeeK/3ERPKDLOG4VB.DLL Please Recompile!從上面的結果可以看出:在COM+元件服務中的Kdsvrmgr.dll是沒有問題的,而且保持在記憶體中;但MTSCACHESERVICE.DLL,KDVBF.dll,KDLOG4VB
33、.DLL需要重新編譯。1.9 ADPlus通過自動運行CDB調試器來產生一個或多個進程的記憶體DUMP和LOG檔,CDB(Microsoft Console Debugger)是基於字元的控制臺程式,可以分析更底層的Windows用戶模式的記憶體構造情況。ADPlus 可以創建不同場景下的詳細的dump檔。這個檔包括了出現問題時所需要的調試資訊。使用之前需要設置符號表資訊路徑:1:如果本地沒有符號表,但可以訪問網路可以在環境變數中增加下面的內容;(DownstreamStore為本地符號表的目錄)。2:也可以到微軟網站下載符號表,安裝到本地,然後在環境表量中增加下面內容set _NT_SYSM
34、BOL_PATH=c:symbol(假設按照在c:symbol目錄下)下載路徑:。何時使用,何時不使用在系統出現下面的情況時,可以考慮使用ADPlus:進程掛起在單個處理器電腦上100%的CPU,在雙CPU上50%CPU,在4個CPU上25%的CPU等待進程出現異常或者非正常的關閉但在下面的情況不要使用ADPlus如果需要對程式進行故障檢查或者進程啟動時異常結束如在crash模式下使用對執行性能有明顯的影響應用場景ADPlus應用的場景主要包括以下方面:進程掛起或者消耗100%的CPU進程異常結束MTS或COM+服務應用異常結束在遠端Crash模式下運行在Crash模式下監視ADPlus使用方
35、法ADPlus.vbs hang pn dllhost.exe 獲取掛起進程的dump檔;ADPlus.vbs hang p 1860 獲取掛起進程ID為1860的dump文件;進程ID可以通過任務管理器來獲取;ADPlus.vbs -crash p 1860 獲取掛起進程ID為1860的crash文件;進程ID可以通過任務管理器來獲取;示例:在CMD模式下,執行ADPlus.vbs hang p 1960,出現下面的提示下面的資訊:選擇確定後,系統將提示下面的資訊:選擇確定選擇確定系統提示生成檔在:D:Program FilesDebugging Tools for WindowsHang_
36、Mode_Date_07-20-2005_Time_16-08-1515目錄下,檔案名為PID-1960_DLLHOST.EXE_System_Application_full_0568_2005-07-20_16-08-31-794_07A8.dmp,該檔即是需要的DUMP檔。必須確定有符號表,如果未設置符號表,那麼在生成檔的目錄下,的日誌檔中會看到下面的錯誤資訊,將影響分析。* ERROR: Symbol file could not be found. Defaulted to export symbols for C:WINNTsystem32KERNEL32.DLL -ChildEB
37、P RetAddr Args to ChildWARNING: Stack unwind information not available. Following frames may be wrong.0006fd50 77e63b50 0000004c ffffffff 00000000 ntdll!NtWaitForSingleObject+0 xb* ERROR: Symbol file could not be found. Defaulted to export symbols for C:WINNTsystem32ole32.dll -0006fd60 77a8a701 0000
38、004c ffffffff 00079614 KERNEL32!WaitForSingleObject+0 xf00000000 00000000 00000000 00000000 00000000 ole32!CoRegisterSurrogateEx+0 x95b1.10 COM+ SPYCOM spy用於獲取COM+元件調用時相應的進程事件或者應用程式調用所花費的時間,來查找產生性能問題的瓶頸。用法如下:1:運行ComSpy.exe程式,在運行的時候首先保證“ComSpyCtl.dll”和“ComSpyAudit.dll”已經註冊;2:選擇功能表“spy”下的“select event
39、s”,將彈出下面的介面,選擇後點擊“close”按鈕,此時系統將自動對選擇的內容進行跟蹤:3:跟蹤結果如下圖:4:同時該工具也支持將跟蹤的結果導出到檔中。同時也可以打開導出的檔進行分析。1.11 Process Explorer進程流覽器用於查看當前運行的所有進程,進程中調用的DLL,線程和控制碼以及記憶體的分配情況。同時可以設置進程的優先順序別或者殺掉進程。在刪除檔的時候,如果報檔已經被系統引用,這時候也可以根據該工具來查找對應被那個進程調用,查看其相應的控制碼,通過關閉控制碼操作來結束對該檔的調用。下面對基本的使用方法進行介紹:1:啟動後介面如下:2:查看CPU的使用情況:3:查看進程相應
40、的資訊:上面為SQL SERVER的屬性資訊包括了線程,性能,TCP/IP連接,安全,環境變數設置,服務等資訊。1.12 DebugDiag用於分析記憶體的分配和使用情況,在使用的時候儘量把不需要使用的進程關閉。它的原理在於抓取進程的影像檔,對影像檔進行分析,最後統計出進程的分配情況。下面對使用進行一個簡單說明:1:設置符號表路徑2:選擇需要抓取進程的記憶體鏡像3:抓取完成後就可以使用工具進行分析了,下圖選擇了兩個DUMP檔進行分析:然後選擇“Start Analysis”進行分析;4:分析過程:5:分析結果:分析的結構將生成一個如下的分析檔,該檔中包括分析的摘要和明細資訊,資訊中會提示檔導致
41、花費了多少的記憶體,以及產生記憶體洩露的百分比等等。具體資訊同附件類似。不過現在微軟所出的版本分析的內容有限,可能不一定能滿足實際的需求。1.13 WinDBGWinDBG是基於對DUMP和Crash檔進行分析的工具,用於查看靜態記憶體的使用情況,在出現了COM+掛起,CPU100%,異常退出和性能問題的時候,都可以通過該工具進行分析,查看問題的所在。本部分主要是對常用的使用的命令進行一個說明(首先還是需要設置好符號表,符號表的設置參見ADPlus的使用):*:查看所有的進程;*kb:查看所有進程的代碼段;10s:進入10號進程;kb:在進入具體某個進程後,查看對應所有代碼段的內容;kP:在進
42、入具體某個進程後,查看對應所有代碼段的內容,包括內部的參數情況;dc,du,dt addr:查看addr記憶體位址的值;lm:查看進程調用的資源情況;!lmi ModualName:顯示Module的詳細資訊;vertarget:顯示目標電腦的版本;!load sieext.dll:調用DLL文件;!sieext.critlist:查看鎖死的進程;!calls:查看進程內部調用的相關進程;1.14收集電腦資訊工具自動收集伺服器的事件日誌,系統配置環境,作業系統版本等資訊。對與中間層伺服器使用MPSRPT_Alliance_X86.EXE,對於資料庫伺服器使用MPSRPT_SQL.exe工具位置
43、:MPSRPT_Alliance_X86.EXE:;MPSRPT_SQL.exe:如果現場問題需要總部支援的話,請使用上面的工具收集電腦的資訊。MPSRPT_SQL.exe 運行後:將會生成CAB檔,CAB會被生成在%systemroot%MPSReportsSQLServerCab目錄。通常名字為%COMPUTERNAME%_SQL_MPSReports_XXXXXXXXXX_X.CAB。 (%systemroot%為Windows系統目錄,比如C:Windows or C:Winnt)1.15檢查網路工具 PingPing 是個使用頻率極高的實用程式,用於確定本地主機是否能與另一台主機交換
44、(發送與接收)資料報。根據返回的資訊,你就可以推斷TCP/IP 參數是否設置得正確以及運行是否正常。簡單的說,Ping 就是一個測試程式,如果Ping 運行正確,你大體上就可以排除網路訪問層、網卡、MODEM 的輸入輸出線路、電纜和路由器等存在的故障,從而減小了問題的範圍。但由於可以自定義所發資料報的大小及無休止的高速發送,Ping 也被某些別有用心的人作為DDOS(拒絕服務攻擊)的工具,Yahoo 就曾經被駭客利用數百台可以高速接入互聯網的電腦連續發送大量Ping 資料報而癱瘓的。按照缺省設置,Windows 上運行的Ping 命令發送4 個ICMP(網間控制報文協定)回送請求,每個32 位
45、元組資料,如果一切正常,你應能得到4 個回送應答。Ping 能夠以毫秒為單位顯示發送回送請求到返回回送應答之間的時間量。如果應答時間短,表示資料報不必通過太多的路由器或網路連接速度比較快。Ping 還能顯示TTL(Time To Live 存在時間)值,你可以通過TTL 值推算一下資料包已經通過了多少個路由器:源地點TTL 起始值(就是比返回TTL 略大的一個2 的乘方數)減去返回時TTL 值。例如,返回TTL 值為119,那麼可以推算資料報離開源位址的TTL 起始值為128,而源地點到目標地點要通過9 個路由器網段(128-119);如果返回TTL 值為246,TTL 起始值就是256,源地
46、點到目標地點要通過9 個路由器網段。通過Ping 檢測網路故障的典型次序正常情況下,當你使用Ping 命令來查找問題所在或檢驗網路運行情況時,你需要使用許多Ping 命令,如果所有都運行正確,你就可以相信基本的連通性和配置參數沒有問題;如果某些Ping 命令出現運行故障,它也可以指明到何處去查找問題。下面就給出一個典型的檢測次序及對應的可能故障:這個Ping 命令被送到本地電腦的IP 軟體,你的電腦始終都應該對該Ping 命令作出應答,如果沒有,就表示TCP/IP 的安裝或運行存在某些最基本的問題。ping 本機IP-這個命令被送到你電腦所配置的IP 位址,你的電腦始終都應該對該Ping 命令
47、作出應答,如果沒有,則表示本地配置或安裝存在問題。出現此問題時,局域網用戶請斷開網路電纜,然後重新發送該命令。如果網線斷開後本命令正確,則表示另一台電腦可能配置了相同的IP 位址。ping 局域網內其他IP-這個命令應該離開你的電腦,經過網卡及網路電纜到達其他電腦,再返回。收到回送應答表明本地網路中的網卡和載體運行正確。但如果收到0 個回送應答,那麼表示子網路遮罩(進行子網分割時,將IP 位址的網路部分與主機部分分開的代碼)不正確或網卡配置錯誤或電纜系統有問題。ping 閘道IP-這個命令如果應答正確,表示局域網中的閘道路由器正在運行並能夠作出應答。ping 遠端IP-如果收到4 個應答,表示
48、成功的使用了缺省閘道。(但如果對方設置了防火牆,則可能會收不到應答)。ping localhost-localhost 是個系統的網路保留名,它是 的別名,每台電腦都應該能夠將該名字轉換成該位址。如果沒有做到這一點,則表示主機檔(/Windows/host)中存在問題。對這個功能變數名稱執行Ping 位址,你也可以利用該命令實現功能變數名稱對IP位址的轉換功能。如果得不到IP 位址,則表示DNS 伺服器的IP 位址配置不正確或DNS 伺服器有故障。如果上面所列出的所有Ping 命令都能正常運行,那麼你對你的電腦進行本地和遠端通信的功能基本上就可以放心了。但是,這些命令的成功並不表示你所有的網路
49、配置都沒有問題,例如,某些子網路遮罩錯誤就可能無法用這些方法檢測到。Ping 命令的常用參數選項ping IP -t-連續對IP 位址執行Ping 命令,直到被用戶以Ctrl+C 中斷。ping IP -l 2000-指定Ping 命令中的資料長度為2000 位元組,而不是缺省的32 位元組。ping IP -n-執行特定次數的Ping 命令。1.15.2 NetstatNetstat 用於顯示與IP、TCP、UDP 和ICMP 協定相關的統計資料,一般用於檢驗本機各埠的網路連接情況。如果你的電腦有時候接受到的資料報會導致出錯資料刪除或故障,你不必感到奇怪,TCP/IP 可以容許這些類型的錯誤
50、,並能夠自動重發資料報。但如果累計的出錯情況數目占到所接收的IP 資料報相當大的百分比,或者它的數目正迅速增加,那麼你就應該使用Netstat 查一查為什麼會出現這些情況了。netstat 的一些常用選項:netstat -s-本選項能夠按照各個協定分別顯示其統計資料。如果你的應用程式(如Web 流覽器)運行速度比較慢,或者不能顯示Web 頁之類的資料,那麼你就可以用本選項來查看一下所顯示的資訊。你需要仔細查看統計資料的各行,找到出錯的關鍵字,進而確定問題所在。netstat -e-本選項用於顯示關於乙太網的統計資料。它列出的專案包括傳送的資料報的總位元組數、錯誤數、刪除數、資料報的數量和廣播
51、的數量。這些統計資料既有發送的資料報數量,也有接收的資料報數量。這個選項可以用來統計一些基本的網路流量)。netstat -r-本選項可以顯示關於路由表的資訊,類似於後面所講使用route print命令時看到的資訊。除了顯示有效路由外,還顯示當前有效的連接。netstat -a-本選項顯示一個所有的有效連接資訊列表,包括已建立的連接(ESTABLISHED),也包括監聽連接請求(LISTENING)的那些連接。netstat -n顯示所有已建立的有效連接,並用數位形式來顯示位址.1.15.3 ARP(位址轉換協定)ARP 是一個重要的TCP/IP 協議,並且用於確定對應IP 位址的網卡物理位
52、址。實用arp 命令,你能夠查看本地電腦的ARP 快取記憶體中的當前內容。此外,使用arp 命令,也可以用人工方式輸入靜態的網卡物理/IP 位址對,你可能會使用這種方式為缺省閘道和本端伺服器等常用主機進行這項工作,有助於減少網路上的信息量。按照缺省設置,ARP 快取記憶體中的專案是動態的,每當發送一個指定地點的資料報且快取記憶體中不存在當前專案時,ARP 便會自動添加該項目。一旦快取記憶體的專案被輸入,它們就已經開始走向失效狀態。例如,在Windows NT 網路中,如果輸入專案後不進一步使用,物理/IP 位址對就會在2 至10 分鐘內失效。因此,如果ARP 快取記憶體中項目很少或根本沒有時,
53、請不要奇怪,通過另一台電腦或路由器的ping 命令即可添加。所以,需要通過arp 命令查看快取記憶體中的內容時,請最好先ping 此台電腦。常用命令選項:arp -a 或arp -g-用於查看快取記憶體中的所有項目。-a 和-g 參數的結果是一樣的,多年來-g 一直是UNIX 平臺上用來顯示ARP 快取記憶體中所有專案的選項,而Windows 用的是arp -a(-a 可被視為all,即全部的意思),但它也可以接受比較傳統的-g 選項。arp -a IP-如果你有多個網卡,那麼使用arp -a 加上介面的IP 位址,就可以只顯示與該介面相關的ARP 緩存項目。arp -s IP 物理位址你可以
54、向ARP 快取記憶體中人工輸入一個靜態專案。該專案在電腦引導過程中將保持有效狀態,或者在出現錯誤時,人工配置的物理位址將自動更新該項目。arp -d IP-使用本命令能夠人工刪除一個靜態專案。1.15.4 Tracert當資料報從你的電腦經過多個閘道傳送到目的地時,Tracert 命令可以用來跟蹤資料報使用的路由(路徑)。該實用程式跟蹤的路徑是源電腦到目的地的一條路徑,不能保證或認為資料報總遵循這個路徑。如果你的配置使用DNS,那麼你常常會從所產生的應答中得到城市、位址和常見通信公司的名字。Tracert 是一個運行得比較慢的命令(如果你指定的目標位址比較遠),每個路由器你大約需要給它15 秒
55、鐘Tracert 的使用很簡單,只需要在tracert 後面跟一個IP 位址或URL,Tracert 會進行相應的功能變數名稱轉換的。Tracert 一般用來檢測故障的位置,你可以用tracert IP 在哪個環節上出了問題,雖然還是沒有確定是什麼問題。Tracert 工作原理通過向目標發送不同IP 生存時間(TTL) 值的“Internet 控制消息協定(ICMP)”回應資料包,Tracert 診斷程式確定到目標所採取的路由。要求路徑上的每個路由器在轉發資料包之前至少將資料包上的TTL 遞減1。資料包上的TTL 減為0 時,路由器應該將“ICMP 已超時”的消息發回源系統。Tracert 先
56、發送TTL 為1 的回應資料包,並在隨後的每次發送過程將TTL 遞增1,直到目標響應或TTL 達到最大值,從而確定路由。通過檢查中間路由器發回的“ICMP 已超時”的消息確定路由。某些路由器不經詢問直接丟棄TTL 過期的資料包,這在Tracert實用程式中看不到。Tracert 命令按順序列印出返回“ICMP 已超時”消息的路徑中的近端路由器介面列表。如果使用-d 選項,則Tracert 實用程式不在每個IP 位址上查詢DNS。在下例中,資料包必須通過兩個路由器(.1 和)才能到達主機。主機的默認閘道是, 網路上的路由器的IP 地址是。C:tracert 9 -dTracing route t
57、o 9 over a maximum of 30 hops1 2s 3s 2s .1Trace complete.用tracert 解決問題可以使用tracert 命令確定資料包在網路上的停止位置。下例中,默認閘道確定9 主機沒有有效路徑。這可能是路由器配置的問題,或者是網路不存在(錯誤的IP 位址)。C:Tracing route to 9 over a maximum of 30 hops1 .1 reportsestination net unreachable.Trace complete.Tracert 實用程式對於解決大網路問題非常有用,此時可以採取幾條路徑到達同一個點。Trace
58、rt 命令行選項Tracert 命令支援多種選項,如下表所示。tracert -d -h maximum_hops -j host-list -w timeout target_name選項描述-d 指定不將IP 位址解析到主機名稱。-h maximum_hops 指定躍點數以跟蹤到稱為target_name 的主機的路由。-j host-list 指定Tracert 實用程式資料包所採用路徑中的路由器介面列表。-w timeout 等待timeout 為每次回復所指定的毫秒數。target_name 目標主機的名稱或IP 位址。1.15.5 IPConfigIPConfig實用程式和它的等價
59、圖形用戶介面Windows 95/98 中的WinIPCfg 可用於顯示當前的TCP/IP 配置的設置值。這些資訊一般用來檢驗人工配置的TCP/IP 設置是否正確。但是,如果你的電腦和所在的局域網使用了動態主機配置協定(Dynamic HostConfiguration Protocol,DHCP-Windows NT 下的一種把較少的IP 位址分配給較多主機使用的協定,類似於撥號上網的動態IP 分配),這個程式所顯示的資訊也許更加實用。這時,IPConfig 可以讓你瞭解你的電腦是否成功的租用到一個IP 位址,如果租用到則可以瞭解它目前分配到的是什麼位址。瞭解電腦當前的IP 位址、子網路遮罩
60、和缺省閘道實際上是進行測試和故障分析的必要專案。最常用的選項:ipconfig-當使用IPConfig 時不帶任何參數選項,那麼它為每個已經配置了的介面顯示IP 位址、子網路遮罩和缺省閘道值ipconfig /all-當使用all 選項時,IPConfig 能為DNS 和WINS 伺服器顯示它已配置且所要使用的附加資訊(如IP 位址等),並且顯示內置於本地網卡中的物理位址(MAC)。如果IP 地址是從DHCP 伺服器租用的,IPConfig 將顯示DHCP 伺服器的IP 位址和租用地址預計失效的日期.ipconfig /release 和ipconfig /renew-這是兩個附加選項,只能在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 痛风的诊断和治疗原则
- 2026年网络安全防护培训宣传
- 2026年生产设备安全操作培训
- 牵引患者的护理标准
- 2025-2026学年四川省德阳市旌阳区七年级(上)期末道德与法治试卷(含答案)
- DB36-T 907-2023 金福菇生产技术规程
- 危重症患者心理护理
- 电子制造厂物料管理细则
- 国开2026年《刑法学(2)》形考作业一到四答案
- 2026年燃气阀门关闭培训
- 2026年高考数学复习难题速递之圆锥曲线综合(2025年11月)
- 2025年《城市居民委员会组织法》知识考试题库及答案解析
- 自闭症专业毕业论文
- 2025四川绵阳涪城区下半年考核招聘医疗卫生专业技术人员24人考试笔试模拟试题及答案解析
- 2026年江苏卫生健康职业学院单招职业适应性测试题库附答案
- 社群运营培训课件
- 驾考宝典2025全部试题(附答案)
- 审核岗位笔试题目及答案
- 图书出版流程图解
- 赌场合作合同模板范本(3篇)
- 大单元体育教学设计解读
评论
0/150
提交评论