SlideShare una empresa de Scribd logo
1 de 45
基于 MySql 的日志分析系统设计                              漆兴 [email_address]
主要内容 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
系统简介 ,[object Object],[object Object],[object Object]
系统需求特点 ,[object Object],[object Object],[object Object],[object Object],[object Object]
系统部分需求展示 1
系统部分需求展示 2
系统整体架构
系统架构说明 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
系统执行流程
采集节点   功能:负责推送日志到 B 点 实现过程:利用 Rsync 实现推送,以接口方式访问 M 点获取 Rsync 的目标地址 动作:在每五分钟内切割完日志并推送。每小时获取 M 点更新的配置完成自更新 数据格式:压缩后的统一规范定义的标准日志格式
运算节点   功能:根据需求分析日志并推送到 D 点 运算机制:逐行分析日志  +  多进程 工具 : 使用 FaceBook 的 HipHop 加快运算速度 频率:每两分钟调度分析脚本 分析结果:保存为文本,格式为 sql 语句。如 insert into table values ( ),( ),( )
Relay 点   存在的意义  : 保障数据传输的速度及效率,减少网络问题导致的数据阻塞及不完整性 问题重现  : 电信和网通之间的互相访问问题,导致日志传输丢失或不能在规定时间内到达指定节点 解决方法  : 电信服务器访问电信,网通服务器则访问网通
数据节点   功能:负责将接收到的 sql 文本入库 动作:在每两分钟运行入库脚本。每天定时创建分钟表 (m_ 表 ) ,每小时将分钟表中过去一小时的数据聚合 , 即 h_ 表,每天聚合前一天的小时表数据,即天表 d_ ,以及触发器及存储过程的调用。将最近三天的分钟表,最近三个月的小时表,定义为热数据,并定期创建为 merge 类型,方便程序的编写。
展示节点   数据访问接口 : 通过增加数据中心层来封装对数据库及缓存等数据的读取,方便程序员编写代码,减少业务逻辑 数据库代理 :Amoeba 展示方式 :  图形 + 报表 +Flash 使用工具 : Mysql5.1+Php5.3+Amoeba+Fushionchart+Apache +Memcache 等
管理节点   功能 : 掌握各大节点的系统运行状况,资源使用情况 任务列表 : 负责管理调度系统其他节点 , 管理各节点的 Rsync 地址,分析 B 点的运算结果,健康检查,日志传送数据的完整性及过期信息处理等工作 工具 :Gearman 好处 :Gearman 使任务的分发变的更加灵活,避免登录多个节点获取信息,提高运维效率 , 方便多服务器管理 。
Gearman 介绍 Gearman 流 : Client: 请求的发起者 Job: 请求调度人,负责把 Client 的请求转发给相关的 Worker Worker: 请求的处理人,
Gearman 实例 具体实例 : 在各大分析点起守护进程 worker.php 监听指定的端口 在 M 点命令行下运行 client.php cmd  来执行各种工作 cmd  相关安全性检查
数据节点—瓶颈分析   ,[object Object],[object Object],[object Object],[object Object],[object Object]
数据节点 - 展示相关 表引擎 : 使用 MyISAM,Memory 表操作 : 多为 insert ,无 delete ,update Query 分析 :Select 操作及 sum,avg,group by ,order by,limit Where 定向 : 多为时间粒度及产品线等多角度混合查询。 时间粒度 : 最近五分钟 , 最近一小时,最近 25 小时等 查询条件 : 按产品线 , 运营商,城市,机房,服务器
数据节点—表的设计 考虑到需求上涉及到的操作时间相关 , 如最近五分钟,最近一天,最近一小时等 , 从数据库中读取的数据大且更新频繁,所以采用按时间拆表及对时间建立索引的方案 , 使用引擎 MyISAM 具体如下 : 1. 对各种时间粒度建立索引应对复杂的组合查询,按天,小时,每五分钟 ( 一天 288 个点 ) 建立索引。采用整形如选择 2010 年 04 月 03 的 128 个五分钟 ,where minf=20100403128, 这种方式虽然增大了字段长度,但是对索引的查找及索引的基数的扩大都是有帮助的,属于用空间换时间。 2. 使用分区特性,在每天建立的 m_ 分钟表中按小时建子分区 3 ,在 MyISAM 表中尽量使用定长类型
数据节点—表的设计续 4. 将 IP 字段存储为整形 5. 大数据量表按时间拆表 6. 规范表命名  m_20100317_www_top_refere,h_,d_ 7. 使用 merge 表 8. 对于过期的只读表进行 myisampack 9. 使用 enum  使 PROCEDURE ANALYSE()  10. 根据业务需求将产品线及时间建立联合索引
数据节点的优化— Mysql 架构优化 ,[object Object],[object Object],[object Object]
数据节点的优化—单 D 点的优化 瓶颈 :  磁盘 IO 优化方式 : 初期 : 1. 将 m,h,d 表的索引文件及数据文件分布到不同磁盘 2. 将数据库指向不同的磁盘 3. 禁止系统更新文件的 atime 属性
数据节点的优化—单 D 点的优化 瓶颈 :  磁盘 IO 是主要问题 优化方式 : 硬件升级 后期 : 操作系统及文件系统调优 raid0  或  lvm 条带化 修改相关 mysql 参数 sql 语句的慢查询分析及索引调优
数据节点的优化—单 D 点性能分析 没优化前 : 负载比较高,时常会超过 10 , CPU Idle 经常会小于 30% ,有时 Idle 为 0 , CPU io wait  比较大 优化后 : CPU 的负载降了一半左右,同时磁盘写入性能比之前提升了一倍之多
数据节点的优化—特殊需求优化 ,[object Object],[object Object],[object Object],[object Object],[object Object]
数据节点的优化— infobright 使用 1. 采用开源 ICE 版进行相关日志分析 2. 将涉及到跨天及跨小时的非实时数据,导入到 infobright 3. 充分利用列数据的特点,提搞了 select 速度及减少了预处理的量,和相关统计报表工作 4. 效果 : 千万级表,包含 sum,group by,order by 操作 ICE 比 MyISAM 快几倍
数据节点的优化— infobright 特点 列存储 适合范围查询及群组操作,查询高效 服务形式及接口跟 mysql 一样,学习成本低 高压缩比列,减少磁盘空间 无需建索引,避免索引的维护及增长问题 缺点: ICE 版无 DML 操作,但支持 load data infile
数据节点的优化—硬件 ,[object Object],[object Object],[object Object]
数据节点的优化— Mysql 应用优化 ,[object Object],[object Object],[object Object],[object Object],[object Object]
MySQL 参数设置 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MySQL 相关设置 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
数据节点的优化—多 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 ,对数据的保护不够,所以要加入备份的考虑及产品线增多后数据缓存的利用率
数据节点的优化—缓存 ,[object Object],[object Object],[object Object],[object Object]
数据节点的优化— Memcache
数据点的优化— Memacahe 应用 memcache 有 1m 限制。如果列表太大 , 采取拆分数据,用 key+ 特殊标识来保存整个序列。在获取的时候批量 get 来一次性得到这个列表。 预处理 : 提前生成需求数据到 cache 中 写库 : 进行数据的预处理 , 写入到 memcache 服务器中 读库  : 根据时间选择应该已在 cache 中的数据 + 最近生成的数据 拼成最新数据展现 缺点 : 维护多个存储操作增加了应用层逻辑复杂度 优点 : 减少从数据库读取海量数据的问题及避免重复计算
数据节点的优化— Memache 应用优化 Memcache 自重启 deamon tools 监控程序,让其在挂掉时重启 开启数据压缩功能  $memcache>setCompressThreshold 根据数据量大小修改 slab 及 factor 的值提高内存利用率 使用类似 get_multi 方法发送请求 减少客户端和服务端的通信
使用到的工具 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],总结
谢谢

