2018,换个角度看微服务监控与性能优化

内容来源:2017年5月21日,融数架构师刘地生在“饿了么技术沙龙【第六弹】北京研发中心·Java专场”进行《微服务监控与性能优化》演讲分享。IT 大咖说作为独家视频合作方,经主办方和讲者审阅授权发布。

阅读字数:1585 | 4分钟阅读

获取嘉宾演讲视频及PPT,请点击:http://t.cn/EwQa2j8

摘要

主要介绍分布式监控的基本概念及方法,java技术栈相关监控机制,性能监控、业务监控、异常监控、性能数据分析在融数微服务平台的实践及应用。

微服务监控

微服务长什么样

微服务架构本质是带自身特点的面向服务的分布式架构模式。

微服务架构特征是有更细粒度服务边界,倡导独立开发、测试、部署、扩展等等,更细粒度带来的敏捷提升,以及分布式系统固有的复杂性。

为什么需要监控?

微服务是一个分布式的架构模式,它一直以来都会有一些自身的问题。

首先是问题的定位。当系统发从单个节点扩张到很多节点的时候,如果系统的某个点出现问题,对于我们的运维和开发人员来说,这时的问题定位可能就会变成一个挑战。

其次是当新的业务进来以后,系统能否支持,系统运行的状况又是怎样?还有现在的一些电商要做促销活动,容量规划怎么做?我们可以通过监控手段对系统进行衡量,或者做一个数据支撑。

其它还有就是要理解分布式系统是怎样一个拓扑结构,如何部署,系统之间怎样通信,系统目前是怎样的性能状况,以及出了问题我们要怎么去发现它。

这些都可能是分布式系统需要面对的问题。出现这些问题后,监控就是一个比较常用、有效率的一个手段。

总的来说,监控主要解决的是感知系统的状况。

怎么监控?数据驱动

应用性能、拓扑第三方组件;资源使用;异常堆栈;数据聚合、分析报警;自定义业务。

常用监控手段

开源:Zabbix、ELK、Zipkin、Prometheus;

闭源:Pinpoint 、Newrelic;

或者“撸起袖子自己干”。

Java栈监控机制

命令行工具:Command line tools

代码级工具:Log、SDK、AOP

采集数据并拿到真正关注的指标:Instrument+JMX

JMX机制获取JVM、OS相关数据:

ManagementFactory.getXXXMXBean();

OperatingSystemMXBean

RuntimeMXBean

MemoryMXBean

ThreadMXBean

Collection<GarbageCollectorMXBean>

实践及优化

微服务实践

思路:围绕微服务的开发、部署、调用、通信、业务处理过程。

在开发部署方面,我们构建了一个完整的工具链,通过插件机制把整个系统的初始化环境和代码结构构建起来。

调用的时候对于普通用户来说,并不想介入太多特定框架。最好是环境透明初始化,接近开箱即用的状态。

分布式框架意味着有一个跨进程的调用和数据的传输等问题需要解决。如果每次调用都重新进行连接,从性能角度来说可能不太友好。长连接可以解决一部分问题,但假如通信数据很庞大,还会涉及到数据的压缩以及事件异步。

在使用过程中尽量做到框架透明,减少或消除依赖。

运维监控接入整合监控平台。

监控采集端实践

思路:在有限资源内实现高效。

我们不希望为了监控而引入很多源码,所以使用了Instrument和JMX机制。我们需要实时控制它,所以要让它可配置化。

我们在高性能方面会做一个考量,比如限制它线程数量的大小等等。频繁采集会对系统产生很严重的影响,我们选择用采样的方式来进行。

换个视角看性能优化

比优化更困难的是发现问题;

没有条件或目标的优化都是耍流氓;

要追求对资源的高效利用。

Java性能优化:针对特定问题的常见代码优化

文件io操作,IO操作使用buffer。动机:减少内核级调用、减少IO操作、可能减少CPU指令。

多线程环境,幵行、减少锁竞争。动机:解放单线程限制、获取CPU核数带来的计算能力的扩展。

使用jdkcollection,数据结构指定大小。动机:减少扩容带来的内存占用、及其复制和老数据回收带来的CPU指令。

调整算法。动机:在执行每一次任务时,减少或优化CPU指令。

Java性能优化:jvm调优,时间空间运维的权衡

调整heap大小。动机:应用稳定状态下新生代、老年代、方法区大小。大小的调整进而影响到gc的行为。

更换GC。动机:面向响应时间、吞吐量,终极目标针对CPU。

启停其他特定参数。动机:针对特定场景,如对验尸、逃逸分析、JIT支持。

Java性能优化:jvm调优步骤

根据gc日志计算出应用长期存活对象(老年代、永久代)的大小。

建立heap基准大小(参考建议:基于长期存活对象大小,整堆如果限定为其大小的3-4x。那么新生代为其1~1.5x,老年代为其2-3x,永久代为自身大小的1.5x)。

按目标是针对吞处理、响应时间来调整GC行为。启用相应GC收集器,调整相应新生代、老年代、永久代大小。

按额外需求起停其他参数。

今天的分享就到这里,谢谢大家!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容