近期一直在做系统内部一个模块的重写工作。这几周人累得够呛,这周更是连续三天回到家差不多11点多。有种窒息的感觉。
回想去年这个时候,自己才开始在部门工作,设计会话邮件的折叠算法,果真一轮回,估计下个月又要继续折腾那东西。
回头继续说这个模块的设计,实现,上线,到现在的一些感触。
最大的感触是:伸缩性。
去年年底开始接触这个模块,今年年初开始有各方面的设想去优化此模块,最终导致要重写之。于是开始想如何去优化他。
整个思路一直是,如何在目前这些机器上去优化他。 当时的机器是 4核cpu xxx, 3块数据硬盘 no raid, 内存8g。
由于历史程序 以及 一些原因, 所编译的程序是32bit, 用户态优先地址空间限制很严重, 能用的就2g左右, 当时算来算去。 够用,哈哈。
结果报应来了,日前,公司打算换机器, 换成 另外一种机型,cpu一样, 5块硬盘,内存 32g。 T_T 杯具了,这下好了,无法充分利用 大内存 来支撑 应用,应用的限制在于 32bit 的程序线性地址空间有限。
另外是模块内部的一个子模块,实现过程中贪图便利, 结果为后期的可伸缩性大打折扣,都是报应。
以前没有这方面的经验,这下大大吃了这方面的亏。
具备好的伸缩性架构设计应该是,只要机器设备充足,内存够,硬盘够,cpu够,就可以拓展。这个之前一直听人家夸夸其谈,做起来的时候,要和具体的东东结合起来,真不是那么容易,唉... ...我他妈太嫩了