中国南方航空股份有限公司

中国南方航空股份有限公司,总部设在广州,成立于1995年3月25日,以蓝色垂直尾翼镶红色木棉花为公司标志,是中国运输飞机最多、航线网络最发达、年客运量最大的航空公司。南航年客运量居亚洲第一、世界第三;机队规模居亚洲第一,世界第四,是全球第一家同时运营空客A380和波音787的航空公司。是中国航班最多、航线网络最密集、年客运量最大的民用航空公司。
挑战

首先是在系统承受并发压力增大的情况下,如何保障业务顺利开展。业务顺利与系统的健壮性不可分离,业务上线前,在测试环节定位性能问题和优化是前提,上线后实时对多种语言、后端系统统一监测并能预警与溯源是保障;引入APM(应用性能管理)系统对保证系统健壮性与提升用户体验非常重要。

解决方案

实时监控应用系统状态,开发运维及管理人员可以第一时间了解系统健康状态。 从大量后端应用服务和数据库服务中,快速定位耗时最长、调用次数最多的逻辑单元,帮助运维开发人员收敛系统故障点。 深度追踪异常用户体验和应用性能,在代码级别、SQL语句级别、页面加载逻辑单元级别,提供问题根源定位。 系统升级前后数据对比,通过报表呈现,可有效的追踪不同的性能指标趋势,从而为建立优化管理制度打下基石。

1

移动APP后台--国际查票回程业务缓慢分析

某次系统升级后发现国际查票回程业务经常出现缓慢,通过博睿Server监测,发现主要受以上类、方法的调用耗时较长导致

移动APP后台--国际查票回程业务缓慢快照分析

以其中一次慢业务过程为例,快照分析中可以看到主线程自身处理时间143572ms,且有21次NoSQL调用,平均1.62ms, 其中sun.misc.Unsafe:park自身处理时间142455ms,主要由于该请求多次重复调用Nosql失败后请求超时,产生死锁导致。通过修改redis超时参数后修复

2

移动APP后台--数据库调用分析发现隐患问题

通过分析移动APP后台的DB发现个别SQL语句调用时间过长

移动APP后台--缓慢SQL业务请求分析

以上为调用SQL(select a.id from csmbp_nps…)的健康变化趋势图,发现该SQL涉及的业务为推送订阅的航班动态

移动APP后台--慢SQL调用快照分析

通过某次快照分析中可以看到MYSQL调用耗时占总耗时的99.2%,经DBA针对此进一步分析后发现该SQL会占用应用数据库连接,导致应用在运行一段时间后异常缓慢,无法正常对外服务,通过调整SQL后恢复正常

移动APP后台--错误统计

发生最多的错误原因为SocketTimeroutException,错误占比60.07%

该错误主要是移动APP后台调用外部服务接口时等待超时

3

移动APP后台--调用外部接口超时快照分析

以其中一次错误为例,快照分析中可以看到错误详情java.net.SocketTimeoutException:Read timed out即调用外部服务等待超时。快速定位问题原因为外部系统导致,将该问题传递给外部系统管理人员解决

4

官网后台--票价查询业务缓慢分析

票价查询业务通过博睿Server探针监测,发现其业务过程缓慢主要受以上类、方法的调用耗时较长导致

官网后台--票价查询业务慢请求快照分析

以其中一次慢业务过程为例,快照分析中可以看到主线程自身处理时间22680ms,其中com.csair.veda.domain.fare.fq.FqMinaClient:queryAsync自身处理时间19431ms,占比85.67%。导致查询票价结果超时

客户对APM系统进行分期建设,目前二期项目将继续由博睿承担建设,二期将更全面地在后台多个系统应用上部署博睿server探针,未来还将融合客户现有的ELK日志系统、运营平台数据、实现端到端的全业务链监控。

价值

MTTR减少40%,用户满意度提升7%,有效提升用户体验。通过直观对比系统升级前后数据,可有效的考核团队KPI,从而为建立优化管理制度打下基石。