五.内存使用
充裕的内存可以减少磁盘IO,在数据库系统中磁盘IO是极其昂贵的开销。当用户访问资料时如果在缓存中能够找到的话称之为“逻辑IO“,否则从磁盘读取称之为“物理IO“....
五.内存使用
充裕的内存可以减少磁盘IO,在数据库系统中磁盘IO是极其昂贵的开销。当用户访问资料时如果在缓存中能够找到的话称之为“逻辑IO“,否则从磁盘读取称之为“物理IO“
内存问题大致是以下几个方面:
1.总的数据高速缓存太小。
2.过程高速缓存太小。
3.在SMP系统中只配置了缺省高速缓存,导致对高速缓存的争用。
4.高速缓存大小不适用于特殊的应用。
5.IO大小不适用于特定的应用。
高速缓存分类:
1.
数据高速缓存。用于数据,索引和日志页
2.
过程高速缓存。用于存储过程和触发器以满足短期内存需求。
确定过程高速缓存的大小可用以下办法实现:
过程高速缓存大小=最大用户并发数目*最大的计划大小*1.25
具体如下:在使用一段时间的服务器上用dbcc
traceon(3604)将信息写到屏幕,然后运行dbcc memusage确定最大的查询计划的大小,然后根据应用确定并发用户数量就可以大约得到高速缓存的大小了。其实在我们的ERP应用中最大的计划所需内存在450K左右,所以,一般来说,过程高速缓存的大小到100M肯定是够用的,并且当过程高速缓存不够时会有701的错误发生。
Sybase
default只有”default data cache”,并且只有一个2K的缓冲池,对于大多数的情况这都是不适合的,我们需要建立命名高速缓存并将对象绑定到高速缓存。
Sybase支持的缓冲池大小有2K,4K,8K,16K。给tempdb建立单独的命名高速缓存,并合理分配缓冲池,一般4K的log
IO的大小能够得到比较好的性能。在SMP的环境中还有一个问题就是螺旋锁的竞争,当用sp_sysmon观察到资料缓存螺旋锁争夺超过10%时就需要分区。sp_cacheconfig
‘cache name’,’cache_partition=X’就可以对缓存进行分区了。
六.sp_sysmon 的使用
sp_sysmon是ASE用来监控服务器在特定采样期间内的数据库的活动。在典型负载情况下能够提供服务器运行状况的描述,是性能调整的重要工具。以下的一些信息不是同sp_sysmon的输出顺序一样,但需要重点注意,这些信息来自Sybase的性能调整手册,仔细看了后觉得说的很是简洁明白,也就没有加入设么自己的东西了。其用法很简单,sp_sysmon
“HH:MM:SS”即可,但sp_sysmon在运行时对性能有影响,特别是在SMP环境下。还有有时sp_sysmon并不能提供完全正确的资料,例如采样时间太长或者太短。
Data
Cache Management
Cache Statistics Summary (all caches)
Cache Turnover (缓存周转)
Buffers Grabbed (缓存抢夺。所有缓存中替换的缓冲区数量)
Buffers Grabbed Dirty (缓存抢夺脏页。如果此值不为0代表严重性能问题)
Large I/O Effectiveness (大I/O效率)
Page by LRG I/O cached
Page by LRG I/O used (此两条信息报告由大I/O引入到高速缓存中及使用的页)
Asynchronous Prefecth Activity (异步预取活动)
APF issued (APF成功应用的次数)
APF Denied due to (不被大I/O的原因)
APF I/O overloads (缺少磁盘I/O结构或者由于磁盘信号争用而被拒绝的次数。如果因磁盘信号争用而引起检查高I/O发生处的对象物理放置)
APF Limit overloads (超出可用于异步预取的缓冲池的百分比。此值由global async prefetch
limit所影响)
APF Reused overloads (由于页链扭结或因APF引入的缓冲区在被使用前换出而使APF被拒绝)
APF buffers found in
cache (报告在资料高速缓存中找到的来自APF预先设置的缓冲区数量。异步预取使用快速扫描在资料高速缓存中尝试查找其需要的页,而不持有高速缓存螺旋锁。如果此操作不成功,则持有螺旋锁全面扫描)
Other asynchronous
prefetch statistics
APF used (报告由异步预取引入高速缓存并在采样期间使用的页数)
APF wait for I/O (一个进程被迫等待异步预取完成的次数。这表示欲取未能及时发生,从而使页未能在查询前位于高速缓存中。此值有一定百分比是合理的,原因如下:
1. 第一个预取请求肯定需要等待
2. 顺序扫描到新的分配单元并发出预取请求是,查询需要等待直到第一个I/O完成
3. 每次费集群索引扫描找到一组限定行并发出预取请求时,需等待第一页返回。其它可能的影响包括每页上需要完成的处理数量及I/O系统速度。
APF Discard (异步预取读入并在使用他们之前放弃的页数。如果此值较大可能表示增加缓冲池大小能有助于提升性能。也可能表示APF正将页引入到查询不需要的高速缓存中)
Cache Management by Cache
Cache search , hit
and miss information (缓存命中次数基本等于statistics io的逻辑读次数,未命中次数等于物理读次数。但sp_sysmon输出的值总是大于statistics
io的次数,因为其包含系统表io,日志页和OAM页同其它系统开销。如果命中率很高添加内存可能对性能提升没有太大作用)
Found in wash (在高速缓存中的清洗部分找到所需要的页的次数。如果清洗部分高速缓存命中百分比很高,可能意味着清洗区过大。对于只读或写操作次数较低的高速缓存并不是问题)
(较大的清洗部分会导致物理IO的增加,因为在他们通过清洗标记时ASE启动所有脏页中的写操作。如果清洗区中的页写到磁盘并进行第二次更新则是浪费io。如果必要,可更改清洗区大小。如果减小清洗区大小,可在完全负载的情况下再次sp_sysmon并检查值大于0的”Grabbed
dirty“的输出。)
Cache misses (报告在一个高速缓存中未找到所需页而从磁盘读取的次数)
Pool turnover (缓冲区周转。报告从高速缓存中每个池替换缓冲区的次数,此信息可帮助确定池和高速缓存大小是否合适)
LRU buffers Grab
(LRU缓存争夺。”LRU buffers grab”仅在一页代替另一页时才替增。如果内存池对吞吐量来说太小,则可能会有这样的结果:池中周转率很高,高速缓存命中率降低及I/O增加。如果某些池中周转率很高而其它池中却很低,也许希望将活动性低的池中的空间移动到活动性高的池中,尤其在能够提高缓存命中率的情况下。)
(如果池中有1000个池而ASE每秒替换100个缓冲区,则每秒有10%的缓冲区在周转。这也许说明缓冲区在高速缓存中停留的时间不足以使对象有机会使用此高速缓存)
Grabbed dirty ( 写入磁盘前到达LRU的脏缓冲区数量的统计信息。当ASE需要从高速缓存的LRU端争夺一个缓冲区用以从磁盘读取一页,却找到一个脏缓冲区而不是干净缓冲区时他必须等待脏缓冲区I/O完成。)
(如果grabbed
dirty非0,表示对于池中的吞吐量来说池的清洗区太小。补救措施取决于池的配置和使用情况:
1. 如果池很大且用于大量资料更新操作则应增加清洗区大小
2. 如果有几个对象使用此高速缓存,将其中一些对象移动到其它高速缓存中能够有所帮助
3. 如果高速缓存正由create index使用则高I/O率可引起脏缓冲区争夺,尤其在较小的16K池中。此情况下,可将其清洗区设置尽可能大,可达池中缓冲区的80%
4. 如果池非常小且周转率非常高则应考虑增加池和清洗区大小
5. 高速缓存已分区的话应减少分区数量
6. 检查查询计划和对象I/O统计信息,此对象使用高速缓存进行能够在池中执行许多物理I/O的查询。通过添加索引尽可能对查询进行优化。在“buffer
wash behavior”部分检查“buffers already I/O”和”buffers washed dirty”的”per second”值。清洗区应足够大以允许I/O在到达LRU前能够在脏缓冲区完成。需要I/O的时间取决于磁盘驱动器完成的每秒时既物理写操作次数。也要检查“disk
I/O management”以确认I/O争用是否减慢磁盘写操作。另外增加“housekeeper free write percent”也会有所帮助。
Buffer wash behavior (缓存清洗行为。报告缓冲区在到达池的清洗标记时的状
态信息。但缓冲区到达清洗标志时可能是以下三种情形之一:
1.“buffers passed clean”报告通过清洗标记的缓冲区数量。
缓冲区在高速缓存中是不进行修改,或进行了修改而且已经有管家任务或检查点写入到磁盘。“% of
total”报告清理干净缓冲区占通过清洗标记的缓冲区总数的百分比。
2.“buffers already in I/O“报告I/O在进入清洗区时在缓冲区中已经处于活动的次数。处在高速缓存中时此页已脏。管家或检查点已经启动该页中的I/O但I/O还未完成。“ [1] [2] [3] [4] 下一页 [办公软件]SYBASE数据库用户管理基本概念 [办公软件]关于SYBASE的自动启动 [办公软件]SYBASE事务 [办公软件]SYBASE dbcc [C语言系列]SQL Server到SYBASE连接服务器的实现 [其他]SQLServer到SYBASE连接服务器的实现 [SyBase]四川移动BOSS系统Sybase解决方案 [SyBase]中国联通CDMA计费系统工程的Sybase解决方案 [SyBase]Sybase ASE12.5智能管理《北京青年报》新闻采编系… [SyBase]Sybase EA Server 在网上税务系统中的应用
|