




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
提高会计信息系统的数据服务器性能的研究广东省农业管理干部学院 潘伟洪摘要随着会计信息化的发展,会计信息系统的集成程度越来越高,存储账套的数据库对数据服务器要求也越来越高。本文针对庞大的账套数据库对服务器造成的压力在既定的硬件条件下如何提高数据服务器性能做出了有益的探讨。在会计电算化教学过程中,以机代账的实操训练是必不可少的教学环节,也是会计信息化实现的具体形式。随着会计电算化向会计信息化过渡,会计信息系统的集成程度也越来越高,大型的后台数据库成为账套管理的主流支持技术,如SQL Server、Oracle等。一、问题的提出要教会学生以机代账,学生课堂作业就要完成一个或多个的会计业务循环,这意味学生的作业需要几周甚至更长的时间,再加上业务系统的训练,每个学生拥有多个实习帐套,因此,本人曾因教学需要,在一个会计信息系统服务器中建立了960个帐套数据库实体,即960个SQL Server数据库文件。在这庞大的账套数据库压力下,导致服务器的内存储器开销透支,客户访问请求的线程数和句柄数高居不下,CPU占用率长期为100%, 服务响应长期处于等待状态,学生实训基本停止。二、分析和解决问题(一)主要原因出现在上述问题主要原因是单个服务器上增加的工作负荷使服务器性能明显下降造成的,所以,在既定的硬件条件下,如何提高服务器性能是既可节省成本又能解决问题的可靠途径。(二)影响SQL Server数据服务器性能的因素在SQL Server数据服务器安装过程中,默认状态只安装一个数据服务实例,在一个数据服务实例中管理过多的数据库实体时,SQL Server数据服务器性能就受到以下因素制约。1、内存的开销随着数据库的增多,支持大量存储过程所需要的内存也成倍地增加。对于 SQL Server 来说,需要更多的虚拟内存空间,以便为每个数据库上的每个过程编译执行计划,然后将该计划保存在过程高速缓存中。数据库的数量越多,所需的服务器过程高速缓存大小就越大。如果执行计划的数量超出了过程高速缓存能够存储的数量,系统将对计划执行重新进行编译,这将减少处理查询的吞吐量。当单个实例上的数据库数量从 500 增加至 1000 时,过程高速缓存中将没有足够的虚拟内存来保存内存中增加的所有查询执行计划。为了释放内存,以便为其他存储过程的计划腾出空间,系统会丢弃过程高速缓存中的某些执行计划,但是此操作要求在需要时重新编译这些被丢弃的存储过程计划。这样所造成的频繁的重新编译工作会影响工作负荷性能,服务器性能下降。2、CPU 关系默认情况下,SQL Server 数据服务实例的每个线程都被安排给了下一个可用的处理器。CPU 关系掩码设置可以用来将实例限制在 CPU 的某个子集中,并且可以确保每个线程在各个中断间隔之间使用相同的处理器,而不用在多个处理器之间切换同一个线程,同时提高了二级高速缓存上的高速缓存命中率。但是,使用 CPU 关系设置时要小心,因为如果每个实例上的工作负荷不相等,不同 CPU 上的工作负荷就无法动态取得平衡。此时,若有源源不断的大量的数据访问请求线程和句柄,CPU的占用率就大幅上升,服务器性能就大幅下降。3、磁盘布局基于可恢复性的考虑,勿将日志文件和数据文件放在同一存储设备上。若将日志文件与数据文件放在相同的物理磁盘上,就不能分开日志文件上的顺序磁盘读写和数据文件上的随机磁盘读写。在大量反复的读写请求下,由于过多顺序磁盘读写和随机磁盘读写,使服务器的物理磁盘存储器速度下降,服务器性能也就下降。4、数据量可以说,数据库应用软件的瓶颈都在数据库,数据量的大小对系统的运行速度有直接的影响。在会计信息系统中,账套大小是衡量数据量大小的一个简单实用的标准。同样的功能,数据量越大其性能肯定会有所下降。在系统实施准备阶段应对用户未来的业务有一个估计,对用户数据量的估计可以作为配置服务器硬件的一个依据。数据量对数据库服务器的内存配置有直接的影响。5、并发数分布式处理的会计信息系统一般具有多层结构,其中客户端层的并发数量是影响系统性能的一个主要因素。客户端并发数对硬件配置的影响最大。根据经验结论,如果同时并发客户端超过20个就应该分离中间层和数据库服务器,对于中间层服务器保持每20个并发1个CPU,对于数据库服务器保持每10个客户端一个CPU。这些经验数字中的并发数量指同时不停使用的客户端的数量。并发量主要影响服务器CPU个数的配置。三、解决问题的办法和实现过程结合会计信息系统的功能和SQL Server服务器的特点,在支持多SQL Server服务实例的会计信息系统中,建立多SQL Server服务实例连接,可以解决问题,如金蝶K3的账套管理器,既可支持多SQL Server服务实例连接,也支持日志文件和数据文件分离存储。(一)解决问题的办法1、在SQL Server服务器安装多个实例使用多个实例可以增加每台服务器上的数据库数量和工作负荷能力。当数据库的数量和相应的工作负荷达到一定水平后,把多个 SQL Server 实例中的数据库分组是一个好办法,因为这样可以缓解内存压力。为每个实例的服务器过程高速缓存分配更多内存可以获得良好的性能,并能够提供更好的操作和安全隔离。测试表明,使用多个实例可以增加数据库的总数以及系统上产生的相应工作负荷能力,同时还能维护每个数据库的吞吐量。在多个实例上运行数据库可以留出更多的内存供过程高速缓存使用,因为每个实例具有自己的虚拟地址空间和过程高速缓存。 当单个实例的数据库数量增至数千后,这些数据库对象会占用太多供过程高速缓存使用的内存空间,从而导致性能下降。过程高速缓存将被丢弃,然后进行重新编译。所以建议使用多个实例。2、使用 CPU 关系可以提高服务器性能在一台具有多个处理器的服务器上运行多个实例时,通过设置 CPU 关系为特定实例分配派处理器,可以减少每个处理器的活动线程数,还可以减少上下文切换次数,此时,最好使用二级高速缓存。此时,各实例上的工作负荷应该是相同的,相对于默认处理器关系设置,将 4 个实例分别分配给4 个 CPU 时,吞吐量将增加 80%。3、分隔日志文件使用的物理磁盘可以提高服务器性能将日志文件与数据文件放在不同的物理磁盘上,就可分开日志文件上的顺序磁盘读写 和数据文件上的随机磁盘读写。测试表明,分隔物理磁盘上的日志文件和数据文件可以使性能提高10%。4、COM+组件跟踪在系统集成度较高的会计信息系统中,往往使用COM+组件来实现分布式处理,优化的组件调用是提高分布式系统一个好方法。利用COM+本身的事件发布模型,监控COM+组件的方法调用和运行结果信息,对COM+组件服务器端的信息跟踪,查看哪个中间层组件调用时间长或内存消耗大,以确定性能问题或其他问题所在。(二)实现过程本人在金蝶K/3 10.0系统中实现了整个过程,并成功摆脱了原有的服务性能状态,以下是实现的主要过程。1、安装多个SQL Server数据服务在已经安装单个数据服务实例的会计信息系统的数据服务器上重复安装SQL Server服务,每次安装要给每个实例一个不同的实例名称,安装成功后在企业管理器中可清晰看到多个数据服务实例。2、在K3的账套管理中将账套指定给具体的实例利用账套管理器的恢复功能,将已经备份好的一个账套数据库的备份文件恢复到指定的数据服务的实例中,关键在恢复时要连接指定的数据服务实例。3、在K3的账套管理中将账套的数据文件与日志文件的存储路径分离在账套管理器中,当建立账套或恢复账套时,把存储账套的数据文件和日志文件存放在不同的物理磁盘中。4、指定数据服务实例的处理器在会计信息系统的SQLServer企业管理中,选定已经安装好的数据服务实例,在其属性页的“处理器”卡片中可以轻松指定执行每个数据服务的相应不同的CPU,并可以设置是否提升SQLServer优先级。通过多个并行的处理器设置,提高服务器的性能。当然只有多处理器服务器中才能支持此项设置。5、优化组件服务调用,分析中间层的性能表现(1)使用组件服务管理工具可以配置和管理 COM 组件及 COM+ 应用程序,监视组件的使用情况。启动组件服务管理工具,检查K3中间层组件是否在运行,如下图3.1。如果客户端用户比较多或者网络速度比较慢的情况下,中间层服务器有可能出现服务,从而引起性能问题。可以通过组件服务的事件列表检查是否有比较多的事件在排队等待。界面如下图3.2。(2)查找正在执行的资源耗用多的组件若中间层的CPU或内存耗用很严重,但在多个客户的并发下又很难发现是那一项操作引发了问题,这时候可以查找哪一个组件包中的哪一个组件耗用资源比较严重,配合在此阶段用户在做的操作,有助于发现引发的问题。首先在任务管理器的进程选页签上寻找耗用资源较多的DLLHOST进程,因为每一个中间层组件包在运行时有一个DLLHOST进程,每一个组件包又包含很多组件。找到耗用资源较多的DLLHOST,找对应的PID即进程标示号,根据PID在组件管理中可以找到对应的组件包,然后在对组件包下面寻找调用时间长的组件,根据此组件的信息和其他用户操作信息,可以定位到具体的问题。图3.1 在运行的COM+应用程序图3.2 组件服务的事件列表检查(3)查找中间层服务的阻塞对于中间层服务器有可能发生的阻塞,主要看上面所描述的组件服务器中事务列表中的组件排队情况,如果有较长的排队情况,就代表出现阻塞,因为每一个COM+组件包有一个进程,可以考虑把阻塞较多的组件分离出来重新放到一个新建的包中。(4) 限制STA模式COM+组件线程数对于VB编写的COM+组件,由于不能编译为MTA线程模型,每个组件包进程的线程数默认为10个,也就是说同一个组件包中所有组件功能只能最多有十个同时运行。对此问题,微软提供了一个修改线程数量限制的方法,那就是修改注册表选项,可以让线程数达到100。四、结论本人在一台方正圆明3310专用服务器实现以上的优化设置,设置了具有3个物理磁盘的RAID5磁盘阵列、4个CPU并行,安装了4个数据服务实例,并指定每个服务实例的CPU,960个账套分布在4个不同的实例中运行,并成功分离了数据文件和日志文件物理存放,使用1GB的物理内存,并为每个实例配置最小内存并保持开放最大服务器内存。通过优化,服务器性能整体提升了40%,4个CPU占有率平衡而且稳定在60%左右,内存开销降低了40%。总之,通过优化,达到了在既定的硬件条件下,成功地
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年旋挖钻机考试题目及答案
- 2025年厂商培训试题及答案
- 2025年工业机器人维护保养实操技能测试试题及答案
- 2025年T电梯修理证考试题库及答案
- 外贸进口合同范本
- 缺氧性垂体功能紊乱-洞察及研究
- 安全员考试题及答案
- 高三音乐集训合同模板(3篇)
- 安全生产考试题及答案2025
- 高空外墙施工合同范本(3篇)
- 2025年第一届安康杯安全生产知识竞赛试题题库及答案(完整版)
- 电力工程冬季施工安全技术措施
- 全尺寸测量报告FAI
- 塑料厂安全风险分级管控清单
- 维力能醋酸钠林格注射液
- 肠道菌群与人体代谢疾病.ppt
- 医院检验科人员健康监护制度
- 极限配合与技术测量基础(第五版)
- 培智四年级美术教案新
- 智能电子储物柜控制系统方案
- 成人高考数学必背知识点
评论
0/150
提交评论