Más contenido relacionado

La actualidad más candente

高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践孙立
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构XiaoJun Hong
 
Oracle rac资源管理算法与cache fusion实现浅析
Oracle rac资源管理算法与cache fusion实现浅析Oracle rac资源管理算法与cache fusion实现浅析
Oracle rac资源管理算法与cache fusion实现浅析frogd
 
MySQL查询优化浅析
MySQL查询优化浅析MySQL查询优化浅析
MySQL查询优化浅析frogd
 
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosqlknuthocean
 
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Feng Yu
 
Linux内存管理
Linux内存管理Linux内存管理
Linux内存管理zijia
 
了解内存
了解内存了解内存
了解内存Feng Yu
 
MySQL和IO(下)
MySQL和IO(下)MySQL和IO(下)
MySQL和IO(下)Feng Yu
 
TomCat迁移步骤简述以及案例
TomCat迁移步骤简述以及案例TomCat迁移步骤简述以及案例
TomCat迁移步骤简述以及案例maclean liu
 
利用新硬件提升数据库性能
利用新硬件提升数据库性能利用新硬件提升数据库性能
利用新硬件提升数据库性能Feng Yu
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践Wensong Zhang
 
Sql优化
Sql优化Sql优化
Sql优化dcshi
 
MySQL新技术探索与实践
MySQL新技术探索与实践MySQL新技术探索与实践
MySQL新技术探索与实践Lixun Peng
 
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕ideawu
 
