项目管理手记(六) DRP项目因为系统性能“四进宫”,何解?

来源:互联网 发布:嵌入式软件专业排名 编辑:程序博客网 时间:2024/05/05 14:45

项目管理手记() DRP项目因为系统性能“四进宫”,何解?

 

                                 童继龙/Drate@163.com

 

已经有三个月时间没有到温州了,正好这次有机会出差到温州,可以和温州的一班老朋友们好好聚聚,同时也开怀畅饮,边喝边聊了,因为大家一直都不缺乏深入交流的话题。这不,人还没有到温州,“温州IT主管联盟”的“老大”老胡就抛了一个案例,说是要给大家看看,再一起帮着参详参详的:

 

伴随着DRP项目的推进,软件方的顾问也逐渐撤出了,系统的运营自然也就成了企业IT部门的任务,而随着DRP系统的不断深入应用,其它信息系统的不断上线,企业信息化程度的也越来越深,企业对于软件应用性能的要求也就越来越高,就需要对IT系统进行升级扩容等全方位的改进。从技术角度来看,在升级改造过程中,比起全新信息化建设的困难度,实在是有过之而无不及。

这类的因系统性能问题而升级改造的,不成功的案例多于成功的案例。让我们来看一下这个因系统变慢而"四进宫"的案例。

原由:系统的响应时间慢,就是系统的升级的主要原因!

软件平台:

操作系统: Microsoft 2000 server

数据库: Microsoft SQL server

应用软件: 行业内成熟的DRP软件, 单机运行

硬件平台:

服务器:DELL (2CPU2GB的内存,和18GB的硬盘2个做镜像)

磁盘阵列:DELL220S SCSI盘阵(使用18GB的硬盘14个做RAID-5,共250GB)

经过两年的上线使用后,算是成功上线使用,但是开始有用户反映这个系统的响应时间越来越慢,希望信息中心可以提升系统的性能。

信息中心和几个供应商的会诊后,确认是硬件指标太低,造成性能太慢。

硬件慢,简单!只要有银子就可以解决。销售商介绍更高规格的硬件设备,于是把原来的设备转成其他的应用上,这个主要核心系统全部采购更新的高性能指标设备。

第一次升级方案:购买高性能指标的服务器

提高服务器的性能指标:

换服务器,把CPU 2个变4个,主频1.8变成3.6, 内存2GB4GB

换存储设备,SCSI盘阵太慢,换成2Gb Fibre光纤盘阵,加上2Gb的光纤交换机,采用最新的SAN存储结构技术,采用DELL推荐的中小企业用的盘阵AX150 (双控、500GB SATA 硬盘7)3.5TB的容量,连数据备份一并解决。真划算,价格也不贵,总价在30万以内,在原来的预算内,有银子真的很好用!

兴高采烈的迎接全新设备的,好像娶媳妇一样,信息中心上上下忙了大半个月,从培训、安装硬件软件、倒数据、系统测试、系统切换,连续加班好几天。总算把它侍候好了。

系统上线了,和供货商一起聚聚,喝喝小酒,联络感情,以后好配合!

三个月过去了,业务端反映,系统速度好像没有什么改善,甚至还慢了。财务部门反映每个月的结算,速度和以前差不多。

 

第二次升级方案:修改软件

硬件已经提升了,有问题可能就是软件问题,要软件商进行二次开发,修改软件。软件公司因为慢的问题,收不到开发费用,效果也就有限了。这又加班好几个月的时间,改善不明显。

软件公司找了一个高人,检测后,确定还是硬件问题? 问题又推到存储上!

 

第三次升级方案:升级盘阵上的Firmware

服务器的工程师进行了盘阵上的操作系统版本和补丁,不见效果,和存储厂商的资深系统工程师,再继续找问题。最后换了一个高级技术经理,一看,你这个AX150盘阵规格太低,只适合做备份,不适合做OLTP应用,应该使用更高档的全光纤盘阵,应该就没有问题。

 

第四次升级方案:更换4Gb的光纤盘阵

现在是2007年,主流产品都是4Gb的光纤,于是更换更高指标的存储设备CX3-20,带宽是44Gb,共16Gb的带宽,盘阵内存是4GB,硬盘使用300GB4Gb纯光纤硬盘8个,服务器上加两片4GbHBA卡,更换4Gb的光纤交换机。服务器的内存增加到8GB.

大半年过去了,听说系统的缓慢又出现了!

心疼吗?白花花的银子这样来花!那么在这个升级的案例中,问题出在哪里了?

 

上述的问题,经老胡一抛出来,就引起了大家的热烈讨论,因为这类的问题在各个企业都曾经碰到过,就算目前暂时没有碰到的,以后也会碰到,总之,这是任何一个企业都绕不过去的问题。正好当时手上上有事情,没有怎么深入思考这个问题,回过头有时间静下心来的时候,就觉的这个问题值得好好研究。

仔细分析上面的案例,其实没有给出一个相对客户的数据,说系统慢,是在操作系统、数据库、多少的服务器端带宽、多少个并发用户数、客户端PC配置等情况都未知而由业务部门的使用人员发出的呼声。

