首页 > 数据库 > Sybase > 正文

sybase 性能诊断sp_sysmon锁诊断

2019-09-08 23:34:50
字体:
来源:转载
供稿:网友

  本篇文章描述了通过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  

死锁出现次数。当很多事务同时访问同一个数据库时,会加剧锁资源争夺,严重时事务之间会发生死锁。可用sp_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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选