张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析Leechael
 
大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化XiaoJun Hong
 
Database.Cache&Buffer&Lock
Database.Cache&Buffer&LockDatabase.Cache&Buffer&Lock
Database.Cache&Buffer&LockLixun Peng
 
对MySQL应用的一些总结
对MySQL应用的一些总结对MySQL应用的一些总结
对MySQL应用的一些总结Lixun Peng
 

La actualidad más candente (20)

高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构
 
Oracle rac资源管理算法与cache fusion实现浅析
Oracle rac资源管理算法与cache fusion实现浅析Oracle rac资源管理算法与cache fusion实现浅析
Oracle rac资源管理算法与cache fusion实现浅析
 
Metrics
MetricsMetrics
Metrics
 
MySQL查询优化浅析
MySQL查询优化浅析MySQL查询优化浅析
MySQL查询优化浅析
 
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql
 
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践
 
Linux内存管理
Linux内存管理Linux内存管理
Linux内存管理
 
了解内存
了解内存了解内存
了解内存
 
MySQL和IO(下)
MySQL和IO(下)MySQL和IO(下)
MySQL和IO(下)
 
TomCat迁移步骤简述以及案例
TomCat迁移步骤简述以及案例TomCat迁移步骤简述以及案例
TomCat迁移步骤简述以及案例
 
利用新硬件提升数据库性能
利用新硬件提升数据库性能利用新硬件提升数据库性能
利用新硬件提升数据库性能
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 
Sql优化
Sql优化Sql优化
Sql优化
 
MySQL新技术探索与实践
MySQL新技术探索与实践MySQL新技术探索与实践
MySQL新技术探索与实践
 
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
 
张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析
 
大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化
 
Database.Cache&Buffer&Lock
Database.Cache&Buffer&LockDatabase.Cache&Buffer&Lock
Database.Cache&Buffer&Lock
 
对MySQL应用的一些总结
对MySQL应用的一些总结对MySQL应用的一些总结
对MySQL应用的一些总结
 

Destacado

Met Sociale Media naar de beurs - Exhibitions Academy
Met Sociale Media naar de beurs - Exhibitions AcademyMet Sociale Media naar de beurs - Exhibitions Academy
Met Sociale Media naar de beurs - Exhibitions AcademyGerrit Heijkoop
 
New Booking Bilbao Instituto Hemingway
New Booking Bilbao Instituto HemingwayNew Booking Bilbao Instituto Hemingway
New Booking Bilbao Instituto HemingwayInstitutoHemingway
 
Trees matter amazon
Trees matter amazonTrees matter amazon
Trees matter amazonSandy Olson
 
Boy deconstructed
Boy deconstructedBoy deconstructed
Boy deconstructedSandy Olson
 
tollbrothers 10-Q_jul_2003
 tollbrothers   10-Q_jul_2003 tollbrothers   10-Q_jul_2003
tollbrothers 10-Q_jul_2003finance50
 
fmc technologies 2006ar
fmc technologies 2006arfmc technologies 2006ar
fmc technologies 2006arfinance50
 
tollbrothers 10-Q_jul_2001
 tollbrothers   10-Q_jul_2001 tollbrothers   10-Q_jul_2001
tollbrothers 10-Q_jul_2001finance50
 
