一、当系统某一模块的部分功能访问很慢,怎样检测?
1.检查线上10台机器各硬件负载指标均正常(硬件)
2.查询线上10台会员系统日志,出现大量请求Timeout(网络)
3.检查3台MySQL数据库,访问非常慢,并且连接已占满(应用内部)
4.进一步查明,大量连接都在执行一个会员注册的SQL语句,找到问题(应用外围的节点组件)
二、若以上步骤都用人工去完成,需要消耗多长时间?
优化:
1.采用Zabbix对线上机器各性能指标进行集中监控
2.使用ELK对线上日志集中存储查询
3.使用Anemometer集中监控SQL语句
以上三个功能合起来就是我们的APM系统
三、若这个SQL并不是慢查询,且这时的流量并不大
那么只能查看代码,这个时间可能比前面四个步骤花的时间还要长,一般是耗时较长的代码段
四、APM简介
APM全称是APPlocation Performance Management(应用性能管理),APM致力于监控和管理应用软件的性能和可用性。通过检测和诊断复杂应用程序的性能问题,来保证软件应用程序的良好运行
五、APM发展的三个阶段
1.以网络为中心,网速即运行速度,APM主要指基础组件的性能监控
2.以IT不见、组件为中心,监控围绕着部件、组件健康状态,基础设施可用性,伴随IT基础建构组件发布
3.以IT应用核心和业务交易为中心,IT架构高度复杂性,专注IT应用,面向用户,提供应用生命周期管理
六、各互联网公司APM解决方案
1.google:dapper
2.京东:hydra(开源)
3.小米:open-falcon(开源) 等
七、现有监控系统解决方案对比(Zabbix和open-falcon)
主要功能:CUP负荷、内存使用、磁盘使用、网络状况、端口监视、日志监视
不同点:
1.
Zabbix | open-falcon | |
用户群 | 85%互联网企业 | 美团、滴滴、爱奇艺等 |
优点 | 1.安装部署简单 2.多数据集采集灵活集成 3.用户群体大,使用时间长 | 1.数据采集免配置 2.吞吐量高,支持单周期亿次数据采集,告警判断 3.中文文档齐全 4.水平扩容多IDC支持 5.支持策略模板、模板继承和覆盖、多种告警方式、支持callback调用 |
缺点 | 1.易用性不高、而且很多定制化监控实现起来很麻烦 2.应对超大流量有点力不从心 | 1.部署复杂,单个组件太零散 |