【IT168 服务器学院】一.关于设备:
RAW Device(裸分区) VS Filesystem Device
裸分区是指磁盘的一块物理分区,没有用作操作系统,其读写不通过操作系统缓冲。传统的Unix安装ASE推荐使用RAW Device确保资料的完整性和较好的IO性能。但在新版的Unix和Linux中UFS和JFS在资料完整性和读写性能的差距相较于裸设备已经非常微弱。还有就是裸设备的管理比较复杂。从ASE12.0开始Sybase提供dsync的属性对数据库设备禁止write-cache(写回缓冲)以确保资料的完整性和可恢复性。裸设备的使用出于安全和资料完整性方面的考虑比性能考虑多。
Async I/O (异步I/O)
异步IO是在一个IO动作未完成时同时可进行另外的动作。异步IO对于数据库的IO性能有较大的影响。在AIX和HP中都需要通过重新编译内核来支持。
二.关于内存:
首先确定可用的总的物理内存然后减去操作系统,Backup, Monitor等Sybase相关软件的开销即为Sybase总的可用内存。(建议服务器只做单纯的
ASE服务器并要删除不必要的服务以减少开销,例如xwindow)
在Unix及Linux中需要调整一些核心参数以支持较大的物理内存。以下列出一些可能需要调整的参数: shmmax(最大共享内存段大小,单位为字节),shmall(可用内存的总数量,如果是字节同shmmax一样)。其余的像shmmin等参数请参考操作系统手册。
Sybase利用max memory确定最大可用内存量,具体内存的分配方式取决于以下两个参数allocate max shared memory和dynamic allocation on demand。Allocate max shared memory指定是否分配由max memory指定的最大内存,缺省不分配最大内存。Dynamic allocation on demand指定是否在请求时立即分配资源还是仅需要时分配,缺省是需要时分配。例如配置了用户连接数量只在用户连接到Sybase时才分配内存。
三.参数设定:(分组并只对常用参数进行说明)
1.Physical Memory:
allocate max shared memory (指定是否分配由max memory指定的最大内存,缺省不分配最大内存)
dynamic allocation on demand (指定是否在请求时立即分配资源还是仅需要时分配,缺省是需要时分配)
max memory (确定Sybase最大可用内存)
total logical memory (当前配置的逻辑内存,只读)
total physical memory(当前配置的物理内存,只读)
2.Disk I/O (磁盘IO)
allow sql server async i/o (允许SQL Server进行异步IO,此参数对于设备的IO性能有极大影响,需要操作系统支持)
disk i/o structures (磁盘IO结构,启动时分配磁盘IO控制块的数目.。将此值设定为操作系统允许的最大值以避免磁盘IO结构不够用的情况)
number of devices (Sybase所能使用的最大设备数目)
page utilization percent (页利用率)
3.Meta-Data Caches (元资料缓存)
number of open databases (可同时打开的数目库数目)
number of open indexes (可同时使用的索引数目)
number of open objects (可同时使用的对象数目)
以上三个参数都可用sp_countmetadata 来确定当前Sybase中三个参数的大小。调整后可在实际的使用过程中利用sp_sysmon 来确定是否设定合理)
4.Parallel Query (并行查询)
number of worker processes (同时可使用的并行查询的可用的工作进程数目)
max parallel degree (最大的查询并行程度)
max scan parallel degree (最大的扫描并行程度,一般的磁盘控制器使用2~3个工作进程就可以充分利用其IO)
5. Processors (处理器)
max online engines (最大的在线引擎数目,一个引擎可以理解为一个CPU的处理能力,不可大于操作系统可用的CPU个数)
number of engines at startup (Sybase启动时需要联机的引擎数目)
6. Lock Manager (锁管理)
lock scheme (锁定方案,缺省为allpages,从ASE 1192开始提供datarows的锁方案。利用行锁可以大大提升并发性能,但需要更多的锁,并且会有资料页产生较多空页困扰)
number of locks (可用的锁数目,此参数可能需要在使用过程中进行调整以适用不同的应用环境)
print deadlock information (打印死锁信息到日志,如果频繁发生死锁可打开此参数用来确定起因,但此参数会带来额外的开销,在SMP环境更是如此)