Zur Zukunft der hessischen Schulbibliotheken
Zur Zukunft der hessischen SchulbibliothekenZur Zukunft der hessischen Schulbibliotheken
Zur Zukunft der hessischen SchulbibliothekenGuenter K. Schlamp
 
tollbrothers 10-Q_apr_2005
 tollbrothers   10-Q_apr_2005 tollbrothers   10-Q_apr_2005
tollbrothers 10-Q_apr_2005finance50
 
Eduardo Mateus E Hugo Augusto
Eduardo Mateus E Hugo AugustoEduardo Mateus E Hugo Augusto
Eduardo Mateus E Hugo Augustofrancibondan
 
Mpp01 512 R0203 V
Mpp01 512 R0203 VMpp01 512 R0203 V
Mpp01 512 R0203 Vhsplastic
 
jbt_equity_roadshow
jbt_equity_roadshowjbt_equity_roadshow
jbt_equity_roadshowfinance50
 
Segunda revolucao industrial
Segunda revolucao industrialSegunda revolucao industrial
Segunda revolucao industrialmonica10
 
scana Presentation-Q4-2008_tcm10-227202
scana  Presentation-Q4-2008_tcm10-227202scana  Presentation-Q4-2008_tcm10-227202
scana Presentation-Q4-2008_tcm10-227202finance50
 
Thayanne Torquato & Debora Torres
Thayanne Torquato & Debora TorresThayanne Torquato & Debora Torres
Thayanne Torquato & Debora Torresfrancibondan
 
Stefania Boleso e Monica Massola Riflessioni in corso: #donnexdonne, Rete e...
Stefania Boleso e Monica   Massola Riflessioni in corso: #donnexdonne, Rete e...Stefania Boleso e Monica   Massola Riflessioni in corso: #donnexdonne, Rete e...
Stefania Boleso e Monica Massola Riflessioni in corso: #donnexdonne, Rete e...GGDBologna
 
180107 Ban Tin Kinh Doanh & Thuong Mai
180107 Ban Tin Kinh Doanh & Thuong Mai180107 Ban Tin Kinh Doanh & Thuong Mai
180107 Ban Tin Kinh Doanh & Thuong Maihsplastic
 

Destacado (20)

Samuel
SamuelSamuel
Samuel
 
Met Sociale Media naar de beurs - Exhibitions Academy
Met Sociale Media naar de beurs - Exhibitions AcademyMet Sociale Media naar de beurs - Exhibitions Academy
Met Sociale Media naar de beurs - Exhibitions Academy
 
summary
summarysummary
summary
 
New Booking Bilbao Instituto Hemingway
New Booking Bilbao Instituto HemingwayNew Booking Bilbao Instituto Hemingway
New Booking Bilbao Instituto Hemingway
 
Trees matter amazon
Trees matter amazonTrees matter amazon
Trees matter amazon
 
Boy deconstructed
Boy deconstructedBoy deconstructed
Boy deconstructed
 
tollbrothers 10-Q_jul_2003
 tollbrothers   10-Q_jul_2003 tollbrothers   10-Q_jul_2003
tollbrothers 10-Q_jul_2003
 
fmc technologies 2006ar
fmc technologies 2006arfmc technologies 2006ar
fmc technologies 2006ar
 
tollbrothers 10-Q_jul_2001
 tollbrothers   10-Q_jul_2001 tollbrothers   10-Q_jul_2001
tollbrothers 10-Q_jul_2001
 
Zur Zukunft der hessischen Schulbibliotheken
Zur Zukunft der hessischen SchulbibliothekenZur Zukunft der hessischen Schulbibliotheken
Zur Zukunft der hessischen Schulbibliotheken
 
tollbrothers 10-Q_apr_2005
 tollbrothers   10-Q_apr_2005 tollbrothers   10-Q_apr_2005
tollbrothers 10-Q_apr_2005
 
Eduardo Mateus E Hugo Augusto
Eduardo Mateus E Hugo AugustoEduardo Mateus E Hugo Augusto
Eduardo Mateus E Hugo Augusto
 
Sofia 6 A
Sofia   6 ASofia   6 A
Sofia 6 A
 
Mpp01 512 R0203 V
Mpp01 512 R0203 VMpp01 512 R0203 V
Mpp01 512 R0203 V
 
jbt_equity_roadshow
jbt_equity_roadshowjbt_equity_roadshow
jbt_equity_roadshow
 
