性能调优一直是企业应用上线准备工作的关键环节,但具有讽刺意味的是,这项如此重要的任务长期以来却没有成为一门系统化、理论化的学科,更像是基于经验和 教训的原始手工劳动。这并不是因为性能调优工程师们没有努力工作,而是因为性能调优涉及到应用的各个组件及其之间的关系,每个组件内部也需要深入分析。不 同的应用其架构、技术、组件都存在差别,难以把性能调优过程和规则抽象成通用的方法。
不过现在幸运的是,性能调优专家 Steven Haines 在多年实践和深入思考的基础上,提出了一个称为“基于等待调优”的方法,该方法尝试把性能调优工作系统化、可度量化。基于等待的调优首先执行 一个应用架构的等待点分析,以此定位有可能导致请求等待的某项技术。等待点来自两方面:基于层次的等待点,代表着跨越应用层次的转换;基于技术的等待点, 代表着可能提高或降低性能的技术,比如缓存、池和通讯基础设施。一旦定位了一系列等待点,调优过程就此开始:开放所有基于层次的等待点和外部依赖池,产生 均衡的、具有代表性的负载,然后采用后退调优,收紧等待点以最大化该请求最薄弱的一环的性能,但是不要透支。
基于等待的调优方法在生产环境中已经一次又一次的得到了证明,不仅仅是高效的,而且帮助性能工程师快速实现可度量的性能优化。Steven 同时又是 InfoQ.com 的 Java 社区编辑,这篇《一种正规的性能调优方法—基于等待调优》就是他的成果分享。
详细内容,请阅读全文:一种正规的性能调优方法──基于等待的调优。
评论