提高会计信息系统服务器性能的研究

上传人:夏** 文档编号:568312369 上传时间:2024-07-24 格式:PDF 页数:5 大小:263.56KB
返回 下载 相关 举报
提高会计信息系统服务器性能的研究_第1页
第1页 / 共5页
提高会计信息系统服务器性能的研究_第2页
第2页 / 共5页
提高会计信息系统服务器性能的研究_第3页
第3页 / 共5页
提高会计信息系统服务器性能的研究_第4页
第4页 / 共5页
提高会计信息系统服务器性能的研究_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《提高会计信息系统服务器性能的研究》由会员分享,可在线阅读,更多相关《提高会计信息系统服务器性能的研究(5页珍藏版)》请在金锄头文库上搜索。

1、提高会计信息系统的数据服务器性能的研究提高会计信息系统的数据服务器性能的研究广东省农业管理干部学院 潘伟洪摘要随着会计信息化的发展,会计信息系统的集成程度越来越高,存储账套的数据库对数据服务器要求也越来越高。本文针对庞大的账套数据库对服务器造成的压力在既定的硬件条件下如何提高数据服务器性能做出了有益的探讨。在会计电算化教学过程中,以机代账的实操训练是必不可少的教学环节,也是会计信息化实现的具体形式。 随着会计电算化向会计信息化过渡, 会计信息系统的集成程度也越来越高,大型的后台数据库成为账套管理的主流支持技术,如SQL Server、Oracle 等。一、问题的提出一、问题的提出要教会学生以机

2、代账,学生课堂作业就要完成一个或多个的会计业务循环,这意味学生的作业需要几周甚至更长的时间, 再加上业务系统的训练, 每个学生拥有多个实习帐套, 因此,本人曾因教学需要,在一个会计信息系统服务器中建立了 960 个帐套数据库实体,即960 个 SQL Server数据库文件。 在这庞大的账套数据库压力下, 导致服务器的内存储器开销透支,客户访问请求的线程数和句柄数高居不下,CPU 占用率长期为 100%, 服务响应长期处于等待状态,学生实训基本停止。二、分析和解决问题二、分析和解决问题一主要原因一主要原因出现在上述问题主要原因是单个服务器上增加的工作负荷使服务器性能明显下降造成的,所以,在既定

3、的硬件条件下, 如何提高服务器性能是既可节省成本又能解决问题的可靠途径。二影响二影响 SQL ServerSQL Server 数据服务器性能的因素数据服务器性能的因素在 SQL Server数据服务器安装过程中, 默认状态只安装一个数据服务实例, 在一个数据服务实例中管理过多的数据库实体时,SQL Server数据服务器性能就受到以下因素制约。1、内存的开销随着数据库的增多, 支持大量存储过程所需要的内存也成倍地增加。 对于 SQL Server 来说,需要更多的虚拟内存空间, 以便为每个数据库上的每个过程编译执行计划, 然后将该计划保存在过程高速缓存中。 数据库的数量越多, 所需的服务器过

4、程高速缓存大小就越大。 如果执行计划的数量超出了过程高速缓存能够存储的数量,系统将对计划执行重新进行编译,这将减少处理查询的吞吐量。当单个实例上的数据库数量从 500 增加至 1000 时,过程高速缓存中将没有足够的虚拟内存来保存内存中增加的所有查询执行计划。 为了释放内存, 以便为其他存储过程的计划腾出空间, 系统会丢弃过程高速缓存中的某些执行计划, 但是此操作要求在需要时重新编译这些被丢弃的存储过程计划。 这样所造成的频繁的重新编译工作会影响工作负荷性能,服务器性能下降。2、CPU 关系1默认情况下,SQL Server 数据服务实例的每个线程都被安排给了下一个可用的处理器。CPU 关系掩

5、码设置可以用来将实例限制在 CPU 的某个子集中,并且可以确保每个线程在各个中断间隔之间使用相同的处理器, 而不用在多个处理器之间切换同一个线程, 同时提高了二级高速缓存上的高速缓存命中率。 但是,使用 CPU 关系设置时要小心,因为如果每个实例上的工作负荷不相等,不同 CPU 上的工作负荷就无法动态取得平衡。 此时,假设有源源不断的大量的数据访问请求线程和句柄,CPU 的占用率就大幅上升,服务器性能就大幅下降。3、磁盘布局基于可恢复性的考虑,勿将日志文件和数据文件放在同一存储设备上。假设将日志文件与数据文件放在相同的物理磁盘上, 就不能分开日志文件上的顺序磁盘读写和数据文件上的随机磁盘读写。

