sybase 性能诊断sp_sysmon锁诊断
本篇文章描述了通过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: Server is Unnamed
Run Date: 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(锁概述) per sec per xact count % of total
------------------------- ------------ ------------ ---------- ----------
Total Lock Requests 26.1 2.2 15676 n/a
总共的锁请求
Avg Lock Contention 0.0 0.0 0 0.0 %
平均锁争夺
Deadlock Percentage 0.0 0.0 0 0.0 %
死锁出现的比例
Lock Hashtable Lookups 26.1 2.2 15677 n/a
对hash表的表、页、行锁的查询次数。
Avg Hash Chain Length n/a n/a 0.00038 n/a
Hash链平均长度:采样期间每个hash桶的平均加锁数目。如果每个hash链超过4个锁,可用参数“lock hashtable size”调整扩大加锁hash表的大小,尤其是大型bcp可配置更大。
Lock Detail per sec per xact count % of total
------------------------- ------------ ------------ ---------- ----------
对于各种类型的锁细节,重点查看其立即授予和等待情况。
Last Page Locks on Heaps 堆表最后页锁
Granted 13.6 1.2 8189 100.0 %
Waited 0.0 0.0 0 0.0 %
------------------------- ------------ ------------ ---------- ----------
Total Last Pg Locks 13.6 1.2 8189 100.0 %
如果堆表最后一页锁的争夺激烈(尤其是热对象的等待时间过长),考虑建立聚簇索引,或者表分区来解决锁资源争夺问题。
Deadlocks by Lock Type per sec per xact count % of total
------------------------- ------------ ------------ ---------- ----------
Total Deadlocks 0.0 0.0 0 n/a
死锁出现次数。当很多事务同时访问同一个数据库时,会加剧锁资源争夺,严重时事务之间会发生死锁。可用sp_object_stats查明死锁位置。该过程报告资源争夺最激烈的10张表、一个数据库中资源争夺的表和单个表的争夺情况。语法为sp_object_stats interval [, top_n
[, dbname [, objname [, rpt_option ]]]],查看锁争夺情况只需设置interval为“hh:mm:ss”。如果显示每种锁的争夺程度超过15%,应该改变加锁方式,比如表的全页锁改成数据页锁,数据页锁改成数据行锁等。
Deadlock Detection 死锁检测
Deadlock Searches 0.0 0.0 0 n/a
死锁检测次数。死锁检测将特花费时间,如果检测次数过多,用参数“deadlock checking period”(缺省500ms)调节死锁检测周期。
Lock Promotions 锁提升
Total Lock Promotions 0.0 0.0 0 n/a
锁提升指排它页锁到排它表锁、共享页锁到共享表锁、排它行锁到排它表锁、共享行锁到共享表锁、共享next_key锁到共享表锁。查看锁提升是否加剧了锁争夺或死锁发生,如果锁争夺激烈并且锁提升频繁,考虑调整锁的隔离级别,对全页锁表,需要2级也可强制为3级。
Lock Timeouts by Lock Type per sec per xact count % of total
------------------------- ------------ ------------ ---------- ----------
Total Timeouts 0.0 0.0 0 n/a