姚 振,李 挺,郭 骏,方 锐,刘海苗
(1.国网安徽省电力有限公司信息通信分公司,安徽 合肥 230061;2.国网信通产业集团安徽继远软件有限公司,安徽 合肥 230088)
企业资源计划企业资源计划(Enterprise Resources Planning,ERP)是一套将财会、分销、制造和其他业务功能合理集成的应用软件系统。
数据处理的系统、应用和产品(System,Applications,and Products in Data Processing,SAP)既是一个公司名称,又是该公司的ERP应用软件系统的名称。
ERP系统中的数据经过日积月累,变得越来越庞大,进而性能开始出现下降。一般信息系统经过多年运行之后,性能都会出现明显下降,而SAP系统涉及主机、数据库、中间件、应用等多个层面,需要各个岗位的工程师协同分析,这为系统的优化带来了难度。
对于SAP系统的优化,需要遵循一定的方法论,对一个有性能问题的ERP系统,首先就是理解业务流程和设置及量化性能目标,制定系统提升性能计划,然后对系统进行健康检查,通过监控、识别和分析问题,定位性能的瓶颈所在,再采取对应的优化措施。
常规优化方法一般从应用程序层面出发,对明显存在性能问题的程序代码进行优化。对应用程序的优化一般都是被动的,即只有在某个程序出现性能问题症状后,才去分析该程序的性能瓶颈位置,找出原因后对相关的代码进行优化。
高级的优化方法采用主动式,首先通过监控系统来发现问题,再采用相应的措施进行优化,甚至是未雨绸缪,提前评估系统可能存在的风险,提前干预,将可能发生的问题扼杀在萌芽状态。系统监控和支持包括以下几点。
监控ERP系统所有Instance与数据库所在主机的资源消耗情况与硬件表现;监控系统月结、年结期间ERP系统各instance间负载情况;监控数据库的执行情况与性能表现;记录系统关键点,如系统日志、锁状态、登录组、网关、系统更新的运行状态;结合现有系统性能情况信息,跟踪年结期间系统性能和年结前系统性能表现的差异;识别月结、年结期间性能不佳或资源消耗异常的程序与后台作业;针对系统月结、年结中运行出现的状况,及时作出技术应对并记录在案,作为运维知识库;与相关业务部门和业务支持团队紧密协同,对系统中出现的异常业务应用程序及时处置。与关联系统运维团队密切配合,保持业务整体的平稳运行。
为了保证优化后的效果,首先需要对系统的监控数据进行分析,有必要对整个系统系统设计一个监控和优化计划。SAP系统包含一系列功能强大的针对监控和性能分析的程序,并且会根据SAP性能专家的经验不断地被添加。计算机中心管理系统(Computer Center Management System,CCMS)是SAP系统的中心监控系统,事物码为RZ20,它可以连续监控检查系统所有部分是否可用或工作是否良好,如果出现问题,将触发警报,所有组件的错误报告都会被发送到这里。
4.2.1 CCMS
CCMS是一个中心监控架构,它持续测量所有硬件和软件组件的性能,通过此架构实现连续监控的自动化运行,把一个SAP系统定义为中心监控系统,所有其他的SAP系统包括SAP实例、数据库、操作系统都可以连接到中心监控系统的警报监控器中,甚至对于非SAP系统如目录系统、统一权限、企业门户等也可以接入进来。中心监控器包括以下具体内容。
(1)对SAP软件组件、服务器、数据库、第三方组件进行完整详细的监控。如果超出值域范围或者不满足值域范围,将对性能标识进行状态标识。(2)警报跟踪和管理。(3)具有开放式结构,具有可扩展性,可以与非SAP软件集成。(4)具有与SAP解决方案管理器结合的用于监控和追查错误的图形界面。
4.2.2 SAP性能监控器
SAP性能监控器是分析性能的工具。它们在性能菜单中被一起列出(事务代码STUN)。要调用这个菜单,选择:Tools->Administration->Monitor->Performance或者Tools->CCMS->Control/Monitoring->Performance menu操作系统监控器是用来分析硬件瓶颈和操作系统问题的工具。要为目前登陆的应用系统启动操作系统监控器,选择Tools->Administration->Monitor->Performance ->Operating System->Local->Activity或输入事务代码ST06。如果要选择其他的服务器,可以先用OS07作服务器选择。
4.2.3 SAP应用服务器参数优化
整个SAP系统支持几百个参数配置,内存、缓存、接口配置、网络通信等各个层面都可以通过各种参数调整来达到优化的目的,但是参数的调整需要本着谨慎的态度,通过官方渠道确认问题所在,需要在官方的指导文档下才能作出调整,否则很有可能给系统带来负面的影响,下面以笔者在运维过程中的一个例子来说明问题。
笔者在日常的运维工作中,发现ICM组件状态偶有异常,分析发现ICM配置的连接数量参数(icm/max_conn)为默认值500,由于在ERP对外提供的webservice服务是通过其专用组件ICM进行管理的。当前ERP系统通过webservice服务与外围系统连接的接口多达上百个,当接口调用高峰期时,连接数量出现瓶颈,导致ICM服务中断影响接口运行,通过查阅官方资料和分析,发现网络通信的服务参数设置已不满足当前系统需求,结合系统的应用运行情况,计划修改对应参数,修改值如下。
(1)icm/keep_alive_timeout (sec.),当前值为60,可以修改为450,通过提高该参数的时间值,可以提高系统允许的等待时间,避免由于网络延迟导致的服务超时。(2)icm/max_conn,当前值为500,可以修改为16 000,通过提高该参数的值,可以增加允许的连接上限。
4.2.4 数据清理
SAP公司的ERP系统在运行过程中会产生大量系统管理数据,该部分数据如不清理,会占用PSAPSR3表空间的30%左右。由于该部分数据不是业务数据,仅提供系统管理参考,无需存放太久。庞大的数据会影响系统性能,延长系统备份及恢复时间,给系统带来风险。例如系统中有一些记录通信日志的系统表,数据增长速度相当快,过多的历史数据不仅占用较大的存储空间,也降低了系统数据库读写数据的速度,影响系统的性能,这些系统表的数据需要定期进行清理,清理完成之后还需要做数据库表空间的释放工作。其中典型的表就是ARFCSDATA表,此表为ERP系统自带表,自动记录ERP系统与外部系统之间RFC通信日志,由于笔者的ERP系统与外围系统集成接口交互较多,ERP系统每天会自动在此表自动增加100万条左右记录,导致ERP系统表空间增加较快,归档日志的增长速度过快,归档日志所占空间也较大,此表的数据可以作清理。SAP公司内置了程序rsarfcer用来清理此表的数据,可以将某个时间之前的历史数据全部清空,或者定期清理,并将表进行重组操作,将所占用的表空间释放出来,以提高数据库空间的有效利用率。
4.2.5 硬件资源优化
硬件资源优化主要从服务器的CPU、内存、存储等方面来进行优化,但是硬件优化不是单纯地提高硬件配置,而是需要结合业务应用特点,分析系统消耗CPU、内存、存储等资源的主要因素,分析占用系统资源可以从以下几个方面考虑。
统计系统平均工作日日访问用户人数,以及用户数量增长情况,来评估用户的增长对系统资源的要求;分析ERP系统和相关信息系统之间的接口增长速度,评估这些增长会对系统硬件资源带来的增长需求,这些接口程序占用了较大系统CPU、内存资源,尤其是内存资源;通过统计新业务需求和新开发程序情况,来评估对运行负载会带来多大的影响;随着业务的有效开展,数据量不断增加,有的单表数据达到百万级甚至千万级,因而评估系统总数据的增长趋势,来提前准备存储资源。
文章主要内容是如何来提高SAP ERP系统的整体性能,对优化提供了新的方法,开拓了新的视野。SAP公司的各种软件产品非常丰富,有ERP,CRM,SLM等各种企业管理系统。文章仅研究了SAP公司ERP产品的性能优化,另外SAP公司产品更新速度很快,作为该行业的从业人员,要充分利用各种学习资源、不断学习相关的新知识,才能跟上SAP公司快速发展的步伐。