记一次性能调优过程

原创 2015年07月09日 01:43:09

前一阵子参与了公司数据迁移工具的一些优化,现将优化过程及思路作为记录。


背景:昆明十几家法院电子卷宗数据迁移,从老系统迁移到新审判系统,数据库为集中部署,材料(多为图片),存在ftp(老系统ftp为分布部署)上,大概有5-6家在300G以上,剩余每家平均80G左右。


困难:原程序迁移过程需要将材料进行数据同步-->下载-->转换-->上传、入库-->制作5个步骤,初期时间大多浪费在下载步骤,仅一家约180G文件大概下了9天左右。


分析:经分析,各步骤可优化空间如下:

(1) 同步卷宗映射:原程序辅助映射表各进程间不支持并行,可修改为并行;

(2) 同步卷宗表:优化空间较小;

(3) 下载:可将迁移服务搭建在老系统ftp服务器上,将原程序访问ftp方式改为访问本地方式,同时增加图片压缩减少后期转换的时间;

(4) 上传:可根据原程序上传ftp结构,现将文件上传至本地,后将各家院上传内容复制到新系统的ftp上,或者将新系统ftp也迁移至该服务器,减少ftp访问;

(5) 制作:制作过程中涉及的ftp操作,也可象上述描述一样,使用读取本地的方法。


思路:步骤3、4、5原来基本都是和ftp做交互,访问ftp肯定不如访问本地文件来的块,因此应尽量使用访问本地文件的方式;

由于系统设计访问ftp是基于公司的大对象存储组件开发的,可经过配置自由转换存储ftp和存储本地文件的方式,降低了改造成本。

程序个步骤都是只能按顺序依次执行,效率很低,由于映射表中存储了案件的收、结案日期,可以修改程序,达到分时间段操作各个步骤的方式增加并行机制。

另外,步骤3、4、5可以采用多线程处理,充分利用系统资源。


效果:经改造后,一家300G的卷宗仅用一个周末将全部流程走完,900G的卷宗在工作日只能下班时间运行程序的情况下,一周之内全部完成。


总结:本次在程序各个步骤的改动其实并不是很大,但是效果比较明显,其主要思想,是尽量能充分地利用服务器资源,采用多进程、线程的方式并行作业,提高作业效率;将ftp访问模式改为本地文件访问,减少网络开销。其实优化并不一定需要在程序中改进算法,大量重构才能得到效果,根据具体问题集体分析,少量改动也可以有很显著的效果。

版权声明:本文为博主原创文章,未经博主允许不得转载。

记一次简单的渗透测试经过

 首发IT168安全频道转载请著明 [safe.it168.com]作者:伤心的鱼笔者的一位朋友应聘到一家公司做网管,据说整个机房就他们俩人,工作很轻松。几乎是没什么事做,但是昨天突然给我打电话说是机...
  • exphacker
  • exphacker
  • 2008年01月24日 13:00
  • 218

记一次JAVA程序的性能调优

背景 笔者最近一个阶段做一个大数据方面的项目。和其他大数据项目使用Spark,ES不同,这个项目使用存文件的方式。 写文件时把用户所需要的数据全部准备好,典型的以磁盘空间换用户查询时间的方式。 ...
  • fanwb1985
  • fanwb1985
  • 2016年08月26日 10:48
  • 189

记一次bug解决过程

记一次bug解决过程
  • hfhwfw
  • hfhwfw
  • 2011年05月17日 08:49
  • 1357

记一次装机过程

检查系统,驱动安装 检查系统键盘是否正常,windows个别系统更新之后会出现输入法无法使用,没有很好的解决办法,直接重装系统较为省事 安装驱动精灵,安装一应驱动 依次安装开发环境、工具 ...
  • wang124454731
  • wang124454731
  • 2018年01月18日 11:48
  • 25

记一次代码优化过程

这是转的文章,俺的想法是搜集一些人家开发心得好归己以后开发参考, 有时间再把这些文章整理进自己的学习笔记本里,呵呵有点自私。   http://www.javaeye.com/topic/593...
  • ziliang871118
  • ziliang871118
  • 2011年03月09日 14:50
  • 569

记一次曲折的渗透测试经历

昨天把jexboss脚本整合到我的多线程框架里,扫了一遍全国jboss,发现一千多个shell.工具地址在:https://github.com/Xyntax/POC-T随意拿了一个看似大厂商的,作本...
  • cd_xuyue
  • cd_xuyue
  • 2016年04月21日 19:16
  • 8144

转载:记一次 Laravel 应用性能调优经历

先奉原文地址:https://segmentfault.com/a/1190000011569012这是一份事后的总结。在经历了调优过程踩的很多坑之后,我们最终完善并实施了初步的性能测试方案,通过真实...
  • Do_Only
  • Do_Only
  • 2018年02月10日 11:43
  • 49

记一次解决问题的过程

最近在测试建行的一个接口,在本地(PHPStudy2016+PHP5.4)测试好后,传到线上服务器,发现一片空白。 后来,一路排查,找到问题所在: function des_encrypt($data...
  • leejianjun
  • leejianjun
  • 2016年12月16日 14:02
  • 260

记一次内存泄露优化过程

背景项目目前存在使用久了或者重复打开关闭某个页面,内存会一直飙升,居高不下,频繁发生GC。静置一段时间后,情况有所改善,但是问题依旧明显,如图1-1、1-2。 图1-1.操作时的内存使用情况 图1...
  • a631855639
  • a631855639
  • 2016年04月25日 14:15
  • 7109

记一次Linux杀毒过程

不久前发现机器流出流量突然增加,经查看在/tmp目录下存在可疑文件,并且存在.ssh进程,于是安装clamav全盘扫描,最终确定机器中毒。 病毒现象 1、在tmp目录下moni.lod、gates...
  • weiyuefei
  • weiyuefei
  • 2017年06月19日 16:11
  • 567
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:记一次性能调优过程
举报原因:
原因补充:

(最多只允许输入30个字)