Segunda revolucao industrial
Segunda revolucao industrialSegunda revolucao industrial
Segunda revolucao industrial
 
scana Presentation-Q4-2008_tcm10-227202
scana  Presentation-Q4-2008_tcm10-227202scana  Presentation-Q4-2008_tcm10-227202
scana Presentation-Q4-2008_tcm10-227202
 
Thayanne Torquato & Debora Torres
Thayanne Torquato & Debora TorresThayanne Torquato & Debora Torres
Thayanne Torquato & Debora Torres
 
Stefania Boleso e Monica Massola Riflessioni in corso: #donnexdonne, Rete e...
Stefania Boleso e Monica   Massola Riflessioni in corso: #donnexdonne, Rete e...Stefania Boleso e Monica   Massola Riflessioni in corso: #donnexdonne, Rete e...
Stefania Boleso e Monica Massola Riflessioni in corso: #donnexdonne, Rete e...
 
180107 Ban Tin Kinh Doanh & Thuong Mai
180107 Ban Tin Kinh Doanh & Thuong Mai180107 Ban Tin Kinh Doanh & Thuong Mai
180107 Ban Tin Kinh Doanh & Thuong Mai
 

Similar a 海量日志分析系统实践,Dba

从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰Scourgen Hong
 
腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向George Ang
 
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践mysqlops
 
腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向topgeek
 
腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向areyouok
 
高性能LAMP程序设计
高性能LAMP程序设计高性能LAMP程序设计
高性能LAMP程序设计fuchaoqun
 
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...acelyc1112009
 
Lamp优化实践
Lamp优化实践Lamp优化实践
Lamp优化实践zhliji2
 
Accelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud eraAccelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud eraJunchi Zhang
 
Ocean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in chinaOcean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in chinaknuthocean
 
Large-Scale Cluster Mangement & Kubernetes Under The Hood
Large-Scale Cluster Mangement & Kubernetes Under The HoodLarge-Scale Cluster Mangement & Kubernetes Under The Hood
Large-Scale Cluster Mangement & Kubernetes Under The HoodLei (Harry) Zhang
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲84zhu
 
鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobao鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobaoterryice
 
Mysql handlersocket
Mysql handlersocketMysql handlersocket
Mysql handlersocketpwesh
 
前端性能优化和自动化
前端性能优化和自动化前端性能优化和自动化
前端性能优化和自动化kaven yan
 
如何使用 Xhprof 分析網站效能 (真實案例2)
如何使用 Xhprof 分析網站效能 (真實案例2)如何使用 Xhprof 分析網站效能 (真實案例2)
如何使用 Xhprof 分析網站效能 (真實案例2)Cyril Wang
 
阿里云技术实践
阿里云技术实践阿里云技术实践
阿里云技术实践drewz lin
 
数据库极限性能测试
数据库极限性能测试数据库极限性能测试
数据库极限性能测试helbreathszw
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at TaobaoJoshua Zhu
 

Similar a 海量日志分析系统实践,Dba (20)

从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
 
腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向
 
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
 
腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向
 
腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向
 
Java@taobao
Java@taobaoJava@taobao
Java@taobao
 
高性能LAMP程序设计
高性能LAMP程序设计高性能LAMP程序设计
高性能LAMP程序设计
 
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
 
Lamp优化实践
Lamp优化实践Lamp优化实践
Lamp优化实践
 
Accelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud eraAccelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud era
 
Ocean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in chinaOcean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in china
 
Large-Scale Cluster Mangement & Kubernetes Under The Hood
Large-Scale Cluster Mangement & Kubernetes Under The HoodLarge-Scale Cluster Mangement & Kubernetes Under The Hood
Large-Scale Cluster Mangement & Kubernetes Under The Hood
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobao鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobao
 
Mysql handlersocket
Mysql handlersocketMysql handlersocket
Mysql handlersocket
 
前端性能优化和自动化
前端性能优化和自动化前端性能优化和自动化
前端性能优化和自动化
 
如何使用 Xhprof 分析網站效能 (真實案例2)
如何使用 Xhprof 分析網站效能 (真實案例2)如何使用 Xhprof 分析網站效能 (真實案例2)
如何使用 Xhprof 分析網站效能 (真實案例2)
 
