监控一切
来自迪士尼互动媒体集团的Curt Stevens解释了他的团队如何为支撑着迪士尼在线游戏的庞大MongoDB数据库部署监控体系。MongoDB自身的确拥有一套名为Mongo监控系统的工具,但Stevens着重强调称这套工具还不足以解决全部问题。该工具能够随着时间的推移显示各个阶段的流量与性能视图,这一功能帮得上忙,但这个程度的辅助作用只能称得上小儿科。
▲迪士尼互动媒体集团Curt Stevens
一旦发现问题,我们就必须“像CSI(即罪案现场调查)那样对数据进行全面检测”,以掌握究竟面对的是何种潜在麻烦。他同时解释道,有时候还需要对实例加以拆分进而得出正确结论。而有时候代码本身也可能成为错误的根源。Stevens补充说,有一回他们发现了某个性能表现异常低劣的应用程序中根本不存在数据库问题,事实上影响效果的罪魁祸首是由于两个数据中心间的距离过远而引发的广域网络状态低下。
当然,如果大家所管理的是一套规模巨大的系统时,光是监控也不足以让人高枕无忧,Stevens说道。我们必须部署完善的报警机制,让自己在问题出现时能马上得到提醒,并立即开展监控工作。如果MMS(即多媒体短信服务)或者其它一些高效监控工具在紧要关头发生故障,那么就在自己以为小朋友们正在欢乐的虚拟迪士尼世界中徜徉时,恐怕某些巨大的损失已经无法挽回了。
拿数据说话
如果大家希望了解什么样的性能与可扩展性需求迫使这些企业转而选择MongoDB并下如此大的心力根据自身情况加以定制,那么下面这份数据汇总应该能说明一些问题:
· Foursquare: 1500万用户;8套生产型MongoDB集群;8类用户数据;12类登录数据;每秒约250次用户数据库更新行为,最大输出数据量为每秒46MB;每秒约80次登录数据库调用行为,最大输出数据量为每秒45MB;每秒高达2500次HTTP查询请求。
· Wordnik:上百亿条文档资料,且每时每刻还有更多内容被添加进来;每天超过2000万次应用编程接口调用;映射层支持每秒35000条记录。
· 迪士尼: 超过1400个MongoDB实例(尽管‘前30个大家基本无暇关注,’Stevens说道);每天通过一个定制的自助服务门户网站添加更多实例并加以测试、彩排并最终让游戏上线。
这三家企业在使用MongoDB过程中所经历的各种困境、磨练以及更多技术细节,可以登陆http://www.10gen.com/presentations。