对DSS而言,通常一个较小的缓冲区就够了
对典型的DSS工作负载,多数数据访问是有light scan扫描完成的,而不通过缓冲池,造成不需要使用大量缓冲池的后果。内存应由DS_TOTAL_MEMORY分配,以便有足够的内存用于扫描缓冲区,散列连接等。
Bufferd Logging 与UnBuffered Logging Bufferd Logging 比UnBuffered Logging性能好 |
使用Buffered Logging,逻辑日志缓冲区只在布满时才向磁盘刷新。使用UnBuffered Logging,每次事务提交都会强制一次日志缓冲区刷新。注重由于逻辑日志缓冲区对所有的数据库是公用的,所以即使仅有一个活动频繁的数据库使用非缓冲日志也会大大降低使用缓冲日志带来的益处。
Buffered Logging 不如 UnBufferd Logging安全
由于日志缓冲区布满时才进行刷新,假如系统出现故障,则日志缓冲区的内容会被丢失。当然发生故障时,缓冲区会良好保存未写向磁盘的提交记录,Online快速恢复将回滚这些事务。所有数据库自身保持一致,而从应用程序的观点看,应用程序认为已经成功提交的事务实际上却回滚了,这是不一致的。
CKPTINTVL参数
正常操作期间,两个主要的事件会导致检查点发生:超过检查点时间间隔或是物理日志75%已布满。在检查点间的工作量决定了系统故障后快速恢复所需要的时间长短。
假如恢复时间十分重要,则应设置检查点间隔以使恢复时间可以接受,否则可以加长时间间隔,从而让系统根据物理日志布满度(75%)来决定何时生成检查点。
连接
客户机----数据库服务器和数据库服务器----客户机
选择最佳的通讯机制 本地客户机:共享内存和管道
对于与服务器运行在同一主机上的客户机,应选择共享内存(ipcshm)或管道(ipcstr)方式。管道通常要比共享内存方式更快、更灵活、更安全、避免让本地客户使用网络连接(TCP/IP),因为那样比ipcshm或ipcstr连接性能要大大降低。
远端客户机:TCP/IP
远端客户要使用TCP/IP,只有在非凡情况下才使用Netware IPX/SPX进行连接。改变缓冲区大小(FET_BUF_SIZE环境变量)以及socket缓冲区大小(在sqlhosts文件中设置)观察其效果。使用前面叙述的方法减少客户机/服务器间的交换量。
轮询线索和网络VP
轮询线索处理从客户机送来的数据
从服务器到客户机的数据是由各自的sqlexec线索来发送的。
一个轮询线索可以处理大约200个典型客户机
数目要依许多因素而定,此处只是个原则数字。
对大量非常活跃的客户,或大量的数据输入可能需要更多的轮询线索。
轮询线索在CPU虚处理器(内联轮询)(inline poll)或NET VP中。
任意时刻,只有一个“内联”的协议
内联轮询线索
客户数目越少,性能越好
可以帮助TCP/IP
增加CPU VP额外开支
不可有多于CPU VP数目的轮询线索
用于轮询线索的NET VP
对大量的客户而言,可能会提供更好的性能
想要多少就可以有多少轮询线索
可减轻CPU VP的工作负荷
最新相关文章
发表评论