在这里,我觉的其实是可以根据用户的操作类型来区别一下的,系统性能应该包括两部分:

1、              OLTP(On-Line Transaction Processing,联机事务处理)操作:用户操作单据时,包括新增、修改、删除操作,类似的这种事务性操作应该要求响应比较及时,用户可忍受的等待时间应该是在5秒钟以内。

2、              OLAPOn-Line Analytical Processing,联机分析处理)操作:而在于进行查询与统计操作的时候,由于用户对于查询的数据不同,其心理预期也是不同的,预期的时间可以从5秒钟到15分钟不等,毕竟查询的数据量不一样,所需要的结果返回时间也是不一样的,这一点用户应该是可以理解的。

那么,我们要分析的问题主要就在事务性操作上,要求操作响应时间在5秒钟以内,这应该是我们的一个最基本的目标。也就是说,我们目前要分析的主要就是OLTP的性能。

由于OLTP性能会涉及到非常多的因素,包括服务器、DRP软件系统、网络状况、客户端PC机配置、数据库、用户等,针对这些情况,我们用下面的因果图进行分析:

       针对上述的因果图,我们可以根据上述原因进行逐一分析与排查,并制定出具体的应对方案:

1、DRP系统:DRP系统本身的原因,也是系统速度慢的根源所在,毕竟所有的硬件及网络设备都是为DRP系统服务的。

a)        从软件架构不合理上来考虑,在前面的一篇文章中,我有针对DRP系统的架构进行讨论的,有兴趣的朋友可以参考(http://blog.csdn.net/Drate/archive/2007/07/17/1694698.aspx)

b)        而对于大量使用数据感知控件,这应该是程序员的错,因为在开发小应用系统的时候,如使用DBGRID这样的控件,一次显示整个数据表的内容,如果数据条目在100--1000条,可能速度不会有太明显的差异,但如果数据条目是在1000条与100万条之间比较的话,那肯定就不是同一个层面上的了,所以进行数据显示的话,直接与数据源关联,有可能会引起资源耗尽的情况还没有能够显示出你所请示的内容。

c)        习惯性全表数据显示,这也是软件开发者在进行开发时没有注意的问题,因为性能问题都是在有了大数据量的时候才会显示出来的,开发期间由没有大数据量,开发人员也意识不到,所以进行提供用户查询功能的时候,基本上不会用限定条件,或者也不进行数据分页显示,导致数据库服务器的数据请求量直线上升。

2、网络:网络与系统的稳定性是直接相关的,特别是目前的DRP系统中,采用的都是数据大集中的方式,所有的数据请求、数据处理都是要通过网络来完成的。网络的问题可以归结为以下几个方面:

a)        服务端的带宽,目前一般有ADSL2M10M100M的光纤可以使用,系统数据慢,可以通过测试看服务器端的带宽是否足够。

b)        电信与网通的问题:这是中国特色的问题,由于网通主要在北方,电信在南方,所以终端的线路情况各不一样,特别是进行跨网络访问的时候,速度会是奇慢,而且网络会经常莫名其妙的断开,现在很多企业在机房里各拉一条网通与电信的光纤就是这个原因。

c)        VPN、防火墙问题,为了增加网络的安全性,VPN接入是目前DRP系统常用的一种方式,防火墙也是必不可少的,可是如果VPN或防火墙的性能不够的话,也将会使网络阻塞严重,系统自然也就慢了。

d)        客户端带宽:客户端带宽应该在目前来说,问题不会太大,因为现在ADSL的普及,很难再找到使用MODEM拔号上网的了,就算是现在的无线网络,其速度也远远要比MODEM拔号上网要快的多。

e)        网络设计不合理:这个问题是会是一个非常隐秘的问题,如:由于企业的网络管理员水平有限,没有对网络内的计算机进行分网段管理,容易出现“网络风暴”,导致交换机进行频繁的垃圾数据交换,交换机也是经常性死机,自然系统的速度会下降了。又如网络内存在病毒或者是木马,在网络内发送大量数据包,或者甚至是DoS(拒绝服务攻击)

3、服务器:一般包括以下几种类型的服务器,一是数据库服务器,二是指应用服务器,三是存储服务器,在这里我们不进行特指。

a)        服务器总线IO:在服务器领域,数据是需要进行密集交换的,而IO总线的频率基本上决定了一台服务器的性能,所以,为什么不同服务器之间的CPU、内存可能都差不多,但价格相差很多?同样性能也有很大差异呢?关键就是在于服务器的总线IO能力了。

b)        CPU性能:目前的PC服务器,一般都是能够加载多颗CPU的,是选2颗还是4颗或者是8颗,那就是要看应用的情况了,一般来说,在CPU的负载在80%以下是比较正常的,因为如果有一个峰值的话,CPU的负载就马上会到100%以上的。

c)        内存不足:内存也是和CPU一样,可以在服务器上进行扩展,根据需要进行配置,这个问题也比较明显。

