手艺人赵鹏

技术也是一门手艺

工作遇到的问题分析【1】

计划是把工作中遇到的一些典型的问题,做个问题总结,之前遇到的,找时间来写。

先把今天遇到的一个问题分析下

问题场景:

     是项目中有一块的程序数据处理变慢了,而且,现象是中午有变慢,下午的时候,就会趋于正常。查看日志也没有发现出现错误。

过程分析:

    程序流程:

     

     问题分析:

     现象是表2的数据插入很慢。

     分析问题有两点可能出问题, 一个是在读取q1,做数据封装,数据逻辑处理给变慢了;

     另外一个是在做删除表1的时候,删除的慢了;

     

     最后分析的是排除了第一种原因,因为这一步简单,在实际中也就是服务器进行一下交互,服务器和网关都是足够健壮的。

     定位在第二种情况,原因是删除表1 和 插入表2是个串行的操作。表1每天中午都会做大量的插入操作,在程序流程处理中也同时在做更新、删除的操作,对表的压力巨大,当删除操作变慢了,同样就影响了对表2的插入,导致插入表2的操作变慢,这样的后果,q2的队列存储容量也长时间处于饱和状态,存入Q2也随之延后,读取Q1,封装数据的逻辑处理也延后了,当然Q1的容量也饱和了,第一步的操作也变慢了。

     最终的结果就是整个数据处理都变慢了。

     解决办法:

      a、将表1的删除和表2的插入进行异步操作

      b、对表1的不做删除,将表1的删除做记录id的操作,每天晚上定时进行删除。

Leave a Reply