服务器 频道

Sybase 安装及系统管理之下篇

  【IT168 服务器学院】五.内存使用

  充裕的内存可以减少磁盘IO,在数据库系统中磁盘IO是极其昂贵的开销。当用户访问资料时如果在缓存中能够找到的话称之为“逻辑IO“,否则从磁盘读取称之为“物理IO“

  内存问题大致是以下几个方面:

  1.总的数据高速缓存太小。

  2.过程高速缓存太小。

  3.在SMP系统中只配置了缺省高速缓存,导致对高速缓存的争用。

  4.高速缓存大小不适用于特殊的应用。

  5.IO大小不适用于特定的应用。

  高速缓存分类:

  1.数据高速缓存。用于数据,索引和日志页

  2.过程高速缓存。用于存储过程和触发器以满足短期内存需求。

  确定过程高速缓存的大小可用以下办法实现:

  过程高速缓存大小=最大用户并发数目*最大的计划大小*1.25

  具体如下:在使用一段时间的服务器上用dbcctraceon(3604)将信息写到屏幕,然后运行dbccmemusage确定最大的查询计划的大小,然后根据应用确定并发用户数量就可以大约得到高速缓存的大小了。其实在我们的ERP应用中最大的计划所需内存在450K左右,所以,一般来说,过程高速缓存的大小到100M肯定是够用的,并且当过程高速缓存不够时会有701的错误发生。

  Sybasedefault只有”defaultdatacache”,并且只有一个2K的缓冲池,对于大多数的情况这都是不适合的,我们需要建立命名高速缓存并将对象绑定到高速缓存。

  Sybase支持的缓冲池大小有2K,4K,8K,16K。给tempdb建立单独的命名高速缓存,并合理分配缓冲池,一般4K的logIO的大小能够得到比较好的性能。在SMP的环境中还有一个问题就是螺旋锁的竞争,当用sp_sysmon观察到资料缓存螺旋锁争夺超过10%时就需要分区。sp_cacheconfig‘cachename’,’cache_partition=X’就可以对缓存进行分区了。

0
相关文章