小雉视频系统--直接均值架构
本文原地址: http://www.feitianzhi.com/boke/index.php/archives/18/
转载请注明出处,有疑问或错误请发邮件到xiaozhi@fslib.org 或加QQ群:869598376
概述
对一个软件的运行占用的资源进行统计,可得到资源占用的"均值"和"峰值",从性能的角度评估软件的框架,自认为可分三个层次:
- 峰值架构:按这种架构设计的软件需要按资源使用的峰值配置硬件,一些云服务商(如阿里云)评估的cpu均值与峰值比为2:10,基于此数据,云服务器商可提供更高的突发性能(这也是阿里云服务器测试时感觉比其他云服务器商快的原因);
- 总线式峰值架构:如选用高于软件资源消耗均值但低于软件资源消耗峰值的硬件,在软件峰值时不仅会卡顿影响体验且会丢失数据,影响最终结果;"总线式峰值架构"是把数据采集(数据采集的资源消耗肯定是低于均值的)和处理分开,把采到的数据进行缓存再分发给各处理模块处理(处理模块排队完成);
- 均值架构:目标是可选用性能略大于软件资源消耗的均值的硬件,实现硬件资源的利用最大化;"总线式峰值架构"相对"峰值架构"会增加业务流程,增大储存资源消耗,而"均值架构"相对"峰值架构"不会增加业务处理流程,同时可合并同类业务的排列顺序,让数据更好地类数组化,增加cpu或储存设备cache的命中率,进一步提升性能,降低软件资源消耗的均值;
直接均值架构
"小雉视频系统"采用"均值架构",同时"小雉视频系统"是单进程设计,数据在多模块之间传递采用引用方式完成,所有操作都能直接完成;
合理的算法让数据的移除和插入使用位于链表的头和尾,保持数据的数组特性,提高cpu缓存命中;
合理的业务分解让数据快速被过滤,大大减少堆积数据量,据统计视频中可能感兴趣的数据不足10%;
采用"直接均值架构"的"小雉视频系统"的硬件利用率可达90%,即cpu均值达90%不会影响使用体验;