中国首个坚持原创严肃内容的健康医疗信息化新媒体
最新消息:欢迎您,亲爱的读者!您可以通过QQ号或新浪、腾信微博账号直接在评论处登录,发表评论并选择转发到微博、QQ空间。

【彭建明专栏】莫道IT运维平淡无奇,性能优化让我快乐

专栏 hit2012 2393浏览 评论

【编者按】很多系统都是刚上线的时候光鲜,用着用着就出问题,这与有没有一支专业踏实的IT运维队伍高度相关。许多单位热衷于上新系统、大项目,但是鲜有人深入研究运行维护的艰辛和价值。IT运维在很多人的脑海中平淡无奇、甚至有些平庸,IT运维工作往往被等同于“修理工”,价值被严重低估。殊不知,IT运维才是信息系统的生命线。离开了运维,信息系统很容易陷入寸步难行、甚至彻底撂挑子的尴尬状况。

医院信息部门大部分的工作内容,其实还是IT运维。这篇稿件不仅技术上很实用,而且讲述了一名IT人的职业价值成长之道——在看似平凡的IT运维工作中收获快乐。特别感谢“技术范”的彭建明主任的来稿,为大家带来运维的故事。我们期待能够为业界打开一道闸,欢迎更多的同行分享运维心得,彰显IT部门和信息人的专业价值。

新疆维吾尔自治区人民医院信息中心副主任 彭建明

新疆维吾尔自治区人民医院信息中心副主任 彭建明

 

来源:HIT专家网    作者:新疆自治区人民医院   彭建明

很多单位的领导对性能优化都特不理解:服务器最初买来很好,天天都在很好地运行,怎么会突然就慢了?我做过很多性能优化的事情,直到今天,我每做成功一次系统性能优化,都会开心好久。也许,这就是我一直坚持专注技术的动力。

软件工程将软件生命周期分为软件定义期、软件开发期、运行维护期。其中运行维护期应该占到软件生命周期90%以上。想想我们医院,一个系统上线花半年多时间,后面多少年一直都是在维护。我工作近20年了,主要也是在做系统维护工作。

系统维护主要包括,性能故障处理,或潜在故障处理和性能优化。故障处理一般都有错误提示,我们有很多线索去分析和处理问题。而性能优化是最为麻烦,也最为考验一个工程师的技术能力。

系统性能优化一般都是通过性能报表,找出有问题的SQL。通过分析SQL,添加索引或是修改索引、修改视图、或者找出SQL的优化方法,交给程序员进行程序修改,再复杂一点就是分析事物处理方法,重写设计事物。我几乎每周都在做这些事情,其中也有一些特别的经历,时常让我回味。

2011年,一个朋友找到我,去处理一个系统运行慢的问题。这是一所大学的图书管理系统,硬件条件很好,比当时我们医院的HIS核心系统的硬件还好。主机是IBM P595小型机、EMC CX340存储、Oracle数据库,总共不到100G数据量。查询一本书或者借一本书都要5分钟以上。这么好的机器、这么小的数据量,怎么会这样?我现场做了性能报告,发现很多语句全是全表扫描。心里暗自高兴:很简单,添加合适的索引就可以解决问题。但我打开数据库,看了表结构,当时就蒙了。这应该是大师级人物设计的数据库,表和索引设计得非常适合,而且命名都十分规范,索引几乎都有。我对所有的表和索引进行了分析,系统依然很慢,还是全表扫描,用不上索引。于是我又在自己的PLSQL工具中,对SQL语法加上使用索引提示,查询时间从300秒降到了0.5秒以下。可是我不能对程序进行修改,怎么让程序能使用索引?这个问题困扰了我好久。

车到山前必有路。经过调查发现:这个图书管理系统上线好多年了,数据库使用的是Oracle 8.1.5,当前Oracle版本是Oracle 11g,会不会是数据库版本太低导致? Oracle 8i的优化器太笨,不知道利用索引?想到就做,我建了一个11g测试库,简单地导出导入,数据升级到了Oracle 11.203后,系统运行效果立竿见影。

随后,我给他们提出了系统性能优化方案。考虑到他们的硬件很好,但已经过保,每年的维护费都在20万,系统没有容灾,我提出可以购买两台PC服务器,安装64位Linux 6.3  Oracle 11.203。两台PC服务器分别放在两个校区,通过Oracle DG做一个容灾,这样预算在20万元左右。这一方案既解决了速度慢的问题,又解决了容灾备份问题。最终方案得到了成功的实施,学校反映学生从此借书像闪电一样快。

这次性能优化的经验告诉我们,处理性能优化等IT运维问题时,就像临床医生诊治疑难杂症,一旦找到症结,并能对症下药,将让IT人员从看似平淡繁琐的运维工作获得成就感。同时,面对许多复杂的问题,聪明的大脑比强壮的身体更重要。机器是这样,人也是一样。

【责任编辑:封诚】

 

您必须 登录 才能发表评论!