救火队员的那些事(2)
这次救的火救的时间有点长,持续一年多,总共4次,每次去厦门大概1个月左右,每次去救火都是顶着巨大的压力,还好每一次我都不错的活着回来了。
这个项目与很多要救火的项目一样,项目交付第一,质量被抛在后面,几十人的团队不断往上堆需求,没有人做架构看护,没有人真正关注能否持久,只要功能实现了,暂时不出问题了,没有人care你的代码写的怎么样,可维护性怎么样。
在这四次救火中,举2个印象最深的例子,有一天晚上9点多,领导给我打电话说厦门某项目的系统今天下午系统挂了一次,他们在那边搞不定,希望我能出差支持一下,我说好的那我明天去,领导说能否今天晚上就去,没办法,订了10点多的机票,匆匆忙忙的赶到机场,由于飞机晚点,到厦门已经是凌晨2点了。到了以后,我还没找到地方住下,厦门这边的PM就给我打电话,直接去他们的办公场所解决问题,于是直接去了厦门软件园,到了以后,当时心里是很感动的,因为还有一波人在那里等着我一起和他们解决问题,想想大家都挺不容易的。
于是开启了我连续2天2夜没有睡觉的先河,接下来在11天的时间里每天凌晨2到3点回酒店。先不说这些苦逼的加班了,再多的加班,如果不能解决问题,都是徒劳的。我们先是把之前发现的一些问题做了梳理,然后我开始阅读他们写的代码,开始优化,测试,但是在头2天里,仍然抵挡不住用户访问的洪流,系统在连接2天上午高峰期间挂了,下午挂了,甲方的在当地最大的领导就站在我们的背后看着我们的系统挂了,重启。当时的心理压力是巨大的,但是我心里有底的,因为在前面几年磨练中,我已经遇到过绝大多数的问题,我对linux操作系统有足够的了解,我对java有足够的了解。
但是一开始开出的药方,似乎总是命不中要害。这时已经临近春节还有十多天的时间了,领导发话,如果此问题不解决,除了扣分以外(影响收入),所有的人春节都不允许回家。虽然外部不断的施压,但是当时我还是有信心解决的,我仍然在不断的在现网patch代码,分析日志,直到第3天,我给出一个当时绝大多数同事都不太认可的方案,将合并部署的数据库单独迁移到单独的数据库服务器上。他们认为这个方案的成本太高,从服务器的下单、到货、安装在短短十天的时间很难完成,如果迁移到新的数据库上仍没有解决问题,我们就一点退路就没有了。大部分人都不同意这个方案,而我相信自己的分析,一遍遍的拿出充分的数据做图表分析,当时幸亏自己熟练的写perl脚本,做了很多分析的工作。为什么要迁数据库到新的数据库?
我们的系统的数据库是和另外一个系统的数据库是合并部署在一台小型机上,这台小型机号称是IBM性能最猛的服务器,内存好像是128G,处理器是64核,因为我发现我们的系统的sql的执行时间不稳定,从单个sql来看,执行时间最高的时候会比正常的时间高于30%左右,这样看来问题不明显,但是不要忘了,我们为什么挂的功能是一个非常复杂的功能,一个流程有大量的sql执行,如果这些sql执行时间都很慢,那么整个流程就会慢很多。这也是为什么他们怀疑的地方,就是因为单个sql性能差异不那么明显,但是他们没有想到整个流程中会执行很多次sql. 另外我发现另外一个系统会不定时执行的非常耗资源的sql会拖累这个最猛的服务器,一旦服务器性能影响,在这台服务器上所有的进程都会受到影响。
其它人也没有更好的办法,最后只能采用我的方案,后来想办法调借一套ATAE双机,操作系统安装,安装Oracle数据库双机,这中间有一个小插曲,那天晚上甲方技术负责人都在帮我们一起来装解决数据库双机的问题,搞过数据库的同学可能知道,这些大型的软件在安装的时候因为补丁之类的问题,有时会出现一些难缠的问题。累了,大家就拿了硬纸板找个角落睡一会儿,在放假前3天的凌晨,我们完成了数据库的迁移。
我还记得迁移完成以后大概是凌晨6点左右,等待着早上9点左右的业务高峰期,大家都很紧张,总共有近20台服务器,把top命令开着一直盯着,一上午服务器的CPU都没有超过30%。接下来的3天也再没出现过之前的服务挂的情况,CPU和数据库的连接一直都稳定在安全范围线内。
在放假前的最后一天,我和PM一起回了南京,在从南京机场回市区的路上他对我说,如果没有你,我真的不知道该怎么办,那一刻感觉自己做的事情还是挺有意义的。回到南京的时候,南京已经下了白皑皑的雪,回到公司的时候,大部分同事已经回家了,路上人很少,心情很好
转载于:https://www.cnblogs.com/cc011/p/5844065.html
救火队员的那些事(2)相关推荐
- 救火队员的那些事(4)-关于流控
这次救火讨论的是流控,流控可以很简单,也可以非常复杂,特别是动态流控.我们有一个产品在T国某个运营商遇到了麻烦,这个运营商的母公司是欧洲的运营商,而欧洲的运营商对于产品验收的苛刻是出了名的,而这次给我 ...
- 【运维囧事】运维的苦乐之旅
人生就是一段充满苦与乐的旅程,在人生当中有痛苦也有欢乐,痛苦不一定是负面的,有的时候还会使你进步,增强应变能力.对一般人而言,人生一定要是快乐的才是有意义的,可是你仔细想想,有谁不是因为挫折而更加的坚 ...
- 银行工作中有哪些需要注意的事?
我曾经在国有银行工作六年,对此问题有一定的心得体会. 1.面对特殊问题,一定要有自己的主见.之所以把这个写在最前面,是因为有太多的银行小白因为不懂银行工作,而被领导们"摆一道"了. ...
- 遇事不责怪别人,换位思考能成全更好的自己
在生活中,有时候有些人做的某些事可能会让你感觉不爽:这时,你最好不要急着去责怪他:试着把自己放在对方的处境,看看别人的生活,你才能看到人间百态,理解他人的难处. 每个人的生长环境不同,心境就不同:有些 ...
- 力所能及的做些自己喜欢和有趣的事
我们每个人都有自己喜欢做的事:在自己可控且力所能及的情况下,在闲时,按自己的意愿去做些自己喜欢和有趣的事,会感觉到这事很有意义.在忙时,要为理想和奋斗而忙:不浪费时间在无意义的事和人身上. 朋友要的是 ...
- 不要纠结于过去发生的事
在这个社会中,有些人很早就经历了一些不好的事,遇到不好的人:让他留了一些阴影.这时,应该学会不要纠结于过去发生的事情了!一件事情已经发生了,不管再怎么后悔也不能改变结局: 对这件事一直有懊悔之心,只会 ...
- 【运维学习笔记】生命不息,搞事开始。。。
001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...
- 保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事
保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事 10 things to consider when securing an embedded 802.11 Wi-Fi device 随着 ...
- Python爬虫实战糗事百科实例
爬取糗事百科段子,假设页面的URL是 http://www.qiushibaike.com/8hr/page/1 要求: 使用requests获取页面信息,用XPath / re 做数据提取 获取每个 ...
最新文章
- 项目Makefile文件模板
- win10安装和配置Maven3.6.3
- SSH框架联合开发(Annotation精简Spring的配置文件)
- arcgis flex aqi 3大util
- java.util.concurrent.Future基础
- malloc动态内存分配
- Mac安装protobuf 流程
- 最大流matlab代码,计算最小费用最大流MATLAB源代码.doc
- 运动目标跟踪(二)--搜索算法预测模型之粒子滤波
- 易语言查询Windows API之网络函数消息函数
- weblogic部署项目后内存溢出
- linux下编译opencv的无kuda版本,自定义路径
- x86架构应用如何向Arm架构低成本迁移
- vector subscript out of range
- 做好数据全生命周期管理,实现数据资产化
- linux下的企业级DNS服务器的操作和加速
- 模具师傅告诉我塑胶模具是由这10大系统构成,不会的赶紧学习
- 解决win2008远程桌面授权过期的方法
- java火焰纹章攻略女神之剑_火焰纹章晓之女神图文攻略(4)
- 自定义带图标文字分割线通用布局,用于列表布局的设置、菜单页的item