5月16日,领秀新硅谷迎来了第三期听云应用性能管理大讲堂,讲堂吸引了来自不同行业近200名小伙伴前来参加,同时还有300多位同学通过网络观看了沙龙全过程,现场气氛火爆非常,而鸟哥(惠新宸)的出场更是将大讲堂的气氛推向更高峰。
移动互联网时代来临,如何进行架构的演进?如何进行性能的优化?如何判断代码执行效率与性能瓶颈定位?这些都是困扰着开发者种种问题。本次应用性能管理大讲堂,鸟哥连同听云、链家网、58同城的技术大牛们为大家带来他们在性能优化上最权威的成果和经验。
链家网:存储系统演化
大讲堂上来便是十足干货,来自链家网系统工程师尹吉峰为了大家带来了链家网存储系统演变的过程,从最开始的需求到过程中各种系统的不断尝试再到最后相关性能优化,事无巨细,悉究本末。
尹吉峰提到链家网是房产垂直的网站,有很多房源数据,满足他们需求的图片大多4兆左右,分为大中小类型,服务端有大量优质数据,以及体积很小中间数据和一些语音/视频等大文件。他们期望有一个PB级别无单点,通用文件大小可调配的系统。最开始他们选用轻量级的FASTDFS,但是没有一个真实成功的例子说明FASTDFS可以到PB级别的,经过研究改造以后基本满足需求。
随后尹吉峰讲到底层存储系统的选择。经过对比他们最终选择AWS S3作为存储接口,而在存储方案选型问题上陷入了两难的境地:公有云成本低但安全无法保障;商业解决方案成本高,投入后无法抽身;开源技术方案便宜但是费心。经过权衡他们最终选择了云计算里面最具吸引力认可度最高的Ceph。
Ceph 最佳实践
深入代码级的端到端的应用性能管理
紧接着听云CTO Wood分享的听云端到端应用性能管理(APM)解决方案以及听云APM在应用性能管理上的实践经验与技术也是干货满满。
Wood解释到APM是对软件应用的性能和可用性进行监控和管理,致力于发现和定位性能瓶颈和故障,保证应用达到预期服务水平。而整个应用生命周期,从需求开始到研发到测试再到运营都需要监测。复杂的应用交付链下传统IT运维收到了很大的挑战,而APM自上而下的监控方式为用户、业务、代码、服务以及用户体验提供了保障。只要在可能形成性能瓶颈代码或者可能诱发其他性能问题的位置嵌入尽量简洁的代码就能实现APM。随后Wood为大家演示了听云App以及听云Server的真实用户案例。
听云App一直关注的问题:网络接入(弱网2G/3G,小运营商接入)、机房链路、服务端接口、第三方服务(CDN,推送,云服务)、区域运营商问题(劫持、故障)、终端设备、系统的差异、代码效率(交互卡顿,黑白屏)、代码质量(崩溃,异常,错误)。
听云App用户案例
听云Server关注的问题:应用响应时间、业务性能,吞吏率,成功率、服务性能(SQL,NoSQL,API,外部服务…)、代码效率(追踪,剖析)、代码质量(错误,异常)。
听云Server用户案例
鸟哥惠新宸:性能优化那些事儿
经过现场观众与讲师Q&A互动和短暂的休歇以后,鸟哥(惠新宸)的登场引爆全场。作为国内最有影响力的PHP技术专家,现任新浪微博任平台及数据部总架构师兼首席PHP顾问的鸟哥在编程语言实践与系统架构方面有着丰富的性能优化经验,本次大讲堂鸟哥在性能优化方面的经验给了大家很多启发。
鸟哥提到性能优化是多方面的事,在关注应用性能之前应该先考虑应用的正确性、稳定性和安全性。在确定需要优化以后在去进行,而性能优化也不应该是一个人或者一个团队的事,他告诫大家,永远不要凭主观臆测去优化。性能优化时需要一个标准来衡量优化的过程,同时也需要定出优化步骤和时间段。
随后鸟哥讲到性能优化应该从业务层面到管理层,再往下发展到不同层面,最上面的业务层优化收益往往最大。参与优化的人员每一个人都写日志非常必要的,从系统环境开始入手做优化,首先检查配置有没有问题,再往下是模块合适与否,最后拓展到不同层面上,这个过程一直持续到你满意为止。
最后鸟哥鼓励大家建立一个“系统”去优化你的系统。运维的核心是可视化,把系统中存在的各种问题汇成一个非常可视,非常易于去看的东西,是一件应该提早去做的事。同时,鸟哥也推荐大家使用听云这种优秀的APM产品。
58同城MongoDB到MySQL迁移之路
大讲堂的最后58同城系统架构师孙玄为大家带来当数据量增大和业务并发时遇到的问题及其解决方案以及MongoDB到MySQL迁移方案。
孙玄提到选择MongoDB是因为它方便扩展,拥有较高性能以及丰富的查询支持和自动索引,而在使用方面根据业务的需求做出了不小的调整。接着孙玄为大家分享了MongoDB的部署以及一些实际应用经验。
MongoDB部署介绍
最后孙玄谈到当业务不断增加数据增大时,发现整个性能在下降,在增加内存和硬盘后业务暂时稳定,但并不能完全解决问题。
因为MongoDB进程本身不稳定。最后选择 MongoDB+SSD方式解决问题,决定实施 MongoDB到MySQL迁移方案。迁移时针对两种不同的数据类型采取了不同方案:迁移简单的时效性数据通过双头方式进行迁移,而永久有效的核心数据通过消息队列方式解决数据牵引问题。
至此,第三期听云应用性能管理大讲堂落下帷幕,散场后小伙伴们久久不愿离去,三五成群的将讲师们围住,有问技术问题有问个人问题的也有和讲师拍照留念的,相信本次大讲堂不会只是大家工作生活的一个小小片段,让我们一起期待下一期的到来吧!