推荐序1
大数据、云计算和人工智能都是热门概念,也是现实问题。很多团队都面对类似的技术抉择:如何用开源软件构架机群、如何选择云服务、如何设计高效的分布式Web 服务,或者如何开发高效的分布式机器学习系统?当面对这些问题的时候,最好能从一些重要的可度量的方面给出定量分析和比较。可是哪些方面重要,以及如何度量呢?
古往今来有很多重要的系统度量问题,比如“如何度量网络繁忙程度”、“如何得知某台机器还活着吗”、“服务中断是因为某个进程死锁了,还是机器出问题了”,或是“我们的机群中用SSD 替换硬盘的比例应该多大”,等等。
这些问题的答案都不简单——正确答案往往构建在对操作系统的深刻理解上,甚至构建在统计学和统计实验基础上。可是通常我们是在繁重的业务压力下应对这些问题的,所以只能尽快找一个“近似”测量办法。这终非长久之计——在我们经历了很多问题之后,可能会发现自己从未深刻理解问题,没有深入思考,没有沉淀经验,没有获得成长。
如果有意深入理解问题,借助前人经验是可以事半功倍的。只是关于操作系统的教科书却不能为我们提供足够的基础知识。操作系统是如此复杂,几乎涉及计算机科学的所有方面。学校教育往往只能基于极简化的示范系统,比如Minix。但实际使用的操作系统,比如Linux 和Solaris,有更多需要学习和理解的地方。
我做分布式机器学习系统有八年了,其间很多时候要面对系统分析的问题。但是坦诚地说,大部分情况下我都只能尽快地找一个“近似”方法,处在没有时间深入琢磨上述系统问题的窘境。看到《性能之巅:洞悉系统、企业与云计算》一书之后,不禁眼前一亮。这本书从绪论之后,就开始介绍“方法”——概念、模型、观测和实验手段。作者不仅利用操作系统自带的观测工具,还自己开发了一套深入分析观测结果的脚本,这就是有名的DTrace Toolkit(大家可以直接找来使用)。《性能之巅:洞悉系统、企业与云计算》一书介绍的实验和观测方法,包括内存、CPU、文件系统、存储硬件、网络等各个方面。而且,在介绍方法之前会深入介绍系统原理——我没法期望更多了!
很高兴看到这一经典名著的中文版问世。因为被邀作序,有幸近水楼台先得月,深受教益。感谢译者和编辑的努力。相信读者朋友们定能从中受益。
——王益Linkedin 高级主任分析师