项目在实施、交付、运维过程中难免出现过各种各样的线上服务异常发生。线上服务不同于本地,本地调试千好万好上线也运行难免出现问题。如:CPU爆满、起飞、生产环境突然卡顿、宕机、部分功能出现性能抖动、应用资源消耗过大等。
这些问题不仅严重影响生产环境的稳定性,也影响着客户对我们产品的信任与最终质量评价。使用合适的技术进行服务异常的快速排查、诊断、定位、优化,以及使用合理的运维与监控技术将极大的提高技术人员的生产力,更好的赢得客户对我们的评价、信任。同时,高质量的技术保障也将成为影响着项目最终是否快速、成功交付的一项重要指标。
作为技术顾问,我们在不断积累各个项目的经验和学习产品的过程中,也进行着技术的积累。逐渐形成和总结出一套的关于线上服务异常的快速定位、诊断、排查的思路与方法。对以后项目中出现各种各样的线上服务异常,提供一套快速排查和处理的思路与方案,尽量减少排查问题的成本。
课题针对常见的线上服务问题做简单描述,并给出排查和分析的相关技术详细使用讲解,以及几处实际案例的具体处理方式与演示。最后引入自动化运维、监控工具的介绍与具体使用方式。
xxxx
文献或工具 | 作用 | 地址 |
JConsole | 内存、线程、堆栈分析 | JDK/BIN内置 |
VisualVM | 线程、内存、CPU、GC监控工具 | |
MAT | 基于Eclipse内存泄露分析工具 | www.eclipse.org/mat |
JProfiler | 内存、CPU、线程、性能采集剖析工具 | www.ej-technologies.com |
Arthas | Alibaba开源的Java诊断工具 | https://arthas.gitee.io |
Zabbix | 基于Web的开源的系统监控与运维工具 | www.zabbix.com |
深入理解Java虚拟机 | 周志明,机械工业出版社 | |
Think in Java | Bruce Eckel,机械工业出版社 | |
栈缺省值 | https://docs.oracle.com/en/java/javase/11/tools/java.html#GUID-3B1CE181-CD30-4178-9602-230B800D4FAE |
课题内容与演示系统均基于JAVA编程语言所开发的项目。其中,第六章《监控与自动运维》适用于目前公司所有产品、项目。全文使用linux环境,用以模拟正式生产环境,同时使用XXX项目作为真实项目演示。