文档章节

关于sybase的调优

Pig-man
 Pig-man
发布于 2016/05/25 21:10
字数 1201
阅读 49
收藏 1

 

说明:数据库性能慢的主要原因有两个

       1)数据库服务配置不合理

       2)应用程序不合理

       遇到数据库性能下降时通常先检查数据库服务配置方面有没有可以改善的,修改之后再观察一段时间,如果性能没有改善的话就要分析应用程序上有没有可以调整的地方:索引是否合理,sql语句是否优化等。

本篇主要分析数据库服务的配置:

问题分析:

小型机硬件:rp2470双机、CPU700M*2、内存512M*6

以下是现场发过来的主要配置情况:

lock scheme                 datapages  //datapages锁模式是性能最差的锁,一般不用

number of locks                300000  //通常不需要配置太多的锁10万就够了

max memory                     500000  //物理内存3G,配给sybase的为1G明显不合理                                  (内存*1024*1024*0.5*60%

number of open indexes           4000  //通常2000         

number of open objects           4000  //通常2000

number of user connections        300  //

number of worker processes          0  //cpu要打开相应工作进程数

procedure cache size           154800  //存储过程缓存不要超过100M

total data cache size          453699  //明显该值太小

allocate max shared memory          0  //打开sybase占用内存的开关

max online engines                  2          

number of engines at startup        2           

 

问题处理:

建议先调整以下配置

sp_configure "max memory",1150000              //sybase占用2.3G内存

sp_configure "allocate max shared memory",1

sp_configure "user log cache size",4096        //用户日志缓存用来缓存客户段信息 

sp_configure "procedure cache size",50000      //100M存储过程缓存

sp_configure "number of worker processes",2

 

备份sybase主目录下的***.cfg

sp_cacheconfig "default data cache","1G"       //配置缺省数据缓存1G

sp_cacheconfig "default data cache", "cache_partition = 2"

reboot sybase服务

备份sybase主目录下的***.cfg

sp_cacheconfig "tempdb_cache","400M"     //由于内存较充裕,通常会分配一部分内存给tempdb,提高查询的速度

sp_bindcache "tempdb_cache","tempdb"     //绑定400M的内存给tempdb

reboot sybase服务

上述操作如无法启动sybase服务则可以将备份的***.cfg替换当前的配置文件,重新boot sybase服务

总结:

sybase 11.9.2 & 12.0 & 早期版本的配置通常为以下几项:

total memory                   //定义sybase 服务能够使用的物理内存

number of lock                 //定义锁的数目

number of open database        //打开的数据库个数,缺省是12个,数据库数目超过12个时要调整该值

number of devices              //数据库的设备数,缺省是10,通常是不够的,需要调整

number of user connections     //用户连接数,根据需要设置,通常一个用户数消耗100K的内存

这个版本的数据库缓存、日志缓存、过程缓存是不用手工配置的

 

sybase 12.5版本的配置通常为以下几项:

lock scheme                  //锁模式,sybase推荐使用缺省(allpages),但是一些并发操作多的表(temp_telebill)要使用行锁(datarows),减少被锁现象

number of locks              //通常不需要配置太多的锁10万就够了

max memory                   //sybase服务能够使用的物理内存,通常配置成物理内存的70%~80%,上例内存是3G,配给sybase的为1G明显不合理

allocate max shared memory   //打开sybase占用内存的开关

number of open indexes       //通常2000,该值配置过低时会在日志中报该值不够,最终导致性能缓慢        

number of open objects       //通常2000,该值配置过低时会在日志中报该值不够,最终导致性能缓慢

number of user connections   //用户连接数,根据实际需求来配置,盲目多配会浪费内存

procedure cache size         //存储过程缓存不要超过100M,用来缓存过程的编译代码。

number of open database      //打开的数据库个数,缺省是12个,数据库数目超过12个时要调整该值

number of devices            //数据库的设备数,缺省是10,通常是不够的,需要调整

user log cache size          //日志缓存用来保留客户端连接信息的,每个连接都会生成一个user log cache size大小的cache,该值缺省为2K,主机内存充裕时可以配成4K

 

