|
供稿者:潘致遠
|
||
|
簡 介 UNIX 和 Linux 用戶通常會檢查運行在其服務(wù)器上的進程,以執(zhí)行問題分析及檢查服務(wù)器中消耗的資源。該信息不僅對執(zhí)行問題和資源分析的管理員有用,而且對于那些開發(fā)高度可用性和故障轉(zhuǎn)移腳本(這些腳本監(jiān)控 DB2 進程,以確定何時需要進行諸如數(shù)據(jù)庫重新啟動或服務(wù)器故障轉(zhuǎn)移之類的操作)的人也很有用。 如果您正在使用 AIX,則可以使用命令 ps -ef 檢查進程。在 Solaris 和 HP-UX 上,ps -ef 將只顯示所有服務(wù)器端進程(例如:代理程序、記錄器、頁面清除程序和預(yù)取程序)的 db2sysc 進程(主 DB2 引擎進程)。如果您正在使用 Solaris 或 HP-UX,利用命令 /usr/ucb/ps -axw 您可以看到這些服務(wù)器端進程。這兩種版本的 ps 命令都可以在 Linux 上使用。 當(dāng)在運行 DB2 通用數(shù)據(jù)庫客戶機或服務(wù)器軟件的計算機上執(zhí)行該命令時,您可能會看到列出了幾個 DB2 進程。本文的目的是記錄這些進程,并且解釋它們的作用以及它們何時可能會運行。盡管手冊 DB2 UDB V8 Administration Guide - Performance 的第 2 章記錄了大多數(shù)重要的進程,但該列表并不完整。通過閱讀本文,您將會理解每個 DB2 進程,當(dāng)您看到那些進程時,您會開始明白 DB2 正在執(zhí)行什么操作。 請注意,DB2 在 Windows 上工作方式的實現(xiàn)與基于 Linux 和 UNIX 環(huán)境的實現(xiàn)稍有不同。在 Windows 中,只有一個進程(db2sysc),在該進程下的每個引擎分派單元(engine dispatchable unit,EDU)都被作為線程來實現(xiàn)。盡管本文討論的是進程,但是在 Windows 環(huán)境中應(yīng)當(dāng)把它們看成線程。通過 Windows 任務(wù)管理器(Task Manager),您將能夠看到每個實例的 db2sysc 進程(db2syscs.exe)。還將顯示其它 Windows 服務(wù)/進程,我們將在本文中解釋它們是什么。 警告!請勿直接干預(yù)正常 DB2 環(huán)境中的 DB2 進程。在 Linux 或 UNIX 中利用 kill -9 命令殺死 DB2 進程可能會導(dǎo)致 DB2 出現(xiàn)異常行為。例如,殺死 db2sysc 進程將使整個 DB2 實例停止運行。本文旨在幫助您理解進程,而不是直接操作它們。 為什么研究 DB2 進程? 我們的個人經(jīng)驗已表明這方面的知識很有價值,并且我們拜訪的客戶也向我們尋求這類信息。還不相信嗎?看一看下面的實際方案,并且親眼看看如何通過檢查在系統(tǒng)上運行的 DB2 進程來解決問題: 方案 1:罕見的緩沖池頁面的清除 一個運行電子商務(wù)(eCommerce)站點并使用 DB2 作為數(shù)據(jù)庫服務(wù)器的客戶報告說,在一整天里,數(shù)據(jù)庫對應(yīng)用程序請求的響應(yīng)時間會不時地變得很長。數(shù)據(jù)庫快照未顯示當(dāng)時有任何異常發(fā)生。通過檢查服務(wù)器上進程在其中某一時刻的 CPU 使用情況,我們可以確定 I/O 清除程序(db2pclnr)消耗了超過 90% 的 CPU 時間。隨后通過研究 I/O 清除程序觸發(fā)器并對其進行相應(yīng)的調(diào)優(yōu),我們消除了這種情況,使得電子商務(wù)站點每天可以處理的吞吐量提高了 50% 以上。 方案 2:真相大白 在拜訪 IBM 的一家業(yè)務(wù)合作伙伴以進行一些 DB2 性能調(diào)優(yōu)工作時,我們碰到了查詢響應(yīng)時間全面延長的問題。除了常規(guī)的程序之外,顯示應(yīng)用程序列表的命令并未顯示當(dāng)時有任何其它程序在運行。在獲得 DB2 快照之前,我們看了一下運行在 DB2 服務(wù)器上的 DB2 進程,發(fā)現(xiàn) db2rebal 進程正在運行。當(dāng)將某個容器添加到 DMS 表空間時,就會使用該進程執(zhí)行數(shù)據(jù)的重新均衡工作。客戶“承認”,那天的早些時候他將一個容器添加到了包含 40 GB 表的表空間。一旦重新均衡工作完成,查詢響應(yīng)時間恢復(fù)如初。 揭開通知和診斷日志的廬山真面目 管理通知日志和診斷日志(db2diag.log)是重要的工具,管理員可以使用這些工具來理解數(shù)據(jù)庫的活動和功能。這些日志通常包含有關(guān) DB2 進程的信息,如下面取自 db2diag.log 項的示例所示: 2000-03-06-11.53.18.001160 Instance:myInst Node:000 PID:78121(db2agent (TEST)) TID:352 Appid:*LOCAL.payroll.000306140834 lock_manager sqlplrq Probe:111 Database:SAMPLE DIA9999E An internal return code occurred. Report the following: "0xFFFFE10E". 在該示例中,消息來自進程標(biāo)識號為 78121 的進程。該進程的名稱是 db2agent,并與名為 TEST 的數(shù)據(jù)庫相連。理解進程的功能有助于您了解管理通知日志和 db2diag.log 中各項的意義。 |
| 只有注冊用戶登錄后才能發(fā)表評論。 | ||
|
||
|
相關(guān)文章:
|
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|
|