d)        磁盘IO问题:磁盘IO,这里有可能是用磁盘阵列柜,也有可能是光纤存储,如果在用阵列柜的话,就要看一下是否是这里的问题了。

e)        服务器间网络带宽问题:由于存在着数据库服务器、应用服务器、存储服务器,这几个服务器之间的带宽是否能够在1000M?或者是直接用光线网络进行数据传输?这也是根据应用情况进行考量的。

4、数据库:

a)        数据库系统配置不合理:DBA在这里就起到非常大的作用了,特别是像ORACLE这样的大型数据库,一个好的DBA,可以将数据库系统的配置与软件系统达到最优化组合,性能的提升也是非常明显的,而如果是一个菜鸟来做的话,估计只会按照安装的默认配置来运行,系统性能相差的就远的去了。

b)        数据库索引及优化:数据库索引与优化,如果DRP软件商有对数据库非常熟悉的软件架构师,会对数据库的索引进行优化,以提高系统的效率,但说实话,目前更多的软件商将精力放在了前端的界面展现上,而不是数据库的“内功”修炼上。

c)        数据冗余:合理的数据冗余可以增强系统的性能,这是谁都知道的,但有的系统却是过滥,将数据库设计的过分冗余了,导致数据库成了吃硬盘的“杀手”,数据库一直不停地高速膨胀,系统性能也就直线下降了。

d)        存储过程与触发器:存储过程与触发器,这应该是属于业务逻辑层来干的事情,如果一个好的系统,我认为应该是不在数据库层面来执行业务逻辑的,所以,一直比较抵触这两个,特别是触发器。

5、客户端PC配置太低:比较容易理解,386的机器跑WINDOWS XP,老牛拉破车吧。

6、用户:

a)        用户心理预期较高:由于用户可能之前有用过类似的系统,由于数据量较小,或者之前用的是小系统,有一个习惯的问题;或者就是一个心理预期,认为一个新系统的话总会有算改进的,所以就把新系统想的很美好,结果实际上不是这么一回事的时候,自然就有落差了。

b)        并发用户数量:并发用户在10个与100个的时候,系统的速度,对于硬件、网络设备的要求肯定是不一样的,因此,在做评估的时候也要将这个因素考虑进来。

c)        用户无意义操作:用户经常性无意识地刷新数据就会对系统的性能造成影响,但用户可能并没有意识到,因此,这一点需要在用户培训中提醒进行归避。

 

针对上述列举的问题,需要做出一个详细的性能测试表格,对以上各项数据进行测试,找到问题的瓶颈在哪里,并针对问题的瓶颈,有规划性、针对性地部署升级计划。同时需要IT部门定期对上述性能进行评估,以便IT部门能够及时发现问题,而非在业务部门怨声载道的时候再来匆忙解决问题。

除上述的应对措施之外,还需要注意一点,就是将OLTPOLAP应用分别部署在两台服务器上,甚至有必要的话使用两条不同的光纤接入。当然,这就对DRP系统的架构提出一个新的要求,即对用户无关性:用户感觉不到后台是进行了数据库分离的,他的OLTPOLAP操作都在同一个软件界面中完成,并不需要进行数据切换和数据合并等操作的,这样就能够在不降低用户对系统的使用期望而达到提升性能的目的。能够实现该架构的,目前笔者接触的服装行业DRP系统中,也仅仅是一两家而已。

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手被水泡了皱了怎么办 水泡破了感染了怎么办 夏天腋下出汗会弄湿衣服怎么办 夏天腋下出汗多弄湿衣服怎么办 上眼皮干燥起皮怎么办 怀孕下面湿又痒怎么办 内裤穿久了有异味怎么办 刨腹产私处捂烂了怎么办 猫咬手指出血了怎么办 老有白带涌出来怎么办 耳朵里塞了珠子怎么办 树脂发光字烧了怎么办 马蹄莲长得太高怎么办 百合球的芽断了怎么办 种的百合开败怎么办 盆栽百合花开完之后怎么办 土养百合花谢了怎么办 多肉叶子不饱满怎么办 冬天富贵竹叶子发黄怎么办水养 富贵竹叶子发黄怎么办水养 水养富贵竹有虫怎么办 水养的富贵竹叶子发黄怎么办 百合花水里的盐放多了怎么办 芦荟叶子发黄干瘪了怎么办 水插百合不开花怎么办 干百合冷水泡了怎么办 牡丹籽油过期了怎么办 ps画布建小了怎么办 腰突然疼的受不了了怎么办 微信里面打不开表格怎么办? 浏览器未正常加载相关控件怎么办 猫的眼睛发炎了怎么办 橡胶手机壳松了怎么办 橡胶手机壳小了怎么办 苹果手机下载不了软件了怎么办 苹果手机浏览器下载不了软件怎么办 小狗吃了硬的棉花怎么办 小狗吃了隔尿垫里的棉花怎么办 眼睫毛掉进眼睛里怎么办 爱掉头发怎么办吃什么 头皮屑多头发干燥脱发怎么办