12.5及以后的版本中都要手工的配置default data cache,缺省为8M,几乎所有的用户操作都是在这个缓存中进行的,如果不优化的话严重影响数据库性能。

优化的方法是把尽可能多的内存配置给default data cache ,即:'max memory'-'所有其他内存消耗(用户数,锁数等)'-‘少许预留内存’=default data cache

sp_cacheconfig "default data cache","1G"       //配置缺省数据缓存1G

sp_cacheconfig "default data cache", "cache_partition = 2"

 

关于cpu的配置

max online engines            //sybase 使用的cpu的个数       

number of engines at startup  //激活cpu的个数 

number of worker processes   //cpu要打开相应工作进程数

 

© 著作权归作者所有

Pig-man
粉丝 20
博文 62
码字总数 47800
作品 0
青浦
程序员
私信 提问
京东招聘高级开发经理年薪30W起!

以下是JD: 1.大学本科或以上学历,计算机或相关专业毕业; 2.5年以上的编程工作经验,3年以上团队管理经验; 3.深刻理解面向对象的程序设计思想。熟悉J2EE.J2SE规范及体系,熟悉分布式应用系...

王亮
2012/05/09
3K
19
《Java性能权威指南》

市面上介绍Java的书有很多,但专注于Java性能的并不多,能游刃有余地展示Java性能优化难点的更是凤毛麟角,本书即是其中之一。通过使用JVM和Java平台,以及Java语言和应用程序接口,本书详尽...

ddddd8
2017/12/20
0
0
JavaOne 2016 —— 首日亮点

今年,为期5天的JavaOne会议中,4个会场的议题都进行了直播,演讲稿也在播出之后一并提供。来自Terracotta公司EHCache团队的Henri Tremblay,做了主题为 《学习Java 8:Lambda表达式和函数式...

两味真火
2016/10/01
1K
3
《成神之路-基础篇》JVM——JVM参数及调优(已完结)

Java内存模型,Java内存管理,Java堆和栈,垃圾回收 本文是[《成神之路系列文章》][1]的第一篇,主要是关于JVM的一些介绍。 持续更新中 JVM参数及调优 JVM实用参数系列 成为Java GC专家(5)...

2018/05/05
0
0
.net中连接SYBASE的种种问题

作者:zwztu http://search.csdn.net/Expert/topic/1612/1612693.xml?temp=.2369806 首先如果用OLEDB连呢?如果用ASE 的OLEDB 提供者,那这个提供者哪里有下呢? 其次如果用MSDATASHAPE连,可...

晨曦之光
2012/03/09
92
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 常用注解说明

实体类 @Entity (实体类注解) @Table(可指定表名) @Data(可缺省get/set) @Id (指定属性主键) @GeneratedValue(指定主键生成规则)

兜兜毛毛
今天
3
0
局域网能互相ping通,ubuntu虚拟机不能上外网

【问题】 桥接模式老是无法上网,查看本机IP发现被分配了一个私网地址,猜测应该是虚拟DHCP服务器没有打开,于是查看Ubuntu的网络配置: /etc/network/interfaces 发现没有dhcp配置的信息,只...

tahiti_aa
今天
2
0
以太坊助记词PHP开发包简介

以太坊助记词PHP开发包用来为PHP以太坊应用增加助记词和层级确定密钥支持能力。下载地址:以太坊助记词php开发包 。 1、开发包概述 以太坊助记词PHP开发包主要包括以下特性: 生成符合BIP39...

汇智网教程
昨天
2
0
系统监控-分布式调用链Skywalking

1. 为什么要使用分布式调用链技术? 随着公司业务的高速发展,公司服务之间的调用关系愈加复杂,如何理清并跟踪它们之间的调用关系就显的比较关键。线上每一个请求会经过多个业务系统,并产生...

秋日芒草
昨天
6
0
告诉自己的一些建议

摆脱学生心态 尽快发挥自己价值,让公司感知自己的存在,才是王道 选择比努力重要 自己附着的平台的经济体要是一个快速崛起的行业 转行趁早,年龄越大选择成本越高 趁早大量试错,学习新领域...

林怡丰
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部