来源:名易软件中国的信息化建设目前主要还处于解决从“无”到“有”的问题阶段,过量的负荷导致信息管理系统和IT人员都处在“亚健康”状态。我们该以何种思路来解决这些问题? 据国外统计发现,美国的高端计算机都卖到中国来了,国际某知名的计算机厂商的全球供应链系统还运行在90年代初的机器上,硬盘转起来“磁磁”响。是我们的业务的规模和复杂性比国外的大得多呢,还是国外不重视IT投入?两者都不是,而是我们的应用软件有关性能和效率方面不如人意,主要由三方面原因造成的: 1、应用逻辑写得太差,导致系统运行过程中做的“有用功”太少,“无用功”太多。系统资源要花很大一部分时间来处理这些“无用功”。这是问题产生的根源,也占了问题的“80%”。 2、负荷(进程或数据)在时间和空间上分布不合理。由于业务流程的问题,导致负荷在某一时间段内集中爆发,使得系统难以承受。空间上,负荷都很大的应用不合理地部署在一起,导致忙的忙死,闲的闲死。 3、系统资源不够或配置不合理,导致过多的系统调用,而没有把资源充分用在用户工作上。这就类似一个组织或部门,把大部分时间用在协调、沟通和调度上,而只有很少的时间来做真正增值的工作; 一般来说,系统上线之初,经过严格的功能测试和压力测试,系统的功能和性能是达到了功能要求的,但随着时间的推移,系统越来越慢,业务高峰时,过大的负荷导致“交通”拥塞,大量的事务排队等待处理,资源的互相争用导致“死锁”,从而出现系统“瘫机”,造成业务运营和客户服务的中断,这种情况当你业务越繁忙的时候,越容易发生,道理就象你上下班“堵车”一样简单。 中国的信息化建设的时间还不长,目前主要还处于解决从“无”到“有”的问题。这个阶段,基本上是重建设投入,轻运维和优化投入。在这种模式下,目前的解决办法是通过不断的硬件扩容来暂时解决这个问题,随着数据量的不断增大,这些问题重复出现。最后的结局是换系统,重新一轮建设。因此这几年来,IT部门一直处于战争状态,筋疲力尽。这些症状表明:过量的负荷导致信息管理系统和IT人员都处在“亚健康”状态。 这个道理很简单,为什么经过这么多年还不能解决这个问题呢?主要有以下几方面的原因: 1、技术原因和专业精神:性能优化是高度技术性的工作,要求研发人员要具有很深的数据库知识和经验。同时开发具有好性能的应用系统,还需要对应用“精益求精”的追求完美的专业精神。开发好的应用系统需要专业的“艺术家”,而不是粗糙的“工匠”。这种具有“艺术家”一样高水平和专业精神的设计人员和开发人员少之又少。 2、产品和质量文化上的原因:由于IT系统大部分是按需定制的系统,产品化程度不高,在开发阶段还没有成熟的手段来进行性能方面的测试和保证工作,同时由于性能目标的不可衡量性,导致无法对设计人员和开发人员针对系统性能进行考核和激励,因此性能往往是系统的“死角”和“瓶颈”。 3、竞争和公司生存的压力:创作一件好的“艺术品”需要金钱和时间的投入,做一个性能好的应用系统也是一样。关键是在应标时,这种内在品质的附加价值较难量化,难以被客户接受而导致竞标失败。这就导致两个结果:一、好的系统在价格上竞争不过“差”的系统而根本不能获得应用;二、现实的商家由于前一点原因而倾向开发一个“可用”的系统,而不是“好用”的系统。 4、利益因素:客观地说,性能差的系统需要更高档的机器和更多的存储,更多的软件License,这就意味着更高的投资,在现有的价值链模式下,这对原厂商和集成商都是“利好”消息。对系统进行优化,阻断了硬件厂商和集成商扩容的需求。从集成商和原厂商的利益角度来说,优化是不受欢迎的。 5、系统稳定性和性能与应用环境具有密切的关系:对应用系统来说,性能与环境、数据量是密切相关的,因此性能是不可能完全在实验室设计出来的,是根据实际环境,根据目标逐步优化出来的。 6、风险因素:对于在线系统来讲,应用优化相当于对高速运行的列车换轮胎,在保证系统连续可用的情况下,要对某些“部件”进行更换,更重要的是保证更换的新老“部件”输出完全一样,这是具有一定风险的,如果没有工程化的管理办法和针对性的风险规避措施,不敢贸然对系统进行优化。 从以上原因看出,信息管理系统的“亚健康”问题并不是偶然出现的,这些客观原因的长期存在,使得信息管理系统产生“亚健康”问题是必然的,并不是哪个人或哪个组织“能力低”或“心眼坏”的结果。认清这个必然性和这些客观原因,有利于建设方和开发商能够坦然地面对这一问题,然后想办法去解决这一问题。 系统性能与系统稳定性、可用性的关系 2005初,一个电信运营商省公司的BOSS系统出了问题,主要表现为系统时常出现连接出错,新的连接上不去,业务很慢,有时还出现“死机”现象。省公司计费紧急召集集成商、中间件厂商、数据库厂商和硬件厂商联合会诊,由于问题表现为连接不上,因此从中间件查起,发现由于一些应用长时间占用连接通道,导致中间件的连接数License不够了,因此连接达到一定数量后,新的连接就连不上了,同时由于中间件的Timeout设为120s(某一操作超过120s,中间件认为该操作死掉,因此给前台报错,并回滚事务),因此集成商对客户说:“你看,这不是应用的问题,是中间件License不够,同时中间件的参数设置不对,应该把参数值设大一点”。中间件厂商也顺水推舟,提出了扩容的需求。果真如此吗?只要我们细心一想,所有这些问题都是应用性能差导致的后果,很慢的应用由于长时间占用并发连接数,导致其它应用就没有办法成功连接。另外很差的应用占用大量的系统资源,导致其它应用也由于申请不到资源而很慢。导致应用超时而断掉。因此性能问题不仅降低了业务的效率,更对系统的稳定性和可用性构成了严重的威胁。性能问题直接导致如下的稳定性问题: 1、影响其它应用或导致系统挂死:系统性能问题主要是由负荷过大引起的,负荷过大不仅导致自身的性能下降,同时还导致其它应用排队,也出现慢和死机现象。这类似于两辆汽车在高速公路上出了车祸,导致整个路面塞死,所有的车辆排队不得不排队等候而致交通瘫痪的局面; 2、连接数不够:如果多个应用出现性能问题,这些应用长时间占用并发连接数,导致并发数不够和连接不上的问题; 3、应用出现不规律的出错:负荷大的应用,不仅令自身产生性能问题,同时导致其它应用排队,这些“问题”应用如果在规定的时间不能完成任务,将导致系统其它应用报出“超时”错误。 4、加速系统老化,降低硬件寿命:负荷过大的问题将导致系统的各硬件组成部分长时间处于高负荷的工作状态,导致硬件老化加快,降低系统的生命,直接导致系统的不可用。 从以上四方面的关系看出,系统性能是一个关系到业务效率、客户满意度、稳定性、可用性和投资回报率的重要因素,必须投入充分的资源来关注和解决这个问题。
信息发布:广州名易软件有限公司 http://www.myidp.net
|