译者序
作为一名运维工程师,系统出现一些“诡异”问题的情况并不罕见。有些时候面对束手无策的问题着实让人头痛,这时我总会感慨,学生时代课本上计算机科学那些诸多的概念和理论所呈现出的完美感觉更多是在书本上,在真实系统中往往更多是另外一幅更为“现实”的景象。工作多年后,我自发形成了一个简单的认知:当系统庞大到一定程度时,其复杂性会变得不容易控制是一件很正常的事情。用技术手段把这些“失控”的点妥善摆平就是工程师价值的体现。在翻译本书的过程中,我对这个问题又有了不同的认识:
“已知的已知,已知的未知,未知的未知。”
这是本书多次提到过的概念,说的是有些事情我们知道自己知道,有些事情我们知道自己不知道,还有些事情我们不知道自己不知道。这个概念就系统(特别是复杂系统,诸如云计算或大数据)而言,特别贴切:就系统内部来说,无论用到的是某一操作系统,还是某一编程语言,其实本身就已经是复杂度较高的实体,要透彻掌握并非易事,何况系统皆由这些技术组合构建而成,方方面面无所不知是不可能做到的事情,这里的未知源于技术本身的复杂;就系统外部来说,如今时事变化一日千里,现在系统要处理的外界变化,可能最初的系统设计者都从未想过,这里的未知来源于未来的不定。所以,有让你手足无措的问题出现其实是一种很正常的状态,对此的恐惧只是人施加给自己的情感层面的东西。与此相反,始终对未知心生敬畏才是对待未知正常的态度,更是本应有的觉悟。
这里并不是说我们要对未知“投降”,而是说对“未知”有正确的认识才是我们取得进步的前提。其实我们多数人对“系统的未知”存在误区,我们常常将系统等同于具象的技术实体,例如某种编程语言、OS 内核、网络。总觉得系统出问题肯定是我某些技术知识有漏洞没学好。可惜“学海无涯,而吾生有涯,以有涯随无涯,殆矣”,拘泥于各种眼花缭乱的技术只会让自己迷失造成时间的浪费。技术都是末节,真正要把握的主体其实只是系统本身。道理虽简单,但舍本逐末的事情却还是屡见不鲜。
要做好这一点,首要的是要有全局的系统观。更准确地说,是要有对系统各层知识的理解和实践能力,要有对系统架构的认知和理解的能力。只有对系统了如指掌,才有希望将已知的未知转化为已知的已知,将未知的未知转化为已知的未知,进而增加对系统的掌控能力,避免盲人摸象的悲剧。事实的真相是也本应是这样:技术的价值依附于系统及其价值,没有孤立存在的技术,一切价值的体现都在于系统本身。唯有立足系统本身,工程师才能打通性能这条经脉,领略到性能之巅的风采!
回观《性能之巅》这本书,全书的安排也深有此意。本书第1~5章可谓是精华部分,讲述了与系统性能相关的通用模型和通用方法;第6~12章才落实到具体的知识细节,讲述各性能组件(CPU、内存等)的知识(第6~10章)、云计算的基础(第11章),基准测试的方法(第12章)。本书最后一章是一个性能分析的实例,若是让长期与系统打交道的工程师读来,必然感同身受;若是性能新手阅读,则可以对性能工作的日常状况有个基本的了解。
本书是一座桥梁,作者Brendan 是在系统性能领域耕耘多年的技术专家,在Sun 和Oracle公司有过卓越的贡献,动态跟踪工具DTrace 就是他主力开发的,他用自己多年的经验和实践归纳并总结出了系统性能的理论和方法,这些理论和方法的作用就像桥梁,把业界可用的工具(或是你自己开发的工具)与系统内部的原理机制联通让它们有机地结合起来,让与性能相关的工作(无论是性能分析还是性能调优)做到有的放矢、有章可循!这与单纯提供知识的技术书籍截然不同,“授人以鱼不如授人以渔”,其立意确实难能可贵。
现代IT 技术的源头并非中国,但IT 技术在这片土地上生根发芽,欣欣向荣。如今国人日常生活中所依赖的系统服务已经比比皆是,不信者打开自己的手机数数所装的App 自然清楚,这些App 背后多半都有远在某个数据中心的一个或多个系统作为支撑。随着互联网技术向各行业以及生活各方面的渗透,这样的系统今后会越来越多。加之伴随着云计算和大数据技术的兴起和蓬勃发展,除了系统越来越多之外,系统自身还会变得越来越庞大和复杂。在这么一个总的大趋势下,系统性能的重要性自然不言而喻。你会发现Brendan 所著的《性能之巅》是如此地契合我们这个时代,本书不是第一本论述系统性能的书,但本书对现有系统性能的方法和理论所做的提炼、概括和归纳,不敢说后无来者,但绝对可以称得上是前无古人的了。
全书翻译由EMC 资深软件工程师吴寒思、点融网资深运维工程师陈磊与我共同完成,在此感谢二位的辛苦耕耘和我们作为团队三人之间彼此的精诚合作,一年多的翻译历程,大量的时间和精力的投入自是不提,但回过头来看整个过程于我们译者自觉仍是获益良多的。本书内容量大涉及面广,尽管我们付出了许多的辛苦和努力,还是难以避免错误的出现,仍会存在一些不尽如人意的地方,欢迎广大读者批评指正,以便改进。
感谢博文视点出版社主编张春雨对本书出版的大力支持,感谢编辑贾莉对本书的悉心校对;感谢高博学长在翻译道路上给予我的指引;在本书成稿过程中,感谢EMC 蔡小华、EMC 陈立、EMC 胡世杰、百度冯玮、百度林向东、百度文立经理、淘宝的林应经理,还要感谢我所在的团队上海百度研发中心离线运维组的同事们。另外,更要感谢我的父母和女友吴颖对我的理解和支持。愿这本书的出版给你们带来快乐。
徐章宁
于百度上海研发中心
2013年7月