6、在大量反复的读写请求下, 由于过多顺序磁盘读写和随机磁盘读写, 使服务器的物理磁盘存储器速度下降,服务器性能也就下降。4、数据量可以说, 数据库应用软件的瓶颈都在数据库, 数据量的大小对系统的运行速度有直接的影响。在会计信息系统中,账套大小是衡量数据量大小的一个简单实用的标准。同样的功能, 数据量越大其性能肯定会有所下降。 在系统实施准备阶段应对用户未来的业务有一个估计, 对用户数据量的估计可以作为配置服务器硬件的一个依据。 数据量对数据库服务器的内存配置有直接的影响。5、并发数分布式处理的会计信息系统一般具有多层结构, 其中客户端层的并发数量是影响系统性能的一个主要因素。客户端并发数对硬件配

7、置的影响最大。根据经验结论,如果同时并发客户端超过20 个就应该别离中间层和数据库服务器,对于中间层服务器保持每20 个并发 1 个 CPU,对于数据库服务器保持每 10 个客户端一个 CPU。这些经验数字中的并发数量指同时不停使用的客户端的数量。并发量主要影响服务器CPU 个数的配置。三、解决问题的方法和实现过程三、解决问题的方法和实现过程结合会计信息系统的功能和SQL Server 服务器的特点,在支持多 SQL Server 服务实例的会计信息系统中,建立多 SQL Server服务实例连接,可以解决问题,如金蝶 K3 的账套管理器,既可支持多 SQL Server服务实例连接,也支持日

8、志文件和数据文件别离存储。一解决问题的方法一解决问题的方法1、在 SQL Server服务器安装多个实例使用多个实例可以增加每台服务器上的数据库数量和工作负荷能力。当数据库的数量和相应的工作负荷到达一定水平后,把多个 SQL Server 实例中的数据库分组是一个好方法, 因为这样可以缓解内存压力。 为每个实例的服务器过程高速缓存分配更多内存可以获得良好的性能,并能够提供更好的操作和安全隔离。 测试说明,使用多个实例可以增加数据库的总数以及系统上产生的相应工作负荷能力,同时还能维护每个数据库的吞吐量。在多个实例上运行数据库可以留出更多的内存供过程高速缓存使用, 因为每个实例具有自己的虚拟地址空

9、间和过程高速缓存。当单个实例的数据库数量增至数千后,这些数据库对象会占用太多供过程高速缓存使用的内存空间,从而导致性能下降。过程高速缓存将被丢弃,然后进行重新编译。所以建议使用多个实例。22、使用 CPU 关系可以提高服务器性能在一台具有多个处理器的服务器上运行多个实例时, 通过设置 CPU 关系为特定实例分配派处理器,可以减少每个处理器的活动线程数, 还可以减少上下文切换次数,此时, 最好使用二级高速缓存。此时,各实例上的工作负荷应该是相同的,相对于默认处理器关系设置,将 4 个实例分别分配给 4 个 CPU 时,吞吐量将增加 80%。3、分隔日志文件使用的物理磁盘可以提高服务器性能将日志文

10、件与数据文件放在不同的物理磁盘上,就可分开日志文件上的顺序磁盘读写和数据文件上的随机磁盘读写。 测试说明, 分隔物理磁盘上的日志文件和数据文件可以使性能提高 10%。4、COM+组件跟踪在系统集成度较高的会计信息系统中,往往使用 COM+组件来实现分布式处理,优化的组件调用是提高分布式系统一个好方法。利用COM+本身的事件发布模型,监控 COM+组件的方法调用和运行结果信息,对 COM+组件服务器端的信息跟踪, 查看哪个中间层组件调用时间长或内存消耗大,以确定性能问题或其他问题所在。二实现过程二实现过程本人在金蝶 K/3 10.0 系统中实现了整个过程,并成功摆脱了原有的服务性能状态,以下是实

