本篇文章描述了通過sp_sysmon對Adaptive Server系統運行情況有一個全面系統了解,有利于更好地熟悉系統性能,更為有效地進行系統管理,合理地利用和配置系統資源,達到系統性能調優的目的。
從18個方面了解在用系統性能狀況,并在適當的時候利用環境參數進行性能調優:
1、內核管理(kernal) 2、應用管理(appmgmt) 3、數據緩存管理(dcache)
4、ESP管理(esp) 5、索引管理(indexmgmt) 6、鎖管理(locks)
7、內存管理(memory) 8、元數據高速緩存管理(mdcache)9、任務管理(taskmgmt)
10、監視器訪問SQL的執行(monaccess) 11、網絡I/O管理(netio)
12、并行查詢管理(parallel)13、過程緩存管理(pcache)14、恢復管理(recovery)
15、事務管理(xactmgmt)16、事務概要(xactsum) 17、磁盤I/O管理(diskio)
18、工作進程管理(wpm)
括號后英文短詞是該模塊參數。
環境: 1、用戶數據庫中有練習所用數據表auths和article
2、數據表各有10萬行數據
3、用戶具有查詢、修改、刪除等基本的數據庫表操作權限
步驟:執行sp_sysmon “00:10:00”(server級系統存貯過程,不需要打開某個數據庫),或者執行如下格式的過程,查看具體操作批命令對應系統性能情況:
sp_sysmon begin_sample
SQL語句或者存貯過程
sp_sysmon commit_sample
本實驗采用 sp_sysmon “hh:mm:ss”,性能模塊名。
結論:通過此練習,可了解當前系統在各方面的系統運行狀況,性能出現什么問題和不平衡不協調之處,學會使用相應的參數和措施進行解決和調優,不斷比較對照調整前后的性能狀況,最終改善系統性能。
說明:1、該命令執行結果集的開頭相同如下,各分塊練習不再一一列示:
======================================================================
Sybase Adaptive Server Enterprise System Performance Report
======================================================================
Server Version: Adaptive Server Enterprise/11.9.2/1031/P/NT (IX86)/OS 3.
Server Name:/t Server is Unnamed
Run Date:/t May 28, 2001
Statistics Cleared at: 15:57:27
Statistics Sampled at: 16:07:28
Sample Interval: 00:10:00
2、執行結果集的每列信息提示:
per sec : 采樣期間每秒的平均值
per xact: 采樣期間每提交一個事務的平均值
count : 采樣期間每秒的總計值
% of total: 占總數的百分比,根據不同情況各有不同
3、結果集對應給出性能情況描述、分析以及可調性說明
4、本練習只給出部分模塊的監視結果(可能有刪節),用sp_sysmon “hh:mm:ss”可看全部詳細情況。
鎖管理
命令行:sp_sysmon “00:10:00”,locks
結果:
Lock Management(鎖管理)
報告鎖、死鎖、鎖提升和鎖爭奪的情況
---------------
Lock Summary(鎖概述)/t per sec per xact count % of total
------------------------- ------------ ------------ ---------- ----------
Total Lock Requests/t 26.1/t 2.2 15676 n/a
總共的鎖請求
Avg Lock Contention/t/t 0.0/t 0.0/t 0 0.0 %
平均鎖爭奪
Deadlock Percentage/t/t 0.0/t 0.0/t 0 0.0 %
死鎖出現的比例
Lock Hashtable Lookups/t 26.1/t 2.2 15677 n/a
對hash表的表、頁、行鎖的查詢次數。
Avg Hash Chain Length/t n/a/t n/a 0.00038 n/a
Hash鏈平均長度:采樣期間每個hash桶的平均加鎖數目。如果每個hash鏈超過4個鎖,可用參數“lock hashtable size”調整擴大加鎖hash表的大小,尤其是大型bcp可配置更大。
Lock Detail/t /tper sec per xact count % of total
------------------------- ------------ ------------ ---------- ----------
對于各種類型的鎖細節,重點查看其立即授予和等待情況。
Last Page Locks on Heaps 堆表最后頁鎖
Granted/t/t/t 13.6/t 1.2 8189 100.0 %
Waited/t/t/t 0.0/t 0.0/t 0 0.0 %
------------------------- ------------ ------------ ---------- ----------
Total Last Pg Locks/t 13.6/t 1.2 8189 100.0 %
如果堆表最后一頁鎖的爭奪激烈(尤其是熱對象的等待時間過長),考慮建立聚簇索引,或者表分區來解決鎖資源爭奪問題。
Deadlocks by Lock Type/t per sec per xact count % of total
------------------------- ------------ ------------ ---------- ----------
Total Deadlocks/t/t 0.0/t 0.0/t 0 n/a
死鎖出現次數。當很多事務同時訪問同一個數據庫時,會加劇鎖資源爭奪,嚴重時事務之間會發生死鎖??捎胹p_object_stats查明死鎖位置。該過程報告資源爭奪最激烈的10張表、一個數據庫中資源爭奪的表和單個表的爭奪情況。語法為sp_object_stats interval [, top_n
[, dbname [, objname [, rpt_option ]]]],查看鎖爭奪情況只需設置interval為“hh:mm:ss”。如果顯示每種鎖的爭奪程度超過15%,應該改變加鎖方式,比如表的全頁鎖改成數據頁鎖,數據頁鎖改成數據行鎖等。
Deadlock Detection 死鎖檢測
Deadlock Searches/t/t 0.0/t 0.0/t 0 n/a
死鎖檢測次數。死鎖檢測將特花費時間,如果檢測次數過多,用參數“deadlock checking period”(缺省500ms)調節死鎖檢測周期。
Lock Promotions 鎖提升
Total Lock Promotions/t 0.0/t 0.0/t 0 n/a
鎖提升指排它頁鎖到排它表鎖、共享頁鎖到共享表鎖、排它行鎖到排它表鎖、共享行鎖到共享表鎖、共享next_key鎖到共享表鎖。查看鎖提升是否加劇了鎖爭奪或死鎖發生,如果鎖爭奪激烈并且鎖提升頻繁,考慮調整鎖的隔離級別,對全頁鎖表,需要2級也可強制為3級。
Lock Timeouts by Lock Type per sec per xact count % of total
------------------------- ------------ ------------ ---------- ----------
Total Timeouts/t/t 0.0/t 0.0/t 0 n/a
新聞熱點
疑難解答
圖片精選