公司生产流水线如何进行优化
一、 业务流程
笔者所在的公司是一家制造企业,所生产的产品直接面向一线消费者的健康与安全,因此需要纳入严格监督与管理体系中,生产的具体流程是,先从管理平台下载所需要产品码,通过生产的扫描设备实现产品的扫描关联,完成入库后再上传到管理平台,进而销售出库流入市场,通过这套系统可实现对产品与服务的一站式追溯,以更好的服务于广大社会群体。
二、问题产生
某日,在生产流水线的生产过程中,出现了产品码的下载异常,从而导致生产的频频中断。
经公司信息化部与系统售后技术人员,从软、硬件和网络等多方排查,最终定位的原因是,该系统服务器内数据库的历史数据过多,导致流水线在下载所需的生产码过程中,常因超时查询而中断,从而干扰车间流水线的正常生产;经进一步检测发现,目前公司的数据库容量增至200G的大容量,部分数据表的记录达到亿行、数千万行等,因此亟需调整优化。
三、优化目标与方案
目标:为解决此问题,需要清除历史数据,并收缩、优化数据库,帮助流水线达到快速查询与下载
控码的目的。历史数据分为“生产数据、关联关系和出入库数据”,经过与业务部门的沟通与确认,要求将效期截止到指定时点以前的数据全部予以清理,因为这部分数据对于生产分析已无价值,徒占空间。
过程:为此,通过与生产系统的售后技术沟通,所采用的流程步骤是:先清除历史数据----进行数据库的整体收缩-----再对部分数量过大的数据表重建索引----进而对数据库的再度收缩;完成后,针对数据库整体检测无误后,即可交付使用。另外,在切割过程中,需要保证工厂生产线的完全停工,使数据库保持在静默状态,以保证数据切割的顺利进行。
因此,我们提前与公司业务部门做好衔接,因为该问题的处理需要在生产完全停工的状态下,而这涉及到生产工期的调整,对公司业务来讲这是大事,因为当时正处在销售旺季,需要保证一线销售供货的及时,因此调整工期是非常困难的,面临这些压力,我们努力协调,与业务部门反复沟通,最终找到妥善方式而达成一致,在不影响一线销售的前提下,实现了工期的适度调整。
效果:接下来就是迅速办理合同协议等一系列的手续,以保证在约定的时间点内,数据切割的工作能够顺利开展;最后在处理过程中,与外部技术人员配合,严格按上述流程规范操作,双方保持在线协作并及时沟通,整个过程耗时三天,最终顺利完成,优化后效果包括:
1、 数据库由原来的200G,压缩至165G;尽管数据库的整体压缩并不是非常明显,但对于问题的解决与性能的提升,已起到了非常显著的提升作用;
2、各个关联关系的表格均得到不同程度的缩减,如下所示,,尤其是几个重要且历史数量庞大的数据库表,这几个关键的数据表也是生产过程中主要涉及到的;
3、经车间系统的试运行检测,流水线的生产已恢复正常,同批量产品码的下载(即重建内存操作),由原来的1.5个小时,提升到1个小时。
另外,为了能进一步稳固成果,我们对生产车间流水线顶端(服务器)和末端(工控机与网络),分别都进行了升级与优化,这对于整体工作起到了非常积极的辅助作用;通过上述一系列的操作,并经生产一线的试运行测试,问题得到顺利解决,公司的生产过程没有再出现因下载失败而导致中断现象。
四、心得
从项目管理的角度来回顾整个过程,我们做得相对合理,整个过程包括:在前期充分的调研分析,找到问题根源,并探讨出解决方案后,先制订出周密的计划任务;我们在整个处理过程中分工明确、把控得当、沟通及时,在任务结束后及时总结,用数据对比来做直观的体现与分析,最终成果得到了业务部门与领导的认可;另外,在处理过程中,我们也遇到了如服务器因配置性能低,而无法满足数据库整体压缩的需求;及因处理该问题,需要与业务部门就停工问题的协调与磋商等风险因素,我们尽可能的提前预估与防范,利用决策树和鱼骨图等有效工具来反复的分析与探讨,将意外的风险因素降至最低;在事件结束后,我们也制订了周期性的处理机制,在遵循行业规范和管理制度的前提下,每到一定周期,将会及时清理无效数据,将问题消除在萌芽阶段。
从具体事件处理的角度,主要有以下两点:
一、在日常的巡检过程中,我们过于关注对于服务器外围系统与资源的重点检查,而忽视了对数据库等相对深一层的检查,使得问题未能得到及时的发现和预警,从而使处理的过程由主动变为被动。
二、在问题的处理过程,我们开始只想对数据库做整体压缩,但由于整体量大,使得压缩过程相当得缓慢,而且一旦服务器的性能跟不上,容易造成死机卡顿,效果差;为此我们通过分析,决定实施精准定位,对数据量大的数据表,进行针对性的重建索引与优化,相当于医学治疗中的靶向定位,处理过程更加高效,效果理想。