-管理沟通那些事儿
摘要:如果说角色认知是管理工作的前提,就像空气一样弥漫在管理者所有的言行举止之中的话,那么管理沟通就恰似管理工作的载体,它就像水一样承载着所有管理工作的正常开展,离开了沟通,所有的工作都将搁浅而无法前行。它是如此重要,以至于我们要花7篇文章来探讨。 今天是第一篇,我们先一起来看看,技术管理者在管理沟通中可
阅读全文
posted @
2020-08-19 10:00
肉松蛋卷
阅读(356)
推荐(0)
17-如何提升员工的个人能力
摘要:首先需要澄清一下:虽然我把个体能力这个要素放在了第一个来讲,而且也反复强调了个体能力是团队战斗力的基础,但是这并不意味着,当你要提升团队战斗力的时候,就必须先从这个要素下手。而应全面review团队建设六大要素,看看从哪个着手对你来说是事半功倍的,就从哪个要素去着手。如果恰好员工个体的工作能力是当务
阅读全文
posted @
2020-08-19 09:58
肉松蛋卷
阅读(1464)
推荐(0)
16-团队建设该从哪里入手
摘要:具体的管理工作,和做一场培训是相通的,都需要有针对性的目标。“群策群力打胜仗”是终极目标,但还是不知道要解决什么问题,于是我接着问他:“你希望通过解决或改善什么问题,来更好地实现‘群策群力打胜仗’这个目标呢?毕竟这是每位管理者的理想,那么具体到你的团队,你希望着手做哪几件事呢?” 他若有所思,然后跟
阅读全文
posted @
2020-08-19 09:57
肉松蛋卷
阅读(300)
推荐(0)
作为技术管理者,我如何保持技术判断力
摘要:转型做管理后,你可以用在技术上的时间会越来越少,尤其是写代码的机会越来越少,手越来越生,但是要做的技术评审和技术决策却有增无减,对技术判断力的要求反而也越来越高。这是因为你的决策产生的影响比之前更大了。 无怪乎会有新经理抱怨说:“技术管理者是有违人性的,一方面自己的技术越来越差,另外一方面却还要带领
阅读全文
posted @
2020-08-19 09:56
肉松蛋卷
阅读(510)
推荐(1)
管理沟通
摘要:管理沟通 管理沟通是技术管理者心中当之无愧的“最具挑战管理主题NO.1”。(我个人觉得这个主题之于其他行业的管理者应该也是一个棘手的挑战吧。) 1. 管理沟通框架图 之于技术管理者,这挑战的主因是确定性和规则性的减弱,不确定性的大幅度上升。为了让管理沟通这事儿不那么“飘逸”,有迹可循,作者从和人沟通
阅读全文
posted @
2020-08-19 09:54
肉松蛋卷
阅读(246)
推荐(0)
管理规划
摘要:管理规划 管理规划,具体该怎么操作呢? 这里可以类比这样一个问题:一辆马车交给你,在驾驶它上路之前,你先做哪件事呢? 那,“驾驶马车”和管理规划就要明确回答了下面这四个问题: 这是辆什么车? VS 你团队是干什么的? 你要把这辆车拉到哪里去? VS 你团队想做出什么成果? 你有哪些马,它们情况如何?
阅读全文
posted @
2020-08-19 09:52
肉松蛋卷
阅读(250)
推荐(0)
团队建设
摘要:如何带好团队呢? 这里依然类比“马车模型”,如何让“马队”跑得动、跑得快、跑得远呢? 可以将“马队”拆解为:“马匹个体”“马匹之间”“马队整体”。那对应地,团队也可拆解为:“员工个体”“员工个体之间”“团队整体”。类比分析后,有如下: 马匹个体:力气+意愿 VS 员工个体:能力+意愿 马匹之间:阵型
阅读全文
posted @
2020-08-19 09:51
肉松蛋卷
阅读(250)
推荐(0)
管理方法论和角色认知
摘要:看到我们可爱的用户有提及做思维导图的需求,所以借此机会我会将整个专栏梳理一遍,并补充相关的脑图,希望能帮助到百忙之中的你。 那接下来你就跟着我一起复习吧! 一、管理方法论 在第35篇《从空降谈管理方法论的积累》中,作者借助“空降”这个话题总结了管理方法论,并勾画出一幅“管理全景图”。我印象很是深刻,
阅读全文
posted @
2020-08-19 09:50
肉松蛋卷
阅读(459)
推荐(0)
压力测试:怎样设计全链路压力测试平台
摘要:一旦你的系统流量有大的增长,比如类似“双十一”的流量,那么你在面临性能问题时就可能会手足无措。为了解决后顾之忧,你需要了解在流量增长若干倍的时候,系统的哪些组件或者服务会成为整体系统的瓶颈点,这时你就需要做一次全链路的压力测试。 那么,什么是压力测试呢?要如何来做全链路的压测呢?这两个问题就是本节课
阅读全文
posted @
2020-08-19 09:48
肉松蛋卷
阅读(589)
推荐(0)
09-数据库优化方案(二):写入数据量增加时,如何实现分库分表
摘要:前一节课,我们学习了在高并发下数据库的一种优化方案:读写分离,它就是依靠主从复制的技术使得数据库实现了数据复制为多份,增强了抵抗大量并发读请求的能力,提升了数据库的查询性能的同时,也提升了数据的安全性。当某一个数据库节点,无论是主库还是从库发生故障时,我们还有其他的节点中存储着全量的数据,保证数据不
阅读全文
posted @
2020-08-19 09:47
肉松蛋卷
阅读(572)
推荐(0)
08-数据库优化方案(一):查询请求增加时,如何做主从分离
摘要:节课,我们用池化技术解决了数据库连接复用的问题,这时,你的垂直电商系统虽然整体架构上没有变化,但是和数据库交互的过程有了变化,在你的Web工程和数据库之间增加了数据库连接池,减少了频繁创建连接的成本,从上节课的测试来看性能上可以提升80%。现在的架构图如下所示: 此时,你的数据库还是单机部署,依据一
阅读全文
posted @
2020-08-19 09:44
肉松蛋卷
阅读(286)
推荐(0)
07-池化技术:如何减少频繁创建数据库连接的性能损耗
摘要:那么从这一讲开始,我们正式进入演进篇,我会再从局部出发,带你逐一了解完成这些目标会使用到的一些方法,这些方法会针对性地解决高并发系统设计中出现的问题。比如,在15讲中我会提及布隆过滤器,这个组件就是为了解决存在大量缓存穿透的情况下,如何尽量提升缓存命中率的问题。 当然,单纯地讲解理论,讲解方案会比较
阅读全文
posted @
2020-08-19 09:41
肉松蛋卷
阅读(448)
推荐(0)
系统设计目标(二):系统怎样做到高可用
摘要:高可用性(High Availability,HA)是你在系统设计时经常会听到的一个名词,它指的是系统具备较高的无故障运行的能力。 我们在很多开源组件的文档中看到的HA方案就是提升组件可用性,让系统免于宕机无法服务的方案。比如,你知道Hadoop 1.0中的NameNode是单点的,一旦发生故障则整
阅读全文
posted @
2020-08-19 09:39
肉松蛋卷
阅读(691)
推荐(0)
03-系统设计目标(一):如何提升系统性能
摘要:高并发系统设计的三大目标:高性能、高可用、可扩展 高并发,是指运用设计手段让系统能够处理更多的用户并发请求,也就是承担更大的流量。它是一切架构设计的背景和前提,脱离了它去谈性能和可用性是没有意义的。很显然嘛,你在每秒一次请求和每秒一万次请求,两种不同的场景下,分别做到毫秒级响应时间和五个九(99.9
阅读全文
posted @
2020-08-19 09:37
肉松蛋卷
阅读(504)
推荐(0)
架构分层:我们为什么一定要这么做
摘要:什么是分层架构 软件架构分层在软件工程中是一种常见的设计方式,它是将整体系统拆分成N个层次,每个层次有独立的职责,多个层次协同提供完整的功能。 我们在刚刚成为程序员的时候,会被“教育”说系统的设计要是“MVC”(Model-View-Controller)架构。它将整体的系统分成了Model(模型)
阅读全文
posted @
2020-08-19 09:35
肉松蛋卷
阅读(490)
推荐(0)
高并发系统:它的通用设计方法是什么
摘要:从古至今,长江和黄河流域水患不断,远古时期大禹曾拓宽河道,清除淤沙让流水更加顺畅;都江堰作为史上最成功的的治水案例之一,用引流将岷江之水分流到多个支流中,以分担水流压力;三门峡和葛洲坝通过建造水库将水引入水库先存储起来,然后再想办法把水库中的水缓缓地排出去,以此提高下游的抗洪能力。 而我们在应对高并
阅读全文
posted @
2020-08-19 09:34
肉松蛋卷
阅读(359)
推荐(0)
07-业务敏捷:帮助DevOps快速落地的源动力
摘要:先试想这样一个场景:你们公司内部成立了专项小组,计划用三个月时间验证DevOps落地项目的可行性。当要跟大老板汇报这个事情的时候,作为团队的负责人,你开始发愁,怎么才能将DevOps的价值和业务价值关联起来,以表明DevOps对业务价值的拉动和贡献呢? 如果朝着这个方向思考,就很容易钻进死胡同。因为
阅读全文
posted @
2020-08-19 09:31
肉松蛋卷
阅读(305)
推荐(0)
转型之路:企业实施DevOps的常见路径和问题
摘要:由于种种原因,我曾直接或者间接地参与过一些企业的DevOps转型过程,也跟很多企业的DevOps负责人聊过他们的转型故事。这些企业的转型过程并不是一帆风顺的,在最开始引入DevOps的时候,他们也面临很多普遍的问题,比如企业业务都忙不过来了,根本没有时间和精力投入转型工作之中,或者是企业内部的系统在
阅读全文
posted @
2020-08-19 09:30
肉松蛋卷
阅读(446)
推荐(0)
价值流分析:关于DevOps转型,我们应该从何处入手
摘要:关于“DevOps如何落地”的问题,向来是关注度很高的,所以,从今天开始,我会用16讲的篇幅跟你聊聊这个话题的方方面面。作为“落地实践篇”的第1讲,我先跟你聊聊DevOps转型的那些事儿。 相信你一定听说过持续交付吧?现在,几乎每家实施DevOps的企业都宣称他们已经有了一套持续交付平台,或者是正在
阅读全文
posted @
2020-08-19 09:28
肉松蛋卷
阅读(1208)
推荐(0)
DevOps的衡量:你是否找到了DevOps的实施路线图
摘要:商业领域有一本特别经典的书,叫作《跨越鸿沟》,这本书中提出了一个“技术采纳生命周期定律”,对高科技行业来说,它的地位堪比摩尔定律。 简单来说,这个定律描述了一项新技术从诞生到普及要经历的5个阶段,这5个阶段分别对应一类特殊人群,即创新者、早期使用者、早期大众、晚期大众和落后者。这个定律表明,技术的发
阅读全文
posted @
2020-08-19 09:26
肉松蛋卷
阅读(324)
推荐(0)
DevOps的实施:到底是工具先行还是文化先行
摘要:DevOps工具 随着DevOps理念的深入人心,各种以DevOps命名的工具如雨后春笋般出现在我们身边,甚至有很多老牌工具,为了顺应DevOps时代的发展,主动将产品名称改为DevOps。最具代表性的,就是去年9月份微软研发协作平台VSTS(Visual Studio Team Services)
阅读全文
posted @
2020-08-19 09:25
肉松蛋卷
阅读(380)
推荐(0)
DevOps的价值:数字化转型时代,DevOps是必选项
摘要:我简单介绍一下OKR。OKR也就是目标与关键成果法,是在硅谷互联网公司很流行的绩效制定方法。简单来说,O代表目标,也就是我们要做什么,KR代表关键结果,用于验证我们是否已经达到了目标。 这家金融企业的大老板,也就是科技处的老大,给全体员工制定的众多OKR中,有且只有一条属于愿景指标。说出来你可能不相
阅读全文
posted @
2020-08-19 09:22
肉松蛋卷
阅读(511)
推荐(0)
DevOps的“定义”:DevOps究竟要解决什么问题
摘要:近些年来,DevOps在我们身边出现的频率越来越高了。各种大会上经常出现DevOps专场,行业内的公司纷纷在都招聘DevOps工程师,企业的DevOps转型看起来迫在眉睫,公司内部也要设计和开发DevOps平台……这么看来,DevOps似乎无处不在。 可回过头来想想,关于DevOps,很多问题我们真
阅读全文
posted @
2020-08-19 09:20
肉松蛋卷
阅读(565)
推荐(0)
Jenkins产品经理是如何设计产品的
摘要:2019年是Jenkins诞生15周年,对于任何一个软件来说,15年都不是一个短暂的时间。在这个时间点,社区也在展望过去15年来的Jenkins发展历程,并憧憬下一个15年Jenkins的变化。 可以说,从DevOps产品的角度来说,Jenkins本身就是一个非常出色的典型案例。 最开始,这是一个由
阅读全文
posted @
2020-08-18 15:41
肉松蛋卷
阅读(207)
推荐(0)
关于DevOps组织和文化的那些趣事儿.
摘要:DevOps文化好像是一个矛盾结合体:一方面,文化这种东西似乎只可意会不可言传;另一方面,文化对DevOps实践的重要性又是毋庸置疑的。 在各种行业大会上,关于文化的议题总是屈指可数。原因也很简单,关于文化,一般都说不明白,即便能说明白,也改变不了什么。因为文化的改变可不是像引入一个工具那么简单,很
阅读全文
posted @
2020-08-18 15:40
肉松蛋卷
阅读(244)
推荐(0)
成为DevOps工程师的必备技能(下
摘要:DevOps工程师必备的硬实力 所谓硬实力,说白了就是指一个人的技术能力。软实力通常是“只可意会不可言传”的,但技术本身就具体多了,重要的是,技术水平的高低相对来说也更好衡量。在公司里面,技术人员要想获得晋升,重点就是依靠技术能力。 IT行业覆盖的技术领域非常广,而且近些年的新技术也是层出不穷的,从
阅读全文
posted @
2020-08-18 15:39
肉松蛋卷
阅读(465)
推荐(0)
学习DevOps不得不了解的经典资料
摘要:今天又到了特别放送的环节,在学习交流DevOps的过程中,经常有人会问这样的问题: 我想学习DevOps,可以推荐一些好的书和资源吗? DevOps相关的最新行业案例,我可以在哪里获取呢? 你是怎么知道这么多有趣的故事的呢? 这些问题的“出镜率”特别高,所以,我今天专门来跟你聊聊有关DevOps学习
阅读全文
posted @
2020-08-18 15:36
肉松蛋卷
阅读(686)
推荐(0)
成为DevOps工程师的必备技能(上)
摘要:相信这应该是很多刚开始接触DevOps的同学最关心的问题。毕竟,从实用的角度出发,每个人都希望能够尽快上手实践。所以今天,我来跟你聊聊,我认为的DevOps工程师的必备技能以及学习路径。不过在此之前,我们要先了解DevOps工程师的岗位职责。 全球最大职业社交网站LinkedIn(领英)2018年发
阅读全文
posted @
2020-08-18 15:35
肉松蛋卷
阅读(567)
推荐(0)
57-套路篇:Linux性能工具速查
摘要:我们可以从系统和应用程序两个角度,来进行性能优化。 从系统的角度来说,主要是对 CPU、内存、网络、磁盘 I/O 以及内核软件资源等进行优化。 而从应用程序的角度来说,主要是简化代码、降低 CPU 使用、减少网络请求和磁盘 I/O,并借助缓存、异步处理、多进程和多线程等,提高应用程序的吞吐能力。 性
阅读全文
posted @
2020-08-18 15:32
肉松蛋卷
阅读(191)
推荐(0)
25-基础篇:Linux磁盘IO是怎么工作的(下)
摘要:上一节我们学习了 Linux 磁盘 I/O 的工作原理,并了解了由文件系统层、通用块层和设备层构成的 Linux 存储系统 I/O 栈。 其中,通用块层是 Linux 磁盘 I/O 的核心。向上,它为文件系统和应用程序,提供访问了块设备的标准接口;向下,把各种异构的磁盘设备,抽象为统一的块设备,并会
阅读全文
posted @
2020-08-18 15:29
肉松蛋卷
阅读(226)
推荐(0)
24-基础篇:Linux磁盘IO是怎么工作的(上)
摘要:上一节,我们学习了 Linux 文件系统的工作原理。简单回顾一下,文件系统是对存储设备上的文件,进行组织管理的一种机制。而Linux 在各种文件系统实现上,又抽象了一层虚拟文件系统VFS,它定义了一组,所有文件系统都支持的,数据结构和标准接口。 这样,对应用程序来说,只需要跟 VFS 提供的统一接口
阅读全文
posted @
2020-08-18 15:28
肉松蛋卷
阅读(389)
推荐(1)
23-基础篇:Linux文件系统是怎么工作的
摘要:通过前面CPU和内存模块的学习,我相信,你已经掌握了CPU和内存的性能分析以及优化思路。从这一节开始,我们将进入下一个重要模块——文件系统和磁盘的I/O性能。 同CPU、内存一样,磁盘和文件系统的管理,也是操作系统最核心的功能。 磁盘为系统提供了最基本的持久化存储。 文件系统则在磁盘的基础上,提供了
阅读全文
posted @
2020-08-18 15:26
肉松蛋卷
阅读(250)
推荐(0)
06-案例篇:系统的CPU使用率很高,但为啥却找不到高CPU的应用
摘要:上一节我讲了 CPU 使用率是什么,并通过一个案例教你使用 top、vmstat、pidstat 等工具,排查高 CPU 使用率的进程,然后再使用 perf top 工具,定位应用内部函数的问题。不过就有人留言了,说似乎感觉高 CPU 使用率的问题,还是挺容易排查的。 那是不是所有 CPU 使用率高
阅读全文
posted @
2020-08-18 15:24
肉松蛋卷
阅读(407)
推荐(0)
05-基础篇:某个应用的CPU使用率居然达到100%25,我该怎么办
摘要:通过前两节对平均负载和 CPU 上下文切换的学习,我相信你对 CPU 的性能已经有了初步了解。不过我还是想问一下,在学这个专栏前,你最常用什么指标来描述系统的 CPU 性能呢?我想你的答案,可能不是平均负载,也不是 CPU 上下文切换,而是另一个更直观的指标—— CPU 使用率。 我们前面说过,CP
阅读全文
posted @
2020-08-18 15:23
肉松蛋卷
阅读(453)
推荐(0)
34-服务需求控制管理:每种需求都是必需的吗
摘要:一讲,我们探讨了如何通过提高互联网服务的效率,降低对公司服务容量的要求。今天我们讨论另一个有效手段——互联网服务的内部需求控制管理。 互联网公司内部,往往有很多后端服务,比如Key-Value,也就是键值数据库服务。公司内部对这些后端服务,会有很多使用的需求。需求自然有合理的,也有不是很合理的。我们
阅读全文
posted @
2020-08-18 12:00
肉松蛋卷
阅读(203)
推荐(0)
33-服务效率提升:如何降低公司运营成本
摘要:我们都知道,支持大量用户的互联网公司,通常会部署相当规模的系统容量来运行各种服务。 如果你想要有效地运行业务,就应使业务的容量需求和容量供应尽可能地相等。为什么这么说呢?如果容量供应不能满足需求,那么部分业务将因容量不足,不能部署或扩展。如果容量供应过多,那么公司基础设施的效率就降低了。 服务效
阅读全文
posted @
2020-08-18 11:58
肉松蛋卷
阅读(1021)
推荐(0)
32-服务的容量规划:怎样才能做到有备无患
摘要:今天我们来讨论一下在公司运营方面很重要的容量规划。容量规划,就是根据互联网服务的需求和公司发展目标,而决定容量的供应能力的过程。 光说概念你可能不太明白,不过你可以这么理解,容量规划是为了回答一系列和公司业务运营有关的重要问题而产生的: 单台服务器的最大处理能力是多少? 未来半年公司还会有多少可用容
阅读全文
posted @
2020-08-18 11:56
肉松蛋卷
阅读(453)
推荐(0)
30-服务器的管理和部署:工业界近几年有哪些发展趋势
摘要:说起服务器,你一定不陌生。那你知道Facebook的服务器是什么样的吗?要知道,Facebook同时使用着很多不同的服务器。 在应对需要高速缓存的Facebook新闻、广告投放和搜索时,Facebook使用的是有比较大内存和较强CPU的服务器。现在使用的每台服务器都有256GB的主内存和两个处理器的
阅读全文
posted @
2020-08-18 11:54
肉松蛋卷
阅读(340)
推荐(0)
28-网络数据传输慢,问题到底出在哪了
摘要:一定有过在网页或者手机上下载照片的体验,如果数据传输太慢,那你的体验一定十分糟糕。你看,互联网实体之间的数据快速传输对用户体验至关重要。这里涉及到的其实就是网络传输问题。所以,今天我们就通过生产实践中的案例,来探讨一下互联网服务中的数据传输性能。 说到底,网络传输问题其实就分两种: 数据根本没有传递
阅读全文
posted @
2020-08-18 11:52
肉松蛋卷
阅读(1170)
推荐(0)
25-如何在生产环境中进行真实的容量测试
摘要:从今天开始,我们进入新的模块:性能工程实践。在这一模块中,我会讲述在实际生产环境中应用性能工程的场景、案例。这些场景和案例都是针对大规模互联网服务,是在解决实际性能问题后总结的经验。 今天我要讲的主题是“在生产环境中进行真实场景的压力测试”。这来源于我对LinkedIn公司生产实践的总结。 Link
阅读全文
posted @
2020-08-18 11:49
肉松蛋卷
阅读(578)
推荐(0)
24-跨层案例:如何优化程序、OS和存储系统的交互
摘要:我们前面几讲介绍了性能优化的原则和策略,并且集中探讨了CPU、内存和存储三个最关键的领域。 今天我们来讲一个比较复杂的JVM场景和超大延迟的性能问题;这是本模块,也就是性能优化模块的最后一讲。 我们会一步步地探讨这个性能问题的表象、问题的重现、性能分析的过程和解决方案。这个性能问题的复杂性,表现在它
阅读全文
posted @
2020-08-18 11:48
肉松蛋卷
阅读(326)
推荐(0)
23-存储案例:如何降低SSD峰值延迟
摘要:我们之前讲过,存储系统的性能很关键(参见第17讲)。我们这一讲就探讨存储方面的优化案例,是关于SSD性能的。 现在很多公司里面的高性能存储系统,一般都是基于SSD的,这主要归功于SSD价格在近几年的大幅度下降。但是,SSD也不是包治百病的灵丹妙药,也有自己的特殊性能问题。我们今天就重点讲述两点:SS
阅读全文
posted @
2020-08-18 11:47
肉松蛋卷
阅读(1256)
推荐(0)
22-系统案例:如何提高iTLB(指令地址映射)的命中率
摘要:我们今天继续探讨性能优化的实践,介绍一个系统方面的优化案例。这个案例涉及好几个方面,包括CPU的使用效率、地址映射、运维部署等。 开发项目时,当程序开发完成后,生成的二进制程序需要部署到服务器上并运行。运行这个程序时,我们会不断衡量各种性能指标。而生产实践中,我们经常发现一个问题:是指令地址映射的不
阅读全文
posted @
2020-08-18 11:45
肉松蛋卷
阅读(2106)
推荐(0)
21-CPU案例:如何提高LLC(最后一级缓存)的命中率
摘要:面两讲中,我介绍了性能优化的六大原则和十大策略。从今天开始,我们来通过具体案例的解决方案讲解,了解这些原则和策略是如何应用的。 首先,我们要来探讨的是一个CPU相关的性能优化案例。 这个性能案例,是关于CPU的最后一级缓存的。你应该知道,最后一级缓存(一般也就是L3),如果命中率不高的话,对系统性能
阅读全文
posted @
2020-08-18 11:44
肉松蛋卷
阅读(4932)
推荐(0)
20-性能优化十大策略:如何系统地有层次地优化性能问题
摘要:一讲中,我们聊了性能优化的六大原则。原则有了,但是在针对实际的性能问题的时候,用什么样的解决方案才可以提升性能呢?这就需要你了解具体的优化策略了。 现实中的性能问题和具体领域千差万别,我也不可能面面俱到。但是为了帮助你理解,我总结了十大常用的优化策略。 我将这十大策略分成五个类别,每个类别对应两个相
阅读全文
posted @
2020-08-18 11:42
肉松蛋卷
阅读(1193)
推荐(1)
19-性能优化六大原则:三要三不要,快速有效地进行优化
摘要:今天我们进入了专栏的新模块:性能优化。在这个模块里,我会先从“性能优化的六大原则”开始讲起,然后再为你讲解实践中普遍采用的十个性能优化策略,并且分别针对CPU、系统、存储以及跨层这几个领域,讲讲具体的优化案例。 我们今天先探讨性能优化的原则。在讲具体原则之前,我想先给你讲一个有趣的往事。 我曾经负责
阅读全文
posted @
2020-08-18 11:41
肉松蛋卷
阅读(988)
推荐(0)
18-网络篇:如何步步拆解处理复杂的网络性能问题
摘要:前面几讲,我们讨论了CPU、内存和存储系统的性能。不过你也清楚,各种互联网服务的数据传递终归是需要通过网络来传输的,所以网络性能也是至关重要的。所以,今天我们就来接着学习网络性能相关的内容。 这一讲我的讲解,依然是会逐步递进,先介绍有关网络的几个性能指标,并从单机的网络性能说起,之后推进到数据中心内
阅读全文
posted @
2020-08-18 11:38
肉松蛋卷
阅读(414)
推荐(0)
17-存储篇:如何根据性能优缺点选择最合适的存储系统
摘要:前面两讲我们讨论了CPU和内存,今天我们讨论第三个重要的主题:存储系统。现在是大数据时代,这些数据终归要保存到各种存储系统里面,以供读写和分析,因此讨论存储系统的性能问题就很有必要了。 狭义上的存储往往是硬件,比如磁盘、磁带还有固态硬盘。而广义上的存储系统除了指硬件的硬盘,还包括基于网络的存储系统,
阅读全文
posted @
2020-08-18 11:36
肉松蛋卷
阅读(1110)
推荐(0)
16-内存篇:如何减少延迟提升内存分配效率?
摘要:上一讲我们讨论了关于CPU的性能指标和分析。CPU和内存是和程序性能最相关的两个领域;那么这一讲,我们就来讨论和内存相关的性能指标和性能分析的工具。 内存方面的性能指标,主要有缓存命中率、缓存一致性、内存带宽、内存延迟、内存的使用大小及碎片、内存的分配和回收速度等,接下来我会逐一进行介绍。现代很多C
阅读全文
posted @
2020-08-18 11:34
肉松蛋卷
阅读(4103)
推荐(0)
/15-CPU篇:如何让CPU的运行不受阻碍
摘要:这一讲先来讨论关于CPU的常见性能问题。首先我们从硬件的角度,来看看CPU的性能取决于哪些因素,然后分析一下CPU的内部结构。接着我们探讨和CPU性能相关的软件系统,看看CPU运行时侯的调度和切换。 CPU的性能决定因素 宏观来讲,一台服务器里面的CPU性能取决于好几个因素,包括有多少处理器、多少个
阅读全文
posted @
2020-08-18 11:32
肉松蛋卷
阅读(578)
推荐(0)
14-性能分析概述:性能问题归根结底是什么原因
摘要:从这一讲开始,我们来探讨一下常见的各种性能问题,和如何进行相应的性能分析。我们首先宏观地介绍一下性能的外部指标、内部瓶颈和资源制约,以及如何正确地进行性能分析。然后接下来的几讲分别重点讨论CPU、内存、存储和网络几个领域。 性能的外部指标 谈论应用程序系统和互联网服务的性能时,我们首先要清楚外部的性
阅读全文
posted @
2020-08-18 11:30
肉松蛋卷
阅读(490)
推荐(0)
13-性能测试的工程集成:如何与产品开发和运维业务有机集成
摘要:今天我们讨论性能测试如何和其他系统进行智能集成,也就是如何让性能测试这一工作从单独的、一次性的、手工发起的、传统的人工操作,进化成一个和开发及运维过程相结合的、持续的、自动重复执行的智能操作。 性能测试模式的演化 性能测试作为IT公司的一种重要工作,它的工作模式正在从传统的手工模式,不断进化成智能集
阅读全文
posted @
2020-08-18 11:29
肉松蛋卷
阅读(267)
推荐(0)
11-性能测试的工具:七大测试场景如何选择高质量的测试工具
摘要:我们在前面两讲讨论了如何进行性能测试的规划和设计。性能测试离不开合适的工具,那么这一讲,我们来讨论一下测试工具的分类和构成,并根据七个不同的测试场景,分别学习几个常用的高质量测试工具,尤其是开源的。 这七个测试场景分别是:Web测试、系统测试、数据库测试、文件IO测试、存储测试、网络测试以及移动Ap
阅读全文
posted @
2020-08-18 11:27
肉松蛋卷
阅读(746)
推荐(0)
/10-性能测试的规划和步骤:为什么性能测试不容易一蹴而就呢
摘要:上一讲我们讲了不同类型的性能测试。今天我们来讲如何规划一个性能测试和具体的执行步骤。在规划任何一种性能测试时,最重要的事情是搞清楚被测试的实体,也就是SUT(System Under Test),对应的性能指标和度量,以及期望的结果。在此基础上,根据测试的类型来决定和规划具体的测试步骤,然后执行测试
阅读全文
posted @
2020-08-18 11:25
肉松蛋卷
阅读(345)
推荐(0)
09-性能测试的种类:如何快准狠地抓住一个测试的本质
摘要:从这一讲开始我们讨论性能测试。性能测试是一种特殊的软件测试,它的目的是确保软件应用程序在一定的负载流量下运行良好。性能测试是性能分析和性能优化的基础,它的目标是发现和性能相关的各种问题和性能瓶颈,从而进一步去消除错误和性能瓶颈。 由于性能测试本身就有好多种类;加上各种测试之间的界限其实很模糊,这就造
阅读全文
posted @
2020-08-18 11:23
肉松蛋卷
阅读(309)
推荐(0)
08-经验总结:必须熟记的一组常用性能数字.
摘要:今天这一讲是”数理基础“这一部分的最后一讲,我在这一讲会给你总结一组性能相关的常用的数字。这些数字在做性能和设计方面的工作时经常用到。它们就像九九乘法表一样,我希望你能熟记在心。 记住这些数字的好处是,每次看到一个性能相关的数据的时候,我们立刻就能知道这个性能数据有没有问题。 举个简单例子,如果我们
阅读全文
posted @
2020-08-18 11:22
肉松蛋卷
阅读(966)
推荐(0)
06-性能数据的分析:如何从大量数据中看出想要的信号
摘要:我们这一讲来谈谈如何分析我们所得到的性能数据。现代的应用程序和互联网服务系统都比较复杂,要关心的性能参数也很多,所以你从各种渠道得到的性能相关的数据量往往很大。那么要如何从大量的数据中找出我们所关心的特征和规律呢?这就需要你对数据做各种分析和对比了。 这一讲要解决的核心问题就是:如何从大量数据中看出
阅读全文
posted @
2020-08-18 11:21
肉松蛋卷
阅读(559)
推荐(0)
05-概率统计和排队论:做性能工作必须懂的数理基础
摘要:上一讲我们讲了和性能优化有关的三大基础定律法则。今天我们继续打基础,讲一点统计方面的数理知识,包括重要的概率统计和排队论。 或许你对概率统计和排队论有点发怵,但这些内容是必须学会的,因为它们很重要。因为它们是性能测试和优化这座高楼大厦的地基。地基打不好,性能测试和优化也不会做得很好。 而且我想强调的
阅读全文
posted @
2020-08-18 11:18
肉松蛋卷
阅读(1148)
推荐(0)
04-性能工程三定律:IT业和性能优化工作的“法律法规
摘要:所以接下来的几讲,我们需要先学习一些基础知识,包括和性能工程相关的几个重要定律法则和数理基础。这一讲我先和你探讨三个定律法则:帕累托法则、阿姆达尔定律和利特尔法则。 帕累托法则 我想你可能知道帕累托法则,它也被称为 80/20 法则、关键少数法则,或者八二法则。 这个法则是基于我们生活中的认识产生的
阅读全文
posted @
2020-08-18 11:17
肉松蛋卷
阅读(668)
推荐(0)
01-程序员为什么要关心代码性能
摘要:怎么定义“性能”和 “性能好”? 说起代码性能,首先我们需要弄清楚什么样的代码算是性能好?怎么样算是性能不好? 代码性能表现在很多方面和指标,比较常见的几个指标有吞吐量(Throughput)、服务延迟(Service latency)、扩展性(Scalability)和资源使用效率(Resourc
阅读全文
posted @
2020-08-18 11:10
肉松蛋卷
阅读(534)
推荐(0)
安全新技术:IoT、IPv6、区块链中的安全新问题
摘要:随着科技的快速发展,各种新的技术和概念不断出现,持续出现的新技术会不断推动安全的发展。虽然,每一个新技术都会衍生出新的安全威胁和隐患,但是,这些新的安全问题也正是安全行业保持活力的源泉。所以,对于安全人员来说,这些新技术的出现既是一种挑战,也是一种机遇。 近几年,IoT、IPv6和区块链是三个热度很
阅读全文
posted @
2020-08-18 11:07
肉松蛋卷
阅读(355)
推荐(0)
个人成长:学习安全,哪些资源我必须要知道
摘要:安全涉及的知识面非常广,更新速度也很快,前辈们很难有足够的时间和精力来言传身教。这个时候就需要我们具备良好的自学能力,通过持续地学习来掌握新的知识,应对新的变化和挑战。 优质的学习资源是自学的重要基础。今天,我就来盘点一下,对我个人的安全学习产生帮助的各类学习资源,以及不同阶段的安全人员应该如何对各
阅读全文
posted @
2020-08-18 11:06
肉松蛋卷
阅读(368)
推荐(0)
前端安全:如何打造一个可信的前端环境
摘要:前端的安全性一直是我们在考虑安全问题时,没有办法绕过的关键问题。今天,我就来和你聊一聊如何保护前端的安全性。 我们先来看一个攻击事件。2017年,12306网站被曝出有“买下铺”的功能。我们都有过买票的经历,当我们在12306上买卧铺的时候,是没法选择上铺、中铺还是下铺的。但是,有人去分析了1230
阅读全文
posted @
2020-08-18 11:05
肉松蛋卷
阅读(308)
推荐(0)
13-架构设计流程:详细方案设计
摘要:完成备选方案的设计和选择后,我们终于可以长出一口气,因为整个架构设计最难的一步已经完成了,但整体方案尚未完成,架构师还需继续努力。接下来我们需要再接再励,将最终确定的备选方案进行细化,使得备选方案变成一个可以落地的设计方案。所以今天我来讲讲架构设计流程第4步:详细方案设计。 架构设计第4步:详细方案
阅读全文
posted @
2020-08-18 10:59
肉松蛋卷
阅读(452)
推荐(0)
12-架构设计流程:评估和选择备选方案
摘要:上一期我讲了设计备选方案,在完成备选方案设计后,如何挑选出最终的方案也是一个很大的挑战,主要原因有: 每个方案都是可行的,如果方案不可行就根本不应该作为备选方案。 没有哪个方案是完美的。例如,A方案有性能的缺点,B方案有成本的缺点,C方案有新技术不成熟的风险。 评价标准主观性比较强,比如设计师说A方
阅读全文
posted @
2020-08-18 10:57
肉松蛋卷
阅读(498)
推荐(0)
11-架构设计流程:设计备选方案
摘要:上一期我讲了架构设计流程第1步识别复杂度,确定了系统面临的主要复杂度问题后,方案设计就有了明确的目标,我们就可以开始真正进行架构方案设计了。今天我来讲讲架构设计流程第2步:设计备选方案,同样还会结合上期“前浪微博”的场景,谈谈消息队列设计备选方案的实战。 架构设计第2步:设计备选方案 架构师的工作并
阅读全文
posted @
2020-08-18 10:56
肉松蛋卷
阅读(325)
推荐(0)
10-架构设计流程:识别复杂度
摘要:从今天开始,我将分4期,结合复杂度来源和架构设计原则,通过一个模拟的设计场景“前浪微博”,和你一起看看在实践中究竟如何进行架构设计。今天先来看架构设计流程第1步:识别复杂度。 架构设计第1步:识别复杂度 我在前面讲过,架构设计的本质目的是为了解决软件系统的复杂性,所以在我们设计架构时,首先就要分析系
阅读全文
posted @
2020-08-18 10:54
肉松蛋卷
阅读(216)
推荐(0)
09-架构设计原则案例
摘要:周二,我给你介绍了架构设计的三条核心原则,先复习一下:合适原则、简单原则和演化原则。我们在架构设计实践中,应该时刻谨记这三条设计原则,指导我们设计出合适的架构,即使是代表中国互联网技术最顶尖水平的BAT,其架构的发展历程也同样遵循这三条原则。 今天我就以大家耳熟能详的淘宝和手机QQ作为案例,来简单分
阅读全文
posted @
2020-08-18 10:52
肉松蛋卷
阅读(230)
推荐(0)
08-架构设计三原则
摘要:前面几期专栏,我跟你系统的聊了架构设计的主要目的是为了解决软件系统复杂度带来的问题,并分析了复杂度的来源。从今天开始,我会分两期讲讲架构设计的3个原则,以及架构设计原则的案例。 成为架构师是每个程序员的梦想,但并不意味着把编程做好就能够自然而然地成为一个架构师,优秀程序员和架构师之间还有一个明显的鸿
阅读全文
posted @
2020-08-18 10:50
肉松蛋卷
阅读(211)
推荐(0)
06-复杂度来源:可扩展性
摘要:复杂度来源前面已经讲了高性能和高可用,今天来聊聊可扩展性。 可扩展性指系统为了应对将来需求变化而提供的一种扩展能力,当有新的需求出现时,系统不需要或者仅需要少量修改就可以支持,无须整个系统重构或者重建。 由于软件系统固有的多变性,新的需求总会不断提出来,因此可扩展性显得尤其重要。在软件开发领域,面向
阅读全文
posted @
2020-08-18 10:42
肉松蛋卷
阅读(211)
推荐(0)
05-复杂度来源:高可用
摘要:参考维基百科,先来看看高可用的定义。 系统无中断地执行其功能的能力,代表系统的可用性程度,是进行系统设计时的准则之一。 这个定义的关键在于“无中断”,但恰好难点也在“无中断”上面,因为无论是单个硬件还是单个软件,都不可能做到无中断,硬件会出故障,软件会有bug;硬件会逐渐老化,软件会越来越复杂和庞大
阅读全文
posted @
2020-08-18 10:41
肉松蛋卷
阅读(156)
推荐(0)
04-复杂度来源:高性能
摘要:周四,我为你讲了架构设计的主要目的是为了解决软件系统复杂度带来的问题。那么从今天开始,我将为你深入分析复杂度的6个来源,先来聊聊复杂度的来源之一高性能。 对性能孜孜不倦的追求是整个人类技术不断发展的根本驱动力。例如计算机,从电子管计算机到晶体管计算机再到集成电路计算机,运算性能从每秒几次提升到每秒几
阅读全文
posted @
2020-08-18 10:35
肉松蛋卷
阅读(244)
推荐(0)
03-架构设计的目的
摘要:周二,我们聊了架构出现的历史背景和推动因素。以史为鉴,对我们了解架构设计的目的很有帮助。谈到架构设计,相信每个技术人员都是耳熟能详,但如果深入探讨一下,“为何要做架构设计?”或者“架构设计目的是什么?”类似的问题,大部分人可能从来没有思考过,或者即使有思考,也没有太明确可信的答案。 架构设计的误区
阅读全文
posted @
2020-08-18 10:34
肉松蛋卷
阅读(213)
推荐(0)
02-架构设计的历史背景
摘要:理解了架构的有关概念和定义之后,今天,我会给你讲讲架构设计的历史背景。我认为,如果想要深入理解一个事物的本质,最好的方式就是去追寻这个事物出现的历史背景和推动因素。我们先来简单梳理一下软件开发进化的历史,探索一下软件架构出现的历史背景。 机器语言(1940年之前) 最早的软件开发使用的是“机器语言”
阅读全文
posted @
2020-08-18 10:33
肉松蛋卷
阅读(203)
推荐(0)
01-架构到底是指什么
摘要:对于技术人员来说,“架构”是一个再常见不过的词了。我们会对新员工培训整个系统的架构,参加架构设计评审,学习业界开源系统(例如,MySQL、Hadoop)的架构,研究大公司的架构实现(例如,微信架构、淘宝架构)……虽然“架构”这个词常见,但如果深究一下“架构”到底指什么,大部分人也许并不一定能够准确地
阅读全文
posted @
2020-08-18 10:32
肉松蛋卷
阅读(249)
推荐(0)
32-微服务混合云部署实践
摘要:专栏上一期我给你讲解了微服务多机房部署的实践,以及需要解决的三个问题。大多数业务在发展到一定阶段,要么出于高可用性的需要,把业务部署在多个机房以防止单个机房故障导致整个服务不可用;要么出于访问量大的需要,把业务流量分散到多个机房以减少单个机房的流量压力。此时,服务一般是部署在企业内部机房的机器上,并
阅读全文
posted @
2020-08-18 10:29
肉松蛋卷
阅读(549)
推荐(0)
31-微服务多机房部署实践
摘要:专栏前面我在讲服务治理时提到过,为了实现高可用性,微服务一般要部署在多个机房,保证有一个机房因为各种不可抗力因素导致不可用时,可以把流量切换到其他可用机房来避免故障。但是,是不是只要部署到多个机房就万事大吉了呢?你有没有想过这几个问题呢? 一切正常时用户请求该访问哪个机房? 多个机房之间的数据如何同
阅读全文
posted @
2020-08-18 10:28
肉松蛋卷
阅读(691)
推荐(0)
30-如何做好微服务容量规划
摘要:专栏上一期我给你讲解了单体应用拆分为微服务后带来的开发、测试和运维复杂度的提升,可以通过DevOps实现CI/CD流程的自动化来解决。除此之外,单体应用拆分为微服务还带来另外一个问题,也就是拆分出来后的多个微服务容量如何规划的问题。在单体应用时,只需要针对这个单体应用的访问量和实际接口性能来决定要不
阅读全文
posted @
2020-08-18 10:26
肉松蛋卷
阅读(849)
推荐(0)
29-微服务如何实现DevOps
摘要:把一个大的单体应用拆分成多个微服务之后,每个服务都可以独立进行开发、测试和运维。但当拆分的微服务足够多时,却又仿佛陷入一个新的泥沼,无论是业务代码的开发还是测试和运维,工作量都比之前提升了很多。 采单体应用架构时,一个业务需求只需要修改单体应用的代码,然后针对这个单体应用进行测试,测试通过后再把单体
阅读全文
posted @
2020-08-18 10:25
肉松蛋卷
阅读(429)
推荐(0)
25-微服务为什么要容器化?
摘要:专栏前面的文章,我主要给你讲解了微服务架构的基础组成以及在具体落地实践过程中的会遇到的问题和解决方案,这些是掌握微服务架构最基础的知识。从今天开始,我们将进一步深入微服务架构进阶的内容,也就是微服务与容器、DevOps之间的关系。它们三个虽然分属于不同领域,但却有着千丝万缕的关系,可以说没有容器的普
阅读全文
posted @
2020-08-18 10:19
肉松蛋卷
阅读(1658)
推荐(0)
10-Dubbo框架里的微服务组件
摘要:经过前面几期的讲解,你应该已经对微服务的架构有了初步的了解。简单回顾一下,微服务的架构主要包括服务描述、服务发现、服务调用、服务监控、服务追踪以及服务治理这几个基本组件。 那么每个基本组件从架构和代码设计上该如何实现?组件之间又是如何串联来实现一个完整的微服务架构呢?今天我就以开源微服务框架Dubb
阅读全文
posted @
2020-08-18 10:16
肉松蛋卷
阅读(207)
推荐(0)
09-微服务治理的手段有哪些
摘要:上一期我给你讲述了服务追踪的基本原理,有了分布式服务追踪系统,在服务出现问题的时候,我们就可以定位服务哪里出现了问题。一般单体应用改造成微服务架构后,还会增加哪些问题呢?又该如何应对呢? 前面我讲到单体应用改造为微服务架构后,服务调用由本地调用变成远程调用,服务消费者A需要通过注册中心去查询服务提供
阅读全文
posted @
2020-08-18 10:15
肉松蛋卷
阅读(270)
推荐(0)
08-如何追踪微服务调用
摘要:在微服务架构下,由于进行了服务拆分,一次请求往往需要涉及多个服务,每个服务可能是由不同的团队开发,使用了不同的编程语言,还有可能部署在不同的机器上,分布在不同的数据中心。 下面这张图描述了用户访问微博首页,一次请求所涉及的服务(这张图仅作为示意,实际上可能远远比这张图还要复杂),你可以想象如果这次请
阅读全文
posted @
2020-08-18 10:14
肉松蛋卷
阅读(256)
推荐(0)
07-如何监控微服务调用
摘要:单体应用相比,在微服务架构下,一次用户调用会因为服务化拆分后,变成多个不同服务之间的相互调用,这也就需要对拆分后的每个服务都监控起来。 在讲述如何监控微服务调用前,首先你要搞清楚三个问题:监控的对象是什么?具体监控哪些指标?从哪些维度进行监控?下面就从这三个问题开始,一起来看看如何监控微服务调用。
阅读全文
posted @
2020-08-18 10:13
肉松蛋卷
阅读(535)
推荐(0)
06-如何实现RPC远程服务调用
摘要:专栏上一期我讲过,要完成一次服务调用,首先要解决的问题是服务消费者如何得到服务提供者的地址,其中注册中心扮演了关键角色,服务提供者把自己的地址登记到注册中心,服务消费者就可以查询注册中心得到服务提供者的地址,可以说注册中心犹如海上的一座灯塔,为服务消费者指引了前行的方向。 有了服务提供者的地址后,服
阅读全文
posted @
2020-08-18 10:11
肉松蛋卷
阅读(425)
推荐(0)
05-如何注册和发现服务
摘要:专栏上一期,我给你介绍了服务发布和引用常用的三种方式:RESTful API、XML配置以及IDL文件。假设你已经使用其中一种方式发布了一个服务,并且已经在一台机器上部署了服务,那我想问你个问题,如果我想调用这个服务,我该如何知道你部署的这台机器的地址呢? 这个问题就跟我想去吃肯德基一样,我可以去谷
阅读全文
posted @
2020-08-18 10:09
肉松蛋卷
阅读(153)
推荐(0)
/04-如何发布和引用服务?
摘要:今天我要与你分享的第一个组件是服务发布和引用。我在前面说过,想要构建微服务,首先要解决的问题是,服务提供者如何发布一个服务,服务消费者如何引用这个服务。具体来说,就是这个服务的接口名是什么?调用这个服务需要传递哪些参数?接口的返回值是什么类型?以及一些其他接口描述信息。 我前面说过,最常见的服务发布
阅读全文
posted @
2020-08-18 10:08
肉松蛋卷
阅读(190)
推荐(0)
03-初探微服务架构
摘要:上一期我给你讲了什么时候应该进行服务化,以及服务化拆分的两种方式即横向拆分和纵向拆分,最后还提到了引入微服务架构需要解决的问题。 我想你一定很好奇微服务架构到底是什么样子的,接下来我们一起走进微服务架构,来看看它的各个组成部分。 下面这张图是我根据自己的经验,绘制的微服务架构的模块图,在具体介绍之前
阅读全文
posted @
2020-08-18 09:51
肉松蛋卷
阅读(186)
推荐(0)
02-从单体应用走向服务化
摘要:那么到底什么时候应该拆分单体应用?拆分单体应用有哪些标准可依呢? 为了解答这两个问题,今天我将通过具体案例来阐述,希望你能够学会单体应用拆分成微服务的正确姿势。 什么时候进行服务化拆分? 从我所经历过的多个项目来看,项目第一阶段的主要目标是快速开发和验证想法,证明产品思路是否可行。这个阶段功能设计一
阅读全文
posted @
2020-08-18 09:49
肉松蛋卷
阅读(192)
推荐(0)
01-到底什么是微服务
摘要:从谷歌的搜索指数来看,微服务的热度在进入2017年后突然爆发,国内各大会议和论坛的相关讨论也如雨后春笋般层出不穷,各大一线互联网公司也纷纷将这一技术引入并在实际业务中落地。 然而据我所知,国内不少中小规模的技术团队对微服务的概念都不甚了解,对该不该引入微服务也不置可否。还有一些技术团队,没有考虑实际
阅读全文
posted @
2020-08-18 09:48
肉松蛋卷
阅读(182)
推荐(0)
微博技术解密(下)-微博存储的那些事儿
摘要:MySQL 上一期我讲到微博Feed的存储使用了两层的结构,为了减少对MySQL数据库的访问压力,在前面部署了Memcached缓存,挡住了99%的访问压力,只有1%的请求会访问数据库。然而对于微博业务来说,这1%的请求也有几万QPS,对于单机只能扛几千QPS的MySQL数据库来说还是太大了。为此我
阅读全文
posted @
2020-08-18 09:46
肉松蛋卷
阅读(1048)
推荐(1)
微博技术解密(上)-微博信息流是如何实现的?
摘要:今天我们先来看微博信息流架构,也就是微博的Feed是如何构建的。首先什么是Feed呢?根据我的理解,Feed是互联网2.0时代的产物,它与互联网1.0时代的产物——门户网站最大的不同之处就是Feed不需要用户在各个板块之间来回跳转获取信息,而是把不同的信息都聚合在一起,可以供用户源源不断地访问。这里
阅读全文
posted @
2020-08-18 09:44
肉松蛋卷
阅读(1641)
推荐(1)
常用命令
摘要:可以执行这个命令:kubectl exec -it qqwei-0602-rdb-vehicle-0 -- bash -C "" 中文文档:http://docs.kubernetes.org.cn/643.html kubectl get pod -o wide 查看每个pod被调度到那个node
阅读全文
posted @
2020-08-17 16:29
肉松蛋卷
阅读(137)
推荐(0)
23丨当Postgres磁盘读引起IO高的时候,应该怎么办
摘要:在性能分析的人眼里,性能瓶颈就是性能瓶颈。无论这个性能瓶颈出现在代码层、操作系统层、数据库层还是其他层,最终的目的只有一个结果:解决掉! 有人可能会觉得这种说法过于霸道。 事实上,我要强调的性能分析能力,是一套分析逻辑。在这一套分析逻辑中,不管是操作系统、代码还是数据库等,所涉及到的都只是基础知识。
阅读全文
posted @
2020-08-17 16:20
肉松蛋卷
阅读(2510)
推荐(0)
22丨案例:当磁盘参数导致IO高的时候,应该怎么办
摘要:在大部分的性能项目中,当系统调优到一定程度的时候,性能的瓶颈往往会体现在两类计数器上:一个是CPU,另一个就是磁盘I/O了。所以我们也经常会在一些性能优化的文章中看到两个分类,分别是CPU密集型和磁盘I/O密集型。 有人说为什么不说内存呢?内存是那么重要。不是说内存不会成为瓶颈,只不过内存的瓶颈基本
阅读全文
posted @
2020-08-17 16:18
肉松蛋卷
阅读(857)
推荐(0)
30丨案例:为什么参数化数据会导致TPS突然下降
摘要:在性能测试中,参数化数据是少有的每个性能测试工程师都会用得到,却经常出现问题的技术点之一。从我的角度来说,究其原因,大部分是因为对性能参数化数据的理解不足。导致的结果就是用了参数化,但和真实的用户场景不一致,从而使得整个性能测试场景都失去了意义。 这样的例子不在少数。 一个项目开始之初,由于没有历史
阅读全文
posted @
2020-08-17 16:17
肉松蛋卷
阅读(1030)
推荐(0)
29丨案例:如何应对因网络参数导致的TPS%08呈锯齿状
摘要:并且不是每一个项目都能让你有分析性能瓶颈的机会,因为有很多问题都是重复的。 所以性能分析是一个需要不断总结出自己的分析逻辑的工作,有了这些分析逻辑,才能在新项目中无往不利。请注意我的描述,我强调的是要有自己分析的逻辑,而不是经历多少个性能问题。因为问题可能会遇到新的,但是分析逻辑却是可以复用的。 在
阅读全文
posted @
2020-08-17 16:15
肉松蛋卷
阅读(704)
推荐(0)
28丨案例:带宽消耗以及Swap(下)
摘要:分析的第二阶段 Swap的原理和对TPS的影响 前面有一个扣,是说swap多的问题。要理解swap为什么是黄的,得先知道什么是swap。我先画个简易的示意图。 这里先解释一下,对于一个Linux系统来说,如果配置并开启了swap分区,那么默认的swappiness参数是60。 swappiness是
阅读全文
posted @
2020-08-17 16:12
肉松蛋卷
阅读(318)
推荐(0)
27丨案例:带宽消耗以及Swap(上)
摘要:今天我们来看一个真实的案例。事情是这样的,之前有人在微信上问我一个问题,这个问题的现象很典型:典型的TPS上不去,响应时间增加,资源用不上。 大概的情况是这样的:有两台4C8G的服务器,一台服务器上有2个Tomcat,一台服务器上是DB。压测的混合场景有4个功能模块,其中3个访问一个Tomcat,另
阅读全文
posted @
2020-08-17 16:09
肉松蛋卷
阅读(389)
推荐(0)
26丨案例:理解TPS趋势分析
摘要:在性能分析中,前端的性能工具,我们只需要关注几条曲线就够了:TPS、响应时间和错误率。这是我经常强调的。 但是关注TPS到底应该关注什么内容,如何判断趋势,判断了趋势之后,又该如何做出调整,调整之后如何定位原因,这才是我们关注TPS的一系列动作。 今天,我们就通过一个实际的案例来解析什么叫TPS的趋
阅读全文
posted @
2020-08-17 16:04
肉松蛋卷
阅读(950)
推荐(0)
25丨SkyWalking:性能监控工具之链路级监控及常用计数器解析
摘要:在微服务横行的年代,没有链路级监控简直就是灾难。技术在不断的发展过程中,总是会有新的工具被推出来,它们存在的价值就是解决问题。链路监控工具存在的价值就是尽快找到微服务中哪一个环节是最慢的。 我们对微服务的态度究竟是怎样的? 但是在讲链路级监控之前,我需要再说一下我们对微服务的态度。 我们认为微服务性
阅读全文
posted @
2020-08-17 16:02
肉松蛋卷
阅读(947)
推荐(0)
24丨Kafka:性能监控工具之队列级监控及常用计数器解析
摘要:在我看来队列服务器是最简单的一种组件了。因为队列给我们下手的机会实在是并不多。我们只是用它,如果想改变它就只能去改代码,其他的都只是配置问题。 在当前的市场中,Kafka算是用得非常火的一个队列服务器了,所以今天,我选择它来做一些解读。 虽然我在前面一直在强调分析的思路,但在这一篇中,我打算换个思路
阅读全文
posted @
2020-08-17 16:00
肉松蛋卷
阅读(730)
推荐(0)
21丨MySQL:数据库级监控及常用计数器解析(下)
摘要:上一篇文章中,我们讲了有关数据库的全局分析,那么在今天的文章中,我们继续看看在数据库中,如何做定向分析。 还记得我在上篇文章中提到的工具吗?mysqlreport、pt-query-digest和mysql_exportor+Prometheus+Grafana。我们在上一篇中已经讲完了mysqlr
阅读全文
posted @
2020-08-17 15:59
肉松蛋卷
阅读(311)
推荐(0)
20丨MySQL:数据库级监控及常用计数器解析(上
摘要:数据库是一个非常大的话题,我们在很多地方,都会看到对数据库的性能分析会包括以下部分。 但其实呢,以上这些内容都是我们应该具备的基础知识,所以我今天要讲的就是,具备了这些基础知识之后我们应该干什么事情。 也就是说,从性能瓶颈判断分析的角度入手,才是性能从业人员该有的逻辑。每次我分析一个性能问题时,逻辑
阅读全文
posted @
2020-08-17 15:58
肉松蛋卷
阅读(318)
推荐(0)
19丨Tomcat:中间件监控及常用计数器解析
摘要:在当今Spring Cloud微服务架构盛行的时代,Tomcat仍然作为应用最广的应用服务器而存在着,所以我们不得不说一说对它的性能分析。 很多时候,我们做性能测试分析时,都会把Tomcat这类的应用弄混淆。对它的监控和分析,总是会和JDK、框架代码、业务代码混合来看,这就导致了分析上的混乱。我们应
阅读全文
posted @
2020-08-17 15:57
肉松蛋卷
阅读(916)
推荐(0)
18丨CentOS:操作系统级监控及常用计数器解析(下)
摘要:I/O I/O其实是挺复杂的一个逻辑,但我们今天只说在做性能分析的时候,应该如何定位问题。 对性能优化比较有经验的人(或者说见过世面比较多的人)都会知道,当一个系统调到非常精致的程度时,基本上会卡在两个环节上,对计算密集型的应用来说,会卡在CPU上;对I/O密集型的应用来说,瓶颈会卡在I/O上。 我
阅读全文
posted @
2020-08-17 15:55
肉松蛋卷
阅读(355)
推荐(0)
17丨CentOS:操作系统级监控及常用计数器解析
摘要:首先,我们前面在性能分析方法中提到,性能分析要有起点,通常情况下,这个起点就是响应时间、TPS等压力工具给出来的信息。 我们判断了有瓶颈之后,通过拆分响应时间就可以知道在哪个环节上出了问题,再去详细分析这个操作系统。这就需要用到我们的分析决策树了。 你还记得我们在第6篇文章中提到的分析决策大树吗?今
阅读全文
posted @
2020-08-17 15:53
肉松蛋卷
阅读(698)
推荐(0)
16丨案例:性能监控工具之Grafana-Prometheus-Exporters
摘要:在本模块中,我将把几个常用的监控部分给梳理一下。前面我们提到过,在性能监控图谱中,有操作系统、应用服务器、中间件、队列、缓存、数据库、网络、前端、负载均衡、Web服务器、存储、代码等很多需要监控的点。 显然这些监控点不能在一个专栏中全部覆盖并一一细化,我只能找最常用的几个,做些逻辑思路的说明,同时也
阅读全文
posted @
2020-08-17 15:50
肉松蛋卷
阅读(1188)
推荐(0)
15丨性能测试场景:如何进行监控设计
摘要:在性能测试中,我觉得监控是非常重要的环节。因为这是做性能分析的前提,走出这一步,才有后面的分析。 监控是性能分析承上启下的关键点。 设计监控是我们性能测试工程师必须要做的事情。当然了,仅仅设计监控是不够的,还要看懂监控数据才能分析。我们将在后面的篇幅一一拆解。 我觉得性能测试工程师也一定要自己去实现
阅读全文
posted @
2020-08-17 15:48
肉松蛋卷
阅读(459)
推荐(0)
14丨性能测试场景:如何理解业务模型
摘要:性能场景中的业务模型是性能测试工作中非常重要的一部分。而在我们真实的项目中,业务模型跟线上的业务模型不一样的情况实在是太多了。原因可能多种多样,这些原因大大降低了性能测试的价值。 有人说,就是因为这样才应该直接用生产流量的方式来做嘛,这样就不用管业务模型了,直接就有生产的业务模型了。没错,只要你能通
阅读全文
posted @
2020-08-17 15:47
肉松蛋卷
阅读(728)
推荐(0)
13丨性能测试场景:如何进行场景设计
摘要:我们在前面屡次强调了场景的重要性,今天终于到了要把实际场景拿出来解析的时候了。 在本篇文章中,为了保证数据的连续性,我用之前的项目资料来作明确地说明。同时为了模糊关键业务信息,以及让场景的描述更通用性,我会把所有的业务名隐去。 根据之前我们所说的,基准性能场景是为了测试出单业务的最大容量,以便在混合
阅读全文
posted @
2020-08-17 15:42
肉松蛋卷
阅读(1205)
推荐(0)
12丨性能场景:做参数化之前,我们需要考虑什么
摘要:在性能测试中,我们要关注的数据主要有以下几类,分别是参数化数据、监控数据和基础铺底数据。 我们今天先描述第一种参数化数据,在后面的文章中再描述其他数据。 首先我们需要了解,为什么要关注性能场景中的参数化数据呢?我以下面的两个例子说明一下。 在我的工作经历中,见过很多初级性能测试工程师不知道如何设置合
阅读全文
posted @
2020-08-17 15:41
肉松蛋卷
阅读(500)
推荐(0)
11丨性能脚本:用案例和图示帮你理解HTTP协议
摘要:当前使用得最为广泛的应用层协议就是HTTP了。我想了好久,还是觉得应该把HTTP协议写一下。 因为做性能测试分析的人来说,HTTP协议可能是绕不过去的一个槛。在讲HTTP之前,我们得先知道一些基本的信息。 HTTP(HyperText Transfer Protocol,超文本传输协议),显然是规定
阅读全文
posted @
2020-08-17 15:40
肉松蛋卷
阅读(842)
推荐(0)
10丨案例:在JMeter中如何设置参数化数据
摘要:正式场景前的基准测试 在没有做业务混合场景之前,我们需要先做Benchmark测试,来确定一个登录业务能支持多少的业务量,这样就可以在业务混合场景中,根据场景中各业务的比例来确定登录的数据需要多少真实的数据。 我们继续用上一篇文章中用户登录的例子,单独测试登录业务,结果如下: Java summar
阅读全文
posted @
2020-08-17 15:39
肉松蛋卷
阅读(517)
推荐(0)
09丨%08关联和断言:一动一静,核心都是在取数据.
摘要:对每一个性能测试工具来说,关联和断言都是应该具备的基本功能。 但是有很多新手对关联的逻辑并不是十分理解,甚至有人觉得关联和参数化是一样的,因为它们用的都是动态的数据,并且关联过来的数据也可以用到参数化中,但不一样的点是,关联的数据后续脚本中会用到,参数化则不会。断言倒是比较容易理解,就是做判断。 那
阅读全文
posted @
2020-08-17 15:38
肉松蛋卷
阅读(391)
推荐(0)
07丨案例:编写最简单的性能脚本
摘要:通常我们会遇到要手写脚本的时候,就要针对一些接口编写脚本。这时候,我们需要知道接口规范和后台的数据是什么。而有些性能测试工程师写脚本时,并不知道后端的逻辑,只知道实现脚本,事实上,只知道实现脚本是远远不够的。 在这一篇文章中,我不打算讲复杂的内容,只想针对新手写一步步的操作,描述最简单的脚本编写。如
阅读全文
posted @
2020-08-17 15:36
肉松蛋卷
阅读(698)
推荐(0)
配置文件
摘要:https://www.shiyanlou.com/courses/1403 1. cat /etc/nginx/nginx.conf | grep -vE "#|^$" grep 去除了带 # 的行和 ^$ (即空白行) 2. 注意到倒数第二行和倒数第三行的 include,它表示将 /etc/n
阅读全文
posted @
2020-08-07 10:27
肉松蛋卷
阅读(98)
推荐(0)
云服务
摘要:腾讯云服务 https://cloud.tencent.com/act/seckill?from618party
阅读全文
posted @
2020-08-04 10:21
肉松蛋卷
阅读(80)
推荐(0)