当前位置: 首页 > news >正文

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

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

相关文章:

  • 导数组合的极限
  • JVM的粗略简述
  • jquery 重置表单
  • MyBatis 通过包含的jdbcType类型
  • nginx+tomcat+memcached 集群环境搭建
  • 【ISC安全训练营】挑战价格极限第三天!!![北京]
  • rownum order by
  • UVa712 S-Trees
  • 线程池
  • TYVJ P1020 寻找质因数
  • 疯狂ios讲义之使用CoreLocation定位(4)
  • 前进的方向不一定都是对的,但是探索本身无法改变
  • TCP拥塞控制
  • JS 下拉菜单
  • usr/bin/ld: cannot find -lxxx
  • 2017前端实习生面试总结
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Javascript弹出层-初探
  • Laravel核心解读--Facades
  • mysql 5.6 原生Online DDL解析
  • PAT A1120
  • 大主子表关联的性能优化方法
  • 给初学者:JavaScript 中数组操作注意点
  • ------- 计算机网络基础
  • 技术胖1-4季视频复习— (看视频笔记)
  • 聊聊hikari连接池的leakDetectionThreshold
  • 目录与文件属性:编写ls
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 用element的upload组件实现多图片上传和压缩
  • Java数据解析之JSON
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​io --- 处理流的核心工具​
  • ​水经微图Web1.5.0版即将上线
  • !!java web学习笔记(一到五)
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (5)STL算法之复制
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (补)B+树一些思想
  • (二)windows配置JDK环境
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转载)Linux 多线程条件变量同步
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .net core 连接数据库,通过数据库生成Modell
  • .Net IOC框架入门之一 Unity
  • .NET Reactor简单使用教程
  • .Net Winform开发笔记(一)
  • .NET 设计模式初探
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • [ C++ ] STL---string类的模拟实现
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [ 转载 ] SharePoint 资料