性能优化是我们开发中经常要做的事情。通常我们也就在代码层面做一下优化,抑或在流程层面进行改造,基本很少进行架构层面的优化。架构一般都是推翻重构的。
《性能之巅》这本书是二刷。第一次看这本书,留下的唯一印象就是3.3Hz CPU寄存器延时的阐释,让我意识到硬盘读写和网络传输跟CPU运算的巨大差距。
这个差距催生了许多从软件层面解决问题算法跟数据结构,比如用于数据库索引的B+ tree,比如各种排队模型。
所谓性能,其实就两个核心点: 延时和吞吐量。 例如,在《HTTP权威指南》里面讲到HTTP事物性能,最关键就是时延。 从[DNS查询,连接,请求,处理,相应,关闭]整个链路, 性能聚焦区域都是每个关键节点的耗时。
负载是性能突变的一个关键点。比如网络繁忙导致性能下降,跟高速公路汽车太多使得速度提不起来一样。所以就出现了很多监控负载的工具,针对各种性能问题,光有被动监控是不够的,得主动剖析。
基于这些工具的使用,形成了一套方法体系。比如工具法,USE法,随机变动法...
做底层性能监控,核心体系还是有套路的。
比如操作系统中,各种观测来源是/proc和/sys文件体系。 比如应用程序中,各种瓶颈基本在IO,缓存,缓冲,垃圾回收这里。
接下来介绍了CPU, 内存,文件系统,磁盘,网络 这5大核心知识点。
在一本书中,囊括了操作系统的几大核心模块,可以猜测到必然不会面面俱到,所以本书的侧重点是各种命令工具。
所以,本书从另一个层面理解就是一个工具箱介绍手册,分门别类进行了归纳,并提供了正确的使用方式。 学了本书后,会让你尽量不会做用斧头切菜这样的操作。 由于本书跟《设计数据密集型应用》类似,高屋建瓴,所以向CPU,内存,文件系统,磁盘,网络这些核心知识点,还是需要从其他的书中补充。