打字猴:1.70045211e+09
1700452110 客户打电话给我们,反映系统性能缓慢,不需要我们赶到现场,自己观察一下生产机就可以发现部分交易缓慢,CPU过高,可用内存较低等问题,在这种情况下我们至少要测试三个有性能问题的交易(或者三个与业务相关而技术无关的功能,或者与技术有关而业务无关的功能),为什么是三个呢?因为“永远不要带两块手表”,这会致使无法验证和校对。
1700452111
1700452112 比如三个不同的输入功能,都是用户输入信息,然后保存到数据库中,但是三个交易的性能都非常缓慢,通过初步的“望”我们就可以基本确认是与数据库或数据驱动相关的问题;若是只有一个交易缓慢,其他两个正常,那就可以大致定位到一个面:该交易的逻辑层出现问题。
1700452113
1700452114 (2)闻
1700452115
1700452116 中医上的“闻”是大夫听(或嗅)患者不自觉发出的声音和气味,在性能优化上的“闻”则是关注项目被动产生的信息,其中包括:项目组的技术能力(主要取决于技术经理的技术能力)、文化氛围、群体的习惯和习性,以及他们专注和擅长的领域等,各位读者可能要疑惑了:中医上“闻”的对象是病人,而为什么这里“闻”的对象却是开发团队呢?
1700452117
1700452118 我们这样来思考该问题,如果是一个人(个体)生病了,找大夫如此处理是没有任何问题的,但是如果是人类(群体)生病了,那如何追寻这个根源呢?假设人是上帝创造的,如果有一群外星生物说“人类都有自私的缺陷”,那是不是应该去观察一下上帝?了解这个缺陷是源于他的习惯性动作还是技能缺乏,或者是“文化传承”。对于一个Java应用来说,我们就是“上帝”,我们创造了他,给了他生命(能够运行),给了他尊严(用户需要它),给了他灵魂(解决了业务问题),那一旦他生病,是不是应该审视一下我们这些“上帝”呢?或者我们得自我反省一下呢?
1700452119
1700452120 如果项目组的技术能力很强,有资深的数据库专家,有顶尖的架构师,也有首席程序员,那性能问题产生的根源就应该定位在无意识的代码缺陷上。
1700452121
1700452122 如果项目组的文化氛围很糟糕,组员不交流,没有固定的代码规范,缺乏整体的架构等,那性能问题的根源就可能存在于某个配置上,或者相互的接口调用上。
1700452123
1700452124 如果项目组已经习惯了某一个框架,而且也习惯了框架的种种约束,那性能的根源就可能是有人越过了框架的协约。
1700452125
1700452126 需要注意的是,“闻”并不是主动地去了解,而是由技术(人或应用)自行挥发出的“味道”,需要我们要敏锐地抓住,这可能会对性能分析有非常大的帮助。
1700452127
1700452128 (3)问
1700452129
1700452130 “问”就是与技术人员(缔造者)和业务人员(使用者)一起探讨该问题,了解性能问题的历史状况,了解“慢”产生的前因后果,比如对于业务人员我们可以咨询:
1700452131
1700452132 性能是不是一直这样慢,从何时起慢到不能忍受?
1700452133
1700452134 哪一个操作或哪一类操作最慢,大概的等待时间是多长?
1700452135
1700452136 用户的操作习惯是什么,是喜欢快捷键还是喜欢用鼠标点击?
1700452137
1700452138 在什么时间段最慢,业务高峰期是否有滞顿现象,业务低谷是否也缓慢?
1700452139
1700452140 其他访问渠道,如移动设备是否也有效率问题?
1700452141
1700452142 业务品种和数量有没有激增,操作人员是否大规模增加?
1700452143
1700452144 是否在业务上发生过重大事项或重要变更,当时的性能如何?
1700452145
1700452146 用户的操作习惯有没有改变,或者用户是否自定义了某些功能?
1700452147
1700452148 而对于技术人员,我们就要从技术角度来询问性能问题了,而且由于技术人员对系统了如指掌,可能会“无意识”地回避问题,我们应该有技巧地处理这类问题,例如可以这样来询问技术人员:
1700452149
1700452150 系统日志是否记录了缓慢信息,是否可以回放缓慢交易?
1700452151
1700452152 缓慢时系统的CPU、内存、I/O如何?
1700452153
1700452154 高峰期和低谷时业务并发数量、并发交易种类、连接池的数量、数据的连接数量如何?
1700452155
1700452156 最早接到用户投诉是什么时候,是如何处理的,优化后如何?
1700452157
1700452158 数据量的增长幅度如何,是否有历史数据处理策略?
1700452159
[ 上一页 ]  [ :1.70045211e+09 ]  [ 下一页 ]