@tanwen110 (唐文),曾负责腾讯四大平台之一网络媒体平台的整体运维、运营规划工作;曾任百度T7架构师和百度性能优化TOPIC、百度UAQ、APM平台负责人;畅销书《海量运维、运营规划之道》作者; mmTrix创始人,后并入上市公司高升控股(000971.SZ),出任技术VP。
在互联网环境日益复杂的今天,性能优化的价值在不断提升。从用户体验到成本,各个方面都可产生收益,尤其在大型项目上这种收益更是呈现指数级的增加;另一方面,找到与竞争对手的性能差距,也是帮助产品超越对手的重要手段,性能的本质提升将大大助力项目突破难关。
购买链接:http://item.jd.com/11962556.html
Q:基于rest的微服务,有什么好的监控方案推荐的,最好是对系统影响最小的
A:自定义给agent上报再通过关联关系可视化,前、后期的工作都较多。
Q:网站怎么做好防刷,分布式的多个节点怎么做好监控有啥好的建议不?
A:大一些的企业都有统一的七层接入层,在GSLB与LVS VIP之间,所有请求都会实时分析,同时会根据日常遇见的实际情况做好应对的策略模板,如封禁,清洗,导流等。滞后些的做法是打进来,在日志或逻辑层分析。
Q:对于高性能网站性能优化来说,由于涉及的方面太多太广,该先从哪方面着手呢,有没有什么步骤能做到有的放矢,做的事少而经济效益比较高。
A:前期系统、网络优化收益最大,一劳永逸,所有产品线收益。其次是前端优化,前端决定了渲染内容、结构和逻辑,针对性的优化收益也是非常明显的。但前端跟产品线走,而且产品迭代容易覆盖掉之前的优化收益。后端和移动性能优化需要的时间较长,出成果较慢。
Q:高并发下遇到瓶颈,一直对瓶颈的切入点不好把控,应该从哪方面开始入手呢?
A:导致瓶颈出现的原因很多,架构中的每一层都可能产生瓶颈和性能问题,需要具体问题具体分析。而且每天层和逻辑都存在容量和代码本身的可能。瓶颈定位是一个系统的工程。
Q: 使用 APM(应用性能管理)工具进行系统监控的原理一般是改写原来的字节码程序,植入自己的代码,请问,这种监控方式你推荐吗?这种方式对系统影响有多大
A: 前端JS和后端监测及移动的SDK、语言类的SDK是侵入式的,都会产生一定的副作用,通常可以抽样来减少这部分副作用。JS类的一般在150~200ms左右,语言类的要看具体的逻辑和访问量。
Q: 大型网站上,一般通过什么方式监控性能的?
A: 用户端主要是PC真机监测、PC JS监测,都属于真实用户监测。移动Web App使用JS监测,移动Native App使用SDK的方式。以上两类监测数据都较完整;有损失的监测还有在七层统一的接入也可以做请求到后端及后端返回数据的相关监测,后端打点等也是常用的方式。
Q:你好,请问你对分布式系统监控系统的设计时倾向于每个节点独立监控,然后在系统空闲的时候手动搜集;还是建立一个分布式的监控系统实时监控。感觉后者会增加系统复杂度让系统更难维护,但是前者会让搜集数据过少。如何权衡呢?谢谢
A:看企业所处的阶段,早期和小规模用前者,成长型企业用分布式。可持续看第二种的价值更大,复杂度、降低复杂度与价值去平衡。
Q:我们做了一个响应式拖拽建站系统,现在有个问题,如何监控每一个站点(域名)的流量情况,所有的http请求,而图片和视频这些资源可能会使用一些CDN的服务。我描述的不是很专业,还请不吝赐教。可以说几个点,我现在没有方向。
A: 因为使用CDN和多站点,多域名。CDN的流量数据在CDN服务商的日志中有才能体现。这两部分数据直接拼接是很困难的。可能根据PV、UV等经验值,从源站上反推。
Q:主要是通过什么进行性能监测的?目前觉得大型网站合理利用缓存很重要。
A: 目前主要有以下两种类型: 1、EUM,End user monitoring,最终用户性能监测。通过在最终用户设备上安装客户端的方式,通过主动监测获得采样的性能数据,Keynote是EUM的鼻祖,国内基调、博睿也属于EUM。
2、RUM,Real user monitoring ,真实用户性能监测。通过嵌码的方式获得全用户真实性能数据。嵌码方式分三种:网页嵌JS、移动APP嵌SDK、服务器端嵌代理。Newrelic和Appdynamics都支持这三种方式,国内基调、OneAPM也基本支持这三种方式。
Q: 您认为在未来随着固态硬盘等硬件成本降低、类redis内存数据库或cdn等缓存技术的发展,给性能测试的挑战是什么,我们是更应该着手架构还是代码逻辑还是其他方面?谢谢!
A: 硬件和缓存会影响后端的性能,性能是一个复杂的够成,往往用户端、终端产品形态,前端、网络是性能的重灾区。第二个问题,推荐从用户侧做性能优化更容易出收益,后端的优化代价和门槛都较高。
Q: 对APM服务有啥好的建议,包括选择,推荐
A: 首先需要理解各厂商和开源项目的原理,每家特点及技术团队的背景都不同,再结合多家优点解决面临的问题。目前国内、国外排前的厂商在网上也容易找到。如果是互联网企业,TO C类业务,我推荐用JS监测,PC、移动都容易上手,上线就有数据。
Q: 你好,之前在站点运营中常遇到“以空间换时间”的情况 比如加内存 升配置 加宽带 请教一些比较经济适用的方法 (其实程序的成本也是很高的,优化程序需要时间,程序只能说按照各框架规则写出常规的程序)虽然之前那些做法省去了开发成本 但无疑是增加了运营成本维护成本
A: 带宽的发生主要是前端内容,这里决定了主要成本,访问日志中可以分析出TOP带宽消耗的元素,针对带宽大户进行优化就好,性能和成本双重收益。后端升硬件配置,在时间和人力及不确定性的情况与没有选择的,但与架构、代码并行优化也是需要的。
本集Q&A来源于开源中国高手问答活动