以前编写概要设计、详细设计,总不爱写性能部门。一个“无”字打发,或者干脆不写此项,一直认为不是自己的事,设计完了,性能自然就有了。
当有一次自己估算了一下日志大小的时候,傻眼了......
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
需要记录日志项
事件类型、用户ID(或用户名)、组ID(或组名)、时间、位置、结果、主体、客体、具体操作、备注
预估单条日志最大值
事件类型 |
位置 |
用户 |
结果 |
主体 |
客体 |
具体操作 |
备注 |
预留 |
合计(Byte) |
4 |
18 |
40 |
4 |
4096 |
4096 |
4096 |
4096 |
4096 |
20546 |
1MB ≈ 50 条日志
1GB ≈ 5W 条日志
MAX:1s 产生 10 条日志,一天产生86W 条日志,一天消耗17.2GB磁盘空间
记录日志6个月,一台机器消耗3T
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6个月,半年,记录时间不算很长,估算是3T,不得不惊讶。
如果在没有估算这项的话,我的设计可能是用个文件来存储日志。估算后,用Mysql都够喝一壶。
对性能进行估算与不估算,在设计、编码阶段都会发生很大的变化。