[CTO札记]Twitter系统运维经验(转)

简介:
最近看到的另外一个介绍Twitter技术的视频[ Slides] [ Video (GFWed)],这是Twitter的John Adams在 Velocity 2009的一个演讲,主要介绍了Twitter在系统运维方面一些经验。 本文大部分整理的观点都在Twitter(@ xmpp)上发过,这里全部整理出来并补充完整。
Twitter没有自己的硬件,都是由NTTA来提供,同时NTTA负责硬件相关的网络、带宽、负载均衡等业务,Twitter operations team 只关注核心的业务,包括
  • 》Performance,
  • 》Availability,
  • 》Capacity Planning(容量规划),
  • 》配置管理
等,这个可能跟国内一般的互联网公司有所区别。
一. 运维经验
* Metrics
Twitter的监控后台几乎都是图表(critical metrics),类似驾驶室的转速表,时速表,让操作者可以迅速的了解系统当前的运作状态。联想到我们做的类似监控后台,数据很多,但往往还需要浏览者做二次分析判断,像这样满屏都是图表的方法做得还不够,可以学习下这方面经验。
据John介绍,可以从图表上看到系统的瓶颈-系统最弱的环节(web, mq, cache, db?);根据图表可以科学的制定系统容量规划,而不是事后救火。
 
* 配置管理
每个系统都需要一个自动配置管理系统,越早越好,这条一整理发到Twitter上去之后引起很多回应。
* Darkmode
配置界面可以enable/disable 高计算消耗或高I/O的功能,也相当于优雅降级,系统压力过大时取消一些非核心但消耗资源大的功能。
* 进程管理
Twitter做了一个”Seppaku” patch, 就是将Daemon在完成了n个requests之后主动kill掉,以保持健康的low memory状态,这种做法据了解国内也有不少公司是这样做。
* 硬件
Twitter将CPU由AMD换成Xeon之后,获得30%性能提升,将CPU由双核/4核换成8核之后,减少了40%的CPU, 不过John也说,这种升级不适合自己购买硬件的公司。
二. 代码协同经验
* Review制度
Twitter有上百个模块,如果没有一个好的制度,容易引起代码修改冲突,并把问题带给最终用户,的source code review制度, 如果提交的代码的svn comment没有”reviewed by xxx”, 则pre-commit脚本会让提交失败, review过的代码提交后会通过自动配置管理系统应用到上百台服务器上。 有@xiaomics同学在Twitter上马上就问,时间成本能否接受?如果有紧急功能怎么办?个人认为紧急修改时有两人在场,一人修改一人review也不是什么难事。
* 部署管理
从部署图表可以看到每个发布版本的CPU及latency变化,如果某个新版本latency图表有明显的向上跳跃,则说明该发布版本存在问题。另外在监控首页列出各个模块最后deploy版本的时间,可以清楚的看到代码库的现状。
* 团队沟通
Campfire来协同工作,campfire有点像群,但是更适合协同工作。对于Campfire就不做更多介绍,可参考 Campfire官方说明。
 
三. Cache
  • Memcache key hash, 使用FNV hash 代替 MD5 hash,因为FNV更快。
  • 开发了Cache Money plugin(Ruby), 给应用程序提供read-through, write-through cache, 就像一个db访问的钩子,当读写数据库的时候会自动更新cache, 避免了繁琐的cache更新代码。
  • “Evictions make the cache unreliable for important configuration data”,Twitter使用memcache的一条经验是,不同类型的数据需放在不同的mc,避免eviction,跟作者前文Memcached数据被踢(evictions>0)现象分析中的一些经验一致。
  • Memcached SEGVs, Memcached崩溃(cold cache problem)据称会给这种高度依赖Cache的Web 2.0系统带来灾难,不知道Twitter具体怎么解决。
  • 在Web层Twitter使用了Varnish作为反向代理,并对其评价较高。



















本文转自DavyYew 51CTO博客,原文链接:http://blog.51cto.com/davyyew/241744 ,如需转载请自行联系原作者

相关文章
|
10月前
|
数据采集 运维 数据可视化
AR 运维系统与 MES、EMA、IoT 系统的融合架构与实践
AR运维系统融合IoT、EMA、MES数据,构建“感知-分析-决策-执行”闭环。通过AR终端实现设备数据可视化,实时呈现温度、工单等信息,提升运维效率与生产可靠性。(238字)
|
10月前
|
传感器 人工智能 运维
AR智慧运维系统介绍
阿法龙XR云平台是一款面向工业领域的增强现实(AR)智能化平台,助力企业实现数字化转型。平台集成智能巡检工作流、远程协助、AI视频验收、人脸识别等功能模块,支持AR眼镜与移动终端,提供虚实融合的运维体验。具备高度定制化能力,适配多种工业场景,提升运维效率与智能化水平。
|
11月前
|
数据采集 运维 监控
运维靠经验拍脑袋?不如上车:构建“数据驱动”的智能决策系统
运维靠经验拍脑袋?不如上车:构建“数据驱动”的智能决策系统
306 0
|
12月前
|
人工智能 运维 监控
聚焦“AI+运维”深度融合,龙蜥系统运维联盟 MeetUp 圆满结束
现场 40 多位开发者进行了深入的技术交流,探索 AI 与运维深度融合的未来路径。
|
人工智能 运维 Prometheus
别等系统“炸了”才慌!聊聊AI搞运维故障检测的那些真香时刻
别等系统“炸了”才慌!聊聊AI搞运维故障检测的那些真香时刻
606 0
|
11月前
|
人工智能 运维 Prometheus
运维还要天天盯人值班?现代化运维就该让系统自己跑!
运维还要天天盯人值班?现代化运维就该让系统自己跑!
309 4
|
人工智能 运维 自然语言处理
“AI医生”入驻运维现场:聊聊系统健康检查的新姿势
“AI医生”入驻运维现场:聊聊系统健康检查的新姿势
622 78
|
12月前
|
运维 Prometheus 监控
系统崩了怪运维?别闹了,你该问问有没有自动化!
系统崩了怪运维?别闹了,你该问问有没有自动化!
332 9
|
运维 监控 数据可视化
你以为运维只管系统稳定?不,数据玩得好还能指导老板赚钱!
你以为运维只管系统稳定?不,数据玩得好还能指导老板赚钱!
219 4
|
机器学习/深度学习 人工智能 运维
运维不靠玄学!用AI预测系统负载,谁用谁说香!
运维不靠玄学!用AI预测系统负载,谁用谁说香!
529 18

热门文章

最新文章