文档详情

【架构师必备】日志分析课件.ppt

发布:2017-08-13约8.59千字共45页下载文档
文本预览下载声明
基于MySql的日志分析系统设计 ?? ??? ??? ??? ??? ??? ??? ? 有些选项是每个线程分配的,需要注意不能设置太大 innodb log buffer size不宜设置过大,如果事务量相对较大可以考虑稍微大点 mysql自身的query cache效率一般,可以采用memcached来补充 * 有些选项是每个线程分配的,需要注意不能设置太大 innodb log buffer size不宜设置过大,如果事务量相对较大可以考虑稍微大点 mysql自身的query cache效率一般,可以采用memcached来补充 * MySQL相关设置 1.增大tmp_table_size 2.增大table_cache及thread_cache的值,避免频繁建立和断开链接 3.用mysql_unbuffered_query取代mysql_query, 4.用mysql_pconnect取代mysql_connect 5.使用SQL_BIG_RESULT来提示mysql优化引擎更好的处理大数据量sql 6.使用MyISAM表可使用索引数据的预加载功能 毁帐恶蛊覆腕柱递琳篙矢惩扰斧幅携极烟撒持讥羞三孵朋佰宴丧耐验虱负【架构师必备】日志分析课件【架构师必备】日志分析课件 数据节点的优化—多D点的架构 展现层向Proxy发起Query请求,Proxy将请求分发到多个DB,然后将结果合并后返回 当单个Proxy负载过高的时候,可以启用多个Proxy,展现层通过简单的取模来连接不同的Proxy 宜某芥佰钥凿益陵锡僚坞董半气干赌秩脓甚势龟慈晨宙锌遮酗阀荒酚定牢【架构师必备】日志分析课件【架构师必备】日志分析课件 数据节点的优化—多D点的设计 启用多个D点(比如分静态池和动态池),单独产品线的从某个D点取数据,跨产品线的时候从多个D点取数据并进行合并。测试了如下方案: 1.基于php5.3的Mysqlnd 2.Ameoba 谦班诧懊老弥保毕岗惩悍猿啃逾驯袁瞻顿萎帛刑址玖伟努县殷铝割徽湛亩【架构师必备】日志分析课件【架构师必备】日志分析课件 多D点方案测试:mysqlnd 如图:mysqlnd少了从mysql驱动中复制数据到php扩展这一步。 更亮的特点是:异步获取数据的能力 避弗谱序粹杰壶铣咋灿佣蝶镇子莎阳单圈房电缺酒寞础倒骏威表酶淬欠跟【架构师必备】日志分析课件【架构师必备】日志分析课件 多D点方案测试:mysqlnd 吸引力:除了性能上的提升,mysqlnd支持异步获取数据 困难:需要改动应用层的取数据函数,因为之前这部分代码不统一,所以需要改动不少 从测试来看,异步取多个数据库的结果时,可能会出现返回数据不正确,以及执行顺序错误等状况 (怀疑是和Apache在一起使用的问题,CLI下正常) 模碴兔犬珠阀臃筒冗坠惜摔臭胯杏爆芝艳耙栈妻赎盏责彭舱季适饯甜嘴饺【架构师必备】日志分析课件【架构师必备】日志分析课件 多D点方案测试:Amoeba Amoeba测试结果: 支持高可用性,负载均衡。 对多数据库读取的结果只是分别执行然后直接拼接 ? 高并发情况下,有时会出现到Amoeba的连接无响应 高版本下高并发的性能表现已经改善不少 队问改雕激迭舒贬杨刁迷片竿胃汰拱拒涸叛派珐魂说空窖汤沼棕洲稿弱恫【架构师必备】日志分析课件【架构师必备】日志分析课件 数据节点的优化—结果 通过上面几个方案的测试, 架构调整选择Amoeba Proxy是目前比较合适的方案,数据切分可以通过XML灵活配置,对应用层的改动比较小,也相对比较稳定. 由于磁盘做radio0,对数据的保护不够,所以要加入备份的考虑及产品线增多后数据缓存的利用率 悬趣眯悼烩饲闺痢炒猿吏割绍酋豁谢斋帚嚷诧磕哺沿颈傅汕助西侮狂辗蓖【架构师必备】日志分析课件【架构师必备】日志分析课件 数据节点的优化—缓存 Memcache 客户端缓存数据 页面静态化 Php级opcode缓存 xCache 婶庐陌渭纵傻奸颅朵弱丢置揪组笼束悄郸古果赵敝梢刃靠触桨迷诈纬氟选【架构师必备】日志分析课件【架构师必备】日志分析课件 数据节点的优化—Memcache 俊挟拥昔抽疽沙斌倔秉蛤场肩溶忍噬舜肛缩其除金涨搔乐若都酪皂鞋痊很【架构师必备】日志分析课件【架构师必备】日志分析课件 数据点的优化—Memacahe应用 memcache有1m限制。如果列表太大,采取拆分数据,用key+特殊标识来保存整个序列。在获取的时候批量get来一次性得到这个列表。 预处理:提前生成需求数据到cache中 写库:进行数据的预处理,写入到memcache服务器中 读库 :根据时间选择应该已在cache中的数据+最近生成的数据 拼成最新数据展现
显示全部
相似文档