阿里云技术实践
阿里云技术实践阿里云技术实践
阿里云技术实践
 
数据库极限性能测试
数据库极限性能测试数据库极限性能测试
数据库极限性能测试
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 

Más de Cevin Cheung

Mvc架构在discuz!插件开发的应用 wps create_msoffice_check
Mvc架构在discuz!插件开发的应用 wps create_msoffice_checkMvc架构在discuz!插件开发的应用 wps create_msoffice_check
Mvc架构在discuz!插件开发的应用 wps create_msoffice_checkCevin Cheung
 
淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统Cevin Cheung
 
淘宝网架构:解密淘宝网的开源架构
淘宝网架构:解密淘宝网的开源架构淘宝网架构:解密淘宝网的开源架构
淘宝网架构:解密淘宝网的开源架构Cevin Cheung
 
Timyang新浪微博设计谈
Timyang新浪微博设计谈Timyang新浪微博设计谈
Timyang新浪微博设计谈Cevin Cheung
 
Mongodbinaction 100122230824-phpapp01
Mongodbinaction 100122230824-phpapp01Mongodbinaction 100122230824-phpapp01
Mongodbinaction 100122230824-phpapp01Cevin Cheung
 
My Sql优化(2009 08 28 系统架构师大会)
My Sql优化(2009 08 28 系统架构师大会)My Sql优化(2009 08 28 系统架构师大会)
My Sql优化(2009 08 28 系统架构师大会)Cevin Cheung
 

Más de Cevin Cheung (7)

Mvc架构在discuz!插件开发的应用 wps create_msoffice_check
Mvc架构在discuz!插件开发的应用 wps create_msoffice_checkMvc架构在discuz!插件开发的应用 wps create_msoffice_check
Mvc架构在discuz!插件开发的应用 wps create_msoffice_check
 
淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统
 
淘宝网架构:解密淘宝网的开源架构
淘宝网架构:解密淘宝网的开源架构淘宝网架构:解密淘宝网的开源架构
淘宝网架构:解密淘宝网的开源架构
 
Web缓存加速
Web缓存加速Web缓存加速
Web缓存加速
 
Timyang新浪微博设计谈
Timyang新浪微博设计谈Timyang新浪微博设计谈
Timyang新浪微博设计谈
 
Mongodbinaction 100122230824-phpapp01
Mongodbinaction 100122230824-phpapp01Mongodbinaction 100122230824-phpapp01
Mongodbinaction 100122230824-phpapp01
 
My Sql优化(2009 08 28 系统架构师大会)
My Sql优化(2009 08 28 系统架构师大会)My Sql优化(2009 08 28 系统架构师大会)
My Sql优化(2009 08 28 系统架构师大会)
 