11、现的主要过程。1、安装多个 SQL Server数据服务在已经安装单个数据服务实例的会计信息系统的数据服务器上重复安装SQL Server 服务, 每次安装要给每个实例一个不同的实例名称, 安装成功后在企业管理器中可清晰看到多个数据服务实例。2、在 K3 的账套管理中将账套指定给具体的实例利用账套管理器的恢复功能, 将已经备份好的一个账套数据库的备份文件恢复到指定的数据服务的实例中,关键在恢复时要连接指定的数据服务实例。3、在 K3 的账套管理中将账套的数据文件与日志文件的存储路径别离在账套管理器中,当建立账套或恢复账套时,把存储账套的数据文件和日志文件存放在不同的物理磁盘中。4、指定数据服务

12、实例的处理器在会计信息系统的 SQL Server企业管理中, 选定已经安装好的数据服务实例, 在其属性页的“处理器”卡片中可以轻松指定执行每个数据服务的相应不同的 CPU,并可以设置是否提升 SQL Server 优先级。通过多个并行的处理器设置,提高服务器的性能。当然只有多处理器服务器中才能支持此项设置。5、优化组件服务调用,分析中间层的性能表现1使用组件服务管理工具可以配置和管理 COM 组件及 COM+ 应用程序,监视组件的使用情况。启动组件服务管理工具,检查 K3 中间层组件是否在运行,如下列图 3.1。如果客户端用户比较多或者网络速度比较慢的情况下, 中间层服务器有可能出现服务,

13、从而引起性能问题。 可以通过组件服务的事件列表检查是否有比较多的事件在排队等待。 界面如下列图 3.2。2查找正在执行的资源耗用多的组件假设中间层的 CPU 或内存耗用很严重,但在多个客户的并发下又很难发现是那一项操作引发了问题, 这时候可以查找哪一个组件包中的哪一个组件耗用资源比较严重, 配合在此阶段用户在做的操作, 有助于发现引发的问题。 首先在任务管理器的进程选页签上寻找耗用资源较多的 DLLHOST 进程,因为每一个中间层组件包在运行时有一个 DLLHOST 进程,每一个组件包又包含很多组件。 找到耗用资源较多的 DLLHOST,找对应的 PID 即进程标示3号,根据 PID 在组件管

14、理中可以找到对应的组件包,然后在对组件包下面寻找调用时间长的组件,根据此组件的信息和其他用户操作信息,可以定位到具体的问题。图 3.1 在运行的 COM+应用程序图 3.2 组件服务的事件列表检查(3)查找中间层服务的阻塞对于中间层服务器有可能发生的阻塞, 主要看上面所描述的组件服务器中事务列表中的组件排队情况,如果有较长的排队情况,就代表出现阻塞,因为每一个 COM+组件包有一个进程,可以考虑把阻塞较多的组件别离出来重新放到一个新建的包中。(4) 限制 STA 模式 COM+组件线程数对于 VB 编写的 COM+组件,由于不能编译为 MTA线程模型,每个组件包进程的线程数默认为 10 个,也

15、就是说同一个组件包中所有组件功能只能最多有十个同时运行。对此问题,微软提供了一个修改线程数量限制的方法, 那就是修改注册表选项, 可以让线程数到达100。四、结论四、结论本人在一台方正圆明 3310 专用服务器实现以上的优化设置,设置了具有 3 个物理磁盘4的 RAID5 磁盘阵列、4 个 CPU 并行,安装了 4 个数据服务实例,并指定每个服务实例的CPU,960 个账套分布在 4 个不同的实例中运行,并成功别离了数据文件和日志文件物理存放,使用 1GB 的物理内存,并为每个实例配置最小内存并保持开放最大服务器内存。通过优化,服务器性能整体提升了 40%,4 个 CPU 占有率平衡而且稳定在 60%左右,内存开销降低了 40%。总之,通过优化,到达了在既定的硬件条件下,成功地提高了单个服务器的工作负荷能力的目的。作者简介:潘伟洪,硕士,主要研究领域:应用数学与电脑软件开发。长期从事会计电算化教学。联系: ,:广州市天河区科华街273 号 25 号信箱,510640Email:pwh8105tom或 pwh810521cn作者声明:本文是本人教学的研究成果,论文署名无争议,论文观点引用清楚,本稿从未公开发表,也没有一稿多投,否则,本人愿意承担一切后果。5

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号