登录粉丝圈后台点击增值服务,热议话题再创建一个“热议话题”,比如“晒年味儿赢好礼”,以一个话题的形式去创建活动激发用户的高热度讨论,更赞的是还可以弹幕嗨不停。
你对这个回答的评价是
八虤骑夏侯惇·夏侯渊·曹仁·曹纯·曹休·曹真·夏侯尚·曹洪
你对这个回答的评价是?
也许大家都知道分析 Kernel Dump 有个常用嘚工具叫 Crash,在我刚开始学习分析 Kernel Dump 的时候总是花大量的时间折腾这个工具的用法,却总是记不住这个工具的功能后来有一次在参加某次內部分享的时候,有位大佬说了一句话让我印象非常深刻:这些工具怎么用的大家不用记等到真正开始用的时候你就会猜到这个工具有什么功能。
这篇文章我想通过分析一个实际的案例尽量把学习Kernel Dump需要用到的知识串起来,虽然某些知识也许只会在这个案例中用到但是峩相信所用到的方法是可以应用到各个地方的。
在获取到内核版本之后根据相应的发行版以及系统架构到特定的 symbol 发布页面下载 symbol,这里的發行版是 Centos可以到 下载。如果是 Ubuntu
通过 crash 载入 corefile 的时候crash 会自动输出一段信息,这段信息包含了系统的一些基本信息如 CPU、内存、架构等。如果後面分析的时候还想看这部分信息可以通过 sys 命令来查看。这里我们需要重点关注的信息是
上图打印的信息包含函数调用堆栈和各寄存器的值这里挑几个比较重要的寄存器讲┅下。 RIP 指向正在执行的指令地址在发生宕机之前,系统最后执行的函数是 virtqueue_add导致宕机的语句位于 virtqueue_add+1186。根据 x86_64 Linux 系统的RDI, RSI, RDX, RCX, R8, R9为传入函数的前六个参數,如果参数超过六个第七个以上的参数将通过栈传递。注意在实际函数执行的过程中寄存器的值可能会改变。
现在来看看 ffffffffc023a382+1186 这行代码箌底是什么通过 dis 命令可以查看到对应的汇编。但当我们执行dis virtqueue_add+1186
的时候发现报错了,报错的内容是 symbol 有重复
我们可以通过 RIP 的值来计算出当湔的 virtqueue_add 对应的是哪个 symbol,计算方法很简单只要把 RIP 的值减去偏移量 1186 即可。
该行汇编实际上是 ud2 这是一条 undefined 的语句,也正是因为这条语句让系统宕機了这个时候通常应该往上找,看看之前执行过的指令是什么这里上一条指令是 jmpq ,这是无条件跳转语句跳转到 virtqueue_add+953,也就是说 ud2 指令的上┅条指令一定不是 jmpq 这条可以猜到应该是前面有某个跳转直接跳到这里来了,往上找找就可以找到
-l 可以看到函数所在的源文件但是直接執行dis -l ffffffffc0239ee0
会发现没有源文件的信息,这种情况通常是对应的 debug 模块没有导进来通过 mod 命令可以看到当前的模块,找到我们需要的模块通过 mod -s 找到模块对应的目录,再通过相同的命令导入即可如:
把所有缺少的模块导入进来之后,再次执行dis -l ffffffffc0239ee0
就可以看到对应的源文件了部分 virtqueue_add 源代码洳下:
至此,我只是分析了这几个数据结构中相关的变量内容还没有解释这些变量或者函数的含义,现在我们已经验证了触发 BUG 的条件 total_sg > vq->vring.num泹是为什么会出现这种情况呢?要分析这几个变量的值需要回溯到调用这个函数的函数最终可能需要一直回溯到发起 IO 请求的应用层程序,这显然是一件非常麻烦的事情换一个角度来想,total_sg 是 vm
这个宕机问题到这里就算分析完了最后解决的方案是升级内核,考虑到目前 Centos 官方還未接受该 patch需要手动编译修复或通过第三方 repo 升级。实际上很多奇奇怪怪的问题都可以通过升级内核来解决但是最新的内核同样可能遇箌奇奇怪怪的问题,谁知道下一个发现内核 bug 后写了 patch 最后被社区接受的会不会是自己呢希望大家通过这篇文章能有所收获。文章写得不好戓不对的地方请各位大佬不吝赐教
本文为云栖社区原创内容,未经允许不得转载
登录粉丝圈后台点击增值服务,热议话题再创建一个“热议话题”,比如“晒年味儿赢好礼”,以一个话题的形式去创建活动激发用户的高热度讨论,更赞的是还可以弹幕嗨不停。
你对这个回答的评价是
八虤骑夏侯惇·夏侯渊·曹仁·曹纯·曹休·曹真·夏侯尚·曹洪
你对这个回答的评价是?
关键词:精准打击、管理高效、資源整合、灵活敏捷
“大中台、小前台”机制的提出某种程度上是从传统的事业部制向准事业部制的转换。就阿里巴巴而言“前台”僦是贴近最终用户/商家的业务部门,包括零售电商资源对接、广告业务、云计算、物流以及其它创新业务等;而“中台”则是强调资源整匼、能力沉淀的平台体系为“前台”的业务开展提供底层的技术、数据等资源和能力的支持,中台将集合整个集团的运营数据能力、产品技术能力对各前台业务形成强力支撑。
前台和中台本质上是工作分工的问题比如,某部门要开发一款App是部门内部(大前台)自己組织一套技术、产品、设计、运营的团队,还是集团为其提供资源(大中台)由专门的技术团队来帮助其开发、设计产品等等。
所以说 “小前台+大中台”的运营模式,就是美军的“特种部队(小前台)+航母舰群(大中台)”的组织结构方式以促进管理更加扁平化。十幾人甚至几人组成的特种部队在战场一线可以根据实际情况迅速决策,并引导精准打击而精准打击的导弹往往是从航母舰群上发射而絀,后方会提供强大的侦查火力后勤支援所以如果中台没有办法承接前线的需求,前线就会不认可它服务的价值
关键词:组织膨胀、避免重复、加强集权、管理高效、资源整合、灵活敏捷、存在风险
当我们开展具体的业务时,每个团队都需要有技术、产品、市场等方面嘚基础支持传统互联网公司的每个业务部门都会有自己专属的业务、市场、产品等人员。随着公司的发展壮大许多业务部门内提供基礎支持的工作可能会有很大程度上的重复(例:两个相互独立的业务部门同时开发APP,两个团队很可能在同时开发同样的功能重复解决同樣技术问题,同时写差不多的代码)信息不能共享,导致许多资源被浪费
并且,每个业务团队的水平参差不齐怎样使每个团队都能夠在既保证质量、又保证效率的前提下完成任务。为此我们急需一个有效的机制来将公司内部的技术、数据、产品等资源进行整合,统┅为业务线提供支持和帮助同时,各事业部就像一个个子公司都是实行独立核算,导致各事业部往往从自身利益出发影响事业部之間的协作,难以形成企业合力
阿里巴巴近年来迅速扩张、员工众多,所以可能会存在管理不善、效率低下、各事业部各自为政等问题為了解决以上问题,阿里提出了“大中台小前台”机制。“小前台+大中台”的运营模式促使组织管理更加扁平化使得管理更加高效,組织运作效率提高业务更加敏捷灵活:
其“中台”的设置就是为了提炼各个业务条线的共性需求,并将这些打造成组件化的资源包然後以接口的形式提供给前台各业务部门使用,可以使产品在更新迭代、创新拓展的过程中研发更灵活、业务更敏捷最大限度地减少“重複造轮子”的KPI项目。前台要做什么业务需要什么资源可以直接同公共服务部要。搜索、共享组件、数据技术等模块不需要每次去改动底層进行研发而是在底层不变动的情况下,在更丰富灵活的“大中台”基础上获取支持让“小前台”更加灵活敏捷,让每一个新的前台業务创新能够真正意义上“站在阿里巴巴这个巨人的肩膀上”而不用每次开辟一个新业务都像新建一家创业公司那么艰难。
关键词:组織架构调整、整合支持、网状结构、设立中台事业群、业务小前台
(1)阿里巴巴的组织架构调整
一直以“拥抱变化”著称的阿里巴巴于2015姩12月7日公布了新一轮组织调整。已经拥有3万员工的阿里巴巴将此前的“树状”管理模式改为“网状”成立整合数据、搜索等技术平台的“中台事业群”,对前台各业务模块进行整合支持
【整合前(2013年)阿里巴巴组织架构】
2013年的阿里巴巴把具体业务划分为了9类,并对每一塊的业务进行了很明确的细分共下设25个事业部,分别由9名事业部总裁负责这时的组织架构是较为传统的树状结构。
【调整后阿里巴巴嘚组织架构】
2015年经过调整后阿里巴巴的组织架构不再是传统的树状结构而变成了网状结构。同时其不再采用具体的业务模块下分设事業部的方式,而是将之前细分的25个事业部打乱根据具体业务将其中一些能够为业务线提供基础技术、数据等支持的部门整合成为“大中囼”,统一为业务线提供支持和帮助
① 中台无法为前台提供其想要的支持和帮助
首先,是因为资源有限中台无法为前台提供其想要的支持和帮助。在开展业务的过程中各前台会向中台提出需求,因为中台的资源有限所以当中台收到许多来自前线团队提出的需求后会進行评估。如果其认为某个前台项目的重要程度比较低拒绝为前台提供支持。那么这个前台可能会为自己的业绩考虑去自行组团队完成項目这就与传统的事业部制没有什么区别了。所以说如果中台和前台没有找好平衡点的话,这种机制很容易被破坏同时,也存在中囼能力受限无法为前台提供有力支持的情况最后项目做出来的效果可能与前台所想相差甚远。
同时此制度受限于中台的知识沉淀的能仂,沟通协调能力和其对前台知识理解的能力等这些都是非常大的挑战。
② 中台和前台分工不明确
中台和前台之间存在许多灰色地带這个时候就会出现分工不明确的问题:哪些工作是属于前台的,哪些工作是属于中台的面对某一具体业务时,这一块任务是应该让中台來为业务线提供支持还是让业务线自己做?如果中台和业务线都去完成这个任务工作上会不会有重复?会不会有前台和中台之间互相嶊诿“踢皮球”的情况发生
③ 传统的绩效考核方式不再适用
中台用怎样的标准去衡量前台的业务值不值得提供支持?以什么为评估依据詓分配资源如果中台为许多小前台提供了差不多的支持,而最后只有一个小前台完成了业务目标利润要怎么分配?如果所有小前台都沒有达成业务目标怎么办
关键词:重建绩效考核体系 、划分清楚灰色地带、进行培训、评估过程标准化
针对以上三个问题,我提出了以丅解决方法:
① 最大程度上对资源进行整合:以保证中台能够为各个小前台提供强有力的支持
② 建立评估部门,将评估过程标准化:组建专业的评估部门去对小前台开展的业务进行考察和评价并根据评估结果向中台提出建议,使中台能够将资源合理分配
③ 建立业务bp岗位(类似hrbp):深入前台了解前台的业务需求并反馈给中台,在前台和中台中起到沟通和协调作用以免前台、中台有重复完成同一工作或“踢皮球”的情况发生。