海量日志分析系统实践,Dba

  • 1. 基于 MySql 的日志分析系统设计                              漆兴 [email_address]
  • 2.
  • 3.
  • 4.
  • 8.
  • 10. 采集节点 功能:负责推送日志到 B 点 实现过程:利用 Rsync 实现推送,以接口方式访问 M 点获取 Rsync 的目标地址 动作:在每五分钟内切割完日志并推送。每小时获取 M 点更新的配置完成自更新 数据格式:压缩后的统一规范定义的标准日志格式
  • 11. 运算节点 功能:根据需求分析日志并推送到 D 点 运算机制:逐行分析日志 + 多进程 工具 : 使用 FaceBook 的 HipHop 加快运算速度 频率:每两分钟调度分析脚本 分析结果:保存为文本,格式为 sql 语句。如 insert into table values ( ),( ),( )
  • 12. Relay 点 存在的意义 : 保障数据传输的速度及效率,减少网络问题导致的数据阻塞及不完整性 问题重现 : 电信和网通之间的互相访问问题,导致日志传输丢失或不能在规定时间内到达指定节点 解决方法 : 电信服务器访问电信,网通服务器则访问网通
  • 13. 数据节点 功能:负责将接收到的 sql 文本入库 动作:在每两分钟运行入库脚本。每天定时创建分钟表 (m_ 表 ) ,每小时将分钟表中过去一小时的数据聚合 , 即 h_ 表,每天聚合前一天的小时表数据,即天表 d_ ,以及触发器及存储过程的调用。将最近三天的分钟表,最近三个月的小时表,定义为热数据,并定期创建为 merge 类型,方便程序的编写。
  • 14. 展示节点 数据访问接口 : 通过增加数据中心层来封装对数据库及缓存等数据的读取,方便程序员编写代码,减少业务逻辑 数据库代理 :Amoeba 展示方式 : 图形 + 报表 +Flash 使用工具 : Mysql5.1+Php5.3+Amoeba+Fushionchart+Apache +Memcache 等
  • 15. 管理节点 功能 : 掌握各大节点的系统运行状况,资源使用情况 任务列表 : 负责管理调度系统其他节点 , 管理各节点的 Rsync 地址,分析 B 点的运算结果,健康检查,日志传送数据的完整性及过期信息处理等工作 工具 :Gearman 好处 :Gearman 使任务的分发变的更加灵活,避免登录多个节点获取信息,提高运维效率 , 方便多服务器管理 。
  • 16. Gearman 介绍 Gearman 流 : Client: 请求的发起者 Job: 请求调度人,负责把 Client 的请求转发给相关的 Worker Worker: 请求的处理人,
  • 17. Gearman 实例 具体实例 : 在各大分析点起守护进程 worker.php 监听指定的端口 在 M 点命令行下运行 client.php cmd 来执行各种工作 cmd 相关安全性检查
  • 18.
  • 19. 数据节点 - 展示相关 表引擎 : 使用 MyISAM,Memory 表操作 : 多为 insert ,无 delete ,update Query 分析 :Select 操作及 sum,avg,group by ,order by,limit Where 定向 : 多为时间粒度及产品线等多角度混合查询。 时间粒度 : 最近五分钟 , 最近一小时,最近 25 小时等 查询条件 : 按产品线 , 运营商,城市,机房,服务器
  • 20. 数据节点—表的设计 考虑到需求上涉及到的操作时间相关 , 如最近五分钟,最近一天,最近一小时等 , 从数据库中读取的数据大且更新频繁,所以采用按时间拆表及对时间建立索引的方案 , 使用引擎 MyISAM 具体如下 : 1. 对各种时间粒度建立索引应对复杂的组合查询,按天,小时,每五分钟 ( 一天 288 个点 ) 建立索引。采用整形如选择 2010 年 04 月 03 的 128 个五分钟 ,where minf=20100403128, 这种方式虽然增大了字段长度,但是对索引的查找及索引的基数的扩大都是有帮助的,属于用空间换时间。 2. 使用分区特性,在每天建立的 m_ 分钟表中按小时建子分区 3 ,在 MyISAM 表中尽量使用定长类型
  • 21. 数据节点—表的设计续 4. 将 IP 字段存储为整形 5. 大数据量表按时间拆表 6. 规范表命名 m_20100317_www_top_refere,h_,d_ 7. 使用 merge 表 8. 对于过期的只读表进行 myisampack 9. 使用 enum 使 PROCEDURE ANALYSE() 10. 根据业务需求将产品线及时间建立联合索引
  • 22.
  • 23. 数据节点的优化—单 D 点的优化 瓶颈 : 磁盘 IO 优化方式 : 初期 : 1. 将 m,h,d 表的索引文件及数据文件分布到不同磁盘 2. 将数据库指向不同的磁盘 3. 禁止系统更新文件的 atime 属性
  • 24. 数据节点的优化—单 D 点的优化 瓶颈 : 磁盘 IO 是主要问题 优化方式 : 硬件升级 后期 : 操作系统及文件系统调优 raid0 或 lvm 条带化 修改相关 mysql 参数 sql 语句的慢查询分析及索引调优
  • 25. 数据节点的优化—单 D 点性能分析 没优化前 : 负载比较高,时常会超过 10 , CPU Idle 经常会小于 30% ,有时 Idle 为 0 , CPU io wait 比较大 优化后 : CPU 的负载降了一半左右,同时磁盘写入性能比之前提升了一倍之多
  • 26.
  • 27. 数据节点的优化— infobright 使用 1. 采用开源 ICE 版进行相关日志分析 2. 将涉及到跨天及跨小时的非实时数据,导入到 infobright 3. 充分利用列数据的特点,提搞了 select 速度及减少了预处理的量,和相关统计报表工作 4. 效果 : 千万级表,包含 sum,group by,order by 操作 ICE 比 MyISAM 快几倍
  • 28. 数据节点的优化— infobright 特点 列存储 适合范围查询及群组操作,查询高效 服务形式及接口跟 mysql 一样,学习成本低 高压缩比列,减少磁盘空间 无需建索引,避免索引的维护及增长问题 缺点: ICE 版无 DML 操作,但支持 load data infile
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. 数据节点的优化—多 D 点的架构 展现层向 Proxy 发起 Query 请求, Proxy 将请求分发到多个 DB ,然后将结果合并后返回 当单个 Proxy 负载过高的时候,可以启用多个 Proxy ,展现层通过简单的取模来连接不同的 Proxy
  • 34. 数据节点的优化—多 D 点的设计 启用多个 D 点 ( 比如分静态池和动态池 ) ,单独产品线的从某个 D 点取数据,跨产品线的时候从多个 D 点取数据并进行合并。测试了如下方案 : 1. 基于 php5.3 的 Mysqlnd 2.Ameoba
  • 35. 多 D 点方案测试 :mysqlnd 如图 :mysqlnd 少了从 mysql 驱动中复制数据到 php 扩展这一步。 更亮的特点是 : 异步获取数据的能力
  • 36. 多 D 点方案测试 :mysqlnd 吸引力 : 除了性能上的提升 ,mysqlnd 支持异步获取数据 困难 : 需要改动应用层的取数据函数,因为之前这部分代码不统一,所以需要改动不少 从测试来看,异步取多个数据库的结果时,可能会出现返回数据不正确,以及执行顺序错误等状况 ( 怀疑是和 Apache 在一起使用的问题, CLI 下正常 )
  • 37. 多 D 点方案测试 :Amoeba Amoeba 测试结果 : 支持高可用性,负载均衡。 对多数据库读取的结果只是分别执行然后直接拼接   高并发情况下,有时会出现到 Amoeba 的连接无响应 高版本下高并发的性能表现已经改善不少
  • 38. 数据节点的优化—结果 通过上面几个方案的测试 , 架构调整选择 Amoeba Proxy 是目前比较合适的方案,数据切分可以通过 XML 灵活配置,对应用层的改动比较小,也相对比较稳定 . 由于磁盘做 radio0 ,对数据的保护不够,所以要加入备份的考虑及产品线增多后数据缓存的利用率
  • 39.
  • 41. 数据点的优化— Memacahe 应用 memcache 有 1m 限制。如果列表太大 , 采取拆分数据,用 key+ 特殊标识来保存整个序列。在获取的时候批量 get 来一次性得到这个列表。 预处理 : 提前生成需求数据到 cache 中 写库 : 进行数据的预处理 , 写入到 memcache 服务器中 读库 : 根据时间选择应该已在 cache 中的数据 + 最近生成的数据 拼成最新数据展现 缺点 : 维护多个存储操作增加了应用层逻辑复杂度 优点 : 减少从数据库读取海量数据的问题及避免重复计算
  • 42. 数据节点的优化— Memache 应用优化 Memcache 自重启 deamon tools 监控程序,让其在挂掉时重启 开启数据压缩功能 $memcache>setCompressThreshold 根据数据量大小修改 slab 及 factor 的值提高内存利用率 使用类似 get_multi 方法发送请求 减少客户端和服务端的通信
  • 43.
  • 44.

Notas del editor

  1. 优化是一项长期而艰巨的任务,不是一天两天,三言两语,一次讲座就能解决得了的。需要长期关注整个系统的表现和趋势而决定。
  2. 优化是一项长期而艰巨的任务,不是一天两天,三言两语,一次讲座就能解决得了的。需要长期关注整个系统的表现和趋势而决定。
  3. 有些选项是每个线程分配的,需要注意不能设置太大 innodb log buffer size 不宜设置过大,如果事务量相对较大可以考虑稍微大点 mysql 自身的 query cache 效率一般,可以采用 memcached 来补充
  4. 有些选项是每个线程分配的,需要注意不能设置太大 innodb log buffer size 不宜设置过大,如果事务量相对较大可以考虑稍微大点 mysql 自身的 query cache 效率一般,可以采用 memcached 来补充