大型网站性能监测、分析与优化常见问题Q&A

图片描述
@tanwen110 (唐文),曾负责腾讯四大平台之一网络媒体平台的总体运维、运营规划工做;曾任百度T7架构师和百度性能优化TOPIC、百度UAQ、APM平台负责人;畅销书《海量运维、运营规划之道》做者; mmTrix创始人,后并入上市公司高升控股(000971.SZ),出任技术VP。html

在互联网环境日益复杂的今天,性能优化的价值在不断提高。从用户体验到成本,各个方面均可产生收益,尤为在大型项目上这种收益更是呈现指数级的增长;另外一方面,找到与竞争对手的性能差距,也是帮助产品超越对手的重要手段,性能的本质提高将大大助力项目突破难关。前端

图片描述

购买连接:http://item.jd.com/11962556.htmlredis

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: 目前主要有如下两种类型: 一、EUM,End user monitoring,最终用户性能监测。经过在最终用户设备上安装客户端的方式,经过主动监测得到采样的性能数据,Keynote是EUM的鼻祖,国内基调、博睿也属于EUM。

二、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来源于开源中国高手问答活动
图片描述

相关文章
相关标签/搜索