关闭

记一次性能调优过程

305人阅读 评论(1) 收藏 举报
分类:

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


背景:昆明十几家法院电子卷宗数据迁移,从老系统迁移到新审判系统,数据库为集中部署,材料(多为图片),存在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访问模式改为本地文件访问,减少网络开销。其实优化并不一定需要在程序中改进算法,大量重构才能得到效果,根据具体问题集体分析,少量改动也可以有很显著的效果。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1344次
    • 积分:34
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    最新评论