继续上调优的前菜,一份接一份。其他前菜包括:
- 另一份Java应用调优指南之-工具篇
- 另一份Java应用调优指南 - 前菜
1. 目标
调优之前,先认清自己的目标:
- 1. QPS,地球人都懂的指标。
- 2. 平均/中值响应时间:地球人都懂的指标2,其实中值比平均值更好,而均方差看的人很少。
- 3. 99.9%, max响应时间:99.99%延时=30ms的意思就是,99.99%的请求,都能在30ms毫秒以内完成。对于服务质量的评估,毛刺率也很重要。一个服务可能平均响应时间是2ms,但遇上GC等Java绕不过去的坎,20ms也可以接受,但如果是200ms,就要找原因了。
- 4. CPU消耗:CPU能省就省,特别是docker时代,省了自己就方便了别人。但CPU也要能压上去,否则就是哪里有锁了。
- 5. 内存,网络IO,磁盘IO消耗:特定场景特定优化。
2. 为什么说调优是艺术
说调优是艺术,因为它源于深厚的知识,丰富的经验和敏锐的直觉 -《Java性能权威指南》,所有网上的文章,都只能拓展你知识的深度。
3. 资料
3.1 书籍
《Java性能权威指南》
比起多年前那部调优圣经,讲得更加深入,也更加贴近现在的JDK。可以从里面挑些知识点来,做Java调优的面试题。
《Java性能优化权威指南》
前面的章节值得看,但Gosling说圣经有点过了。
《深入理解 Java 虚拟机 第2版》
理解虚拟机并不是那么难,Java程序员来说,很多知识其实是必须的。另外还有几本类似主题的书,忽然一下子都出来了。
3.2 网站
原文 http://calvin1978.blogcn.com/articles/perf-tunning-3.html