空管自动化系统飞行数据操作卡顿问题研究
吴世雄
生成PDF 清样下载 引用

复制成功

导出题录

参考文献( GB/T 7714-2015 ) 复制

吴世雄,. 空管自动化系统飞行数据操作卡顿问题研究[J]. 中国航空航天科学,202311. DOI:10.12721/ccn.2023.157305.
摘要: 针对某大型区域管制中心空管自动化系统多个管制席位的人机界面在短时间内均数次出现飞行数据操作卡顿问题,本文从系统有关日志着手,对该问题的原因进行深入分析,分别从硬件优化层面、数据库优化层面和软件优化层面上提出解决方案,经验证,该方案可有效提升空管自动化系统飞行数据处理效率,切实解决系统操作卡顿问题。
关键词: 空管自动化;操作卡顿;数据库
DOI:10.12721/ccn.2023.157305
基金资助:

1 问题描述

某日UTC时05:43开始,在10余分钟时间内,某大型区域管制中心空管自动化系统多个管制席位的人机界面均出现数次飞行数据操作卡顿的现象,主要表现为管制移交、修改CFL、在FPW窗口检索等操作需要等待5至10秒才能得到系统响应。通过检查系统的zlsem日志,发现在此期间该自动化系统存在多次CETC_FDP进程消息队列堵塞的问题,FDP数据库出现响应变慢情况,多份飞行计划操作入库指令耗时较长,日志显示有多次入库操作耗时数秒,最长的一次耗时达14秒。在此期间,人机界面对飞行计划的操作消息在FDP进程队列中等待,直到数秒至数十秒后才获得响应,因此出现操作卡顿现象。

2 原因分析

首先从系统日志出发,找出相应时间段内具体是哪些消息堵塞导致了FDP处理迟缓、响应变慢,然后再分析其具体原因。通过分析当日05时的zlsem日志,发现从05时43分到53分期间,FDP出现明显的周期性消息堵塞问题,FDP堵消息情况统计如图1所示。

1.png

图1 FDP堵消息情况

对FDP的All.log日志进行分析,发现同时段内,FDP进程处理消息耗时和FDP秒级管理耗时均明显增加,分别如图2和图3所示。2.png

图2 FDP进程处理消息耗时情况                                              图3 FDP秒级管理耗时情况

查询相应时段内的具体日志内容:

……

2023-05-17T05:44:31.423Z PLAN_MANA_SEC:: Start.

2023-05-17T05:44:31.490Z UPDATE_PLAN:: CCA4516-ZSSS-ZUUU<1684245366-1675>. Successfully.

2023-05-17T05:44:38.822Z SEND_SHM_SET:: Type[2].Plan_no[1675].

2023-05-17T05:44:38.824Z SendTermPlanMsg offset=[27806].

2023-05-17T05:44:38.828Z SEND_PLAN:: CCA4516-ZSSS-ZUUU<1684245366-1675>.

……

2023-05-17T05:44:38.844Z UPDATE_PLAN:: CSN3787-ZGSD-ZUGY<1684245613-1922>. Successfully.

2023-05-17T05:44:43.246Z SEND_SHM_SET:: Type[2].Plan_no[1922].

2023-05-17T05:44:43.248Z SendTermPlanMsg offset=[27806].

2023-05-17T05:44:43.251Z SEND_PLAN:: CSN3787-ZGSD-ZUGY<1684245613-1922>.

通过以上截取的部分日志内容,可以发现FDP处理耗时主要在更新计划入库阶段。FDP更新计划使用的SQL条件如下:

UPDATE PLAN SET NEXT_SECTOR=xxx,FLAG=xxx,…  WHERE PLAN_NO=xxx;

UPDATE PLAN SET NEXT_SECTOR=xxx,FLAG=xxx,…  WHERE ACID_KEY=xxx;

经确认,PLAN表目前只有ACID_KEY索引,没有PLAN_NO索引,在使用PLAN_NO作为条件时会做全表查询,效率较低。

3 解决方案

3.1 硬件优化层面

通过新增FDP数据库存储访问硬盘,提升数据库读写效率。在FDP1、FDP2和BFDP上分别增加两块硬盘,用于存储数据库文件,将操作系统硬盘空间和数据库存储空间进行分离,避免进程读写运行日志与进程操作数据库两类大批量操作可能产生的访问冲突。操作系统和应用软件对硬盘的操作在独立的两个硬盘上(磁盘阵列采用RAID1方式),数据库的访问在新增的两块硬盘上(磁盘阵列采用RAID1方式),经测试,这种分别存储的方式能有效提升数据库硬盘的读写效率,同时,RAID1方式也提供了较高的数据安全性和可用性。

FDP新增数据库硬盘测试情况如下:新增硬盘前,FDP1只有一块系统盘RAID1(由两块硬盘组成)。新增硬盘后,FDP1除了一块系统盘RAID1之外,还有一块数据库存储访问硬盘RAID1(由两块硬盘组成)。利用time dd命令同时向/home/users和/usr/oracle分区写不同的数据量,测试磁盘读写速度,测试结果如表1所示,从中我们可以看出FDP新增数据库独立硬盘后,数据读写效率得到明显提升。

3.png

表1 FDP新增硬盘前后磁盘读写速度对比测试结果

3.2 数据库优化层面

通过全面优化数据库索引,提升数据库执行效率。经调查,该自动化系统在项目前期阶段已对FDP数据库中FDE的表单增加了索引,明显提高了FDE模块查库效率,但未对其他表单进行优化,此次将对FDP数据库中其他表单情况进行梳理,将需要增加索引的表进行增加索引,以全面提升数据库执行效率。新增索引优化效果测试情况如下:

(1)创建plan_no索引(create index idx_plan_planno on plan(plan_no);)前后对比结果如表2所示。对比索引建立前后,执行sql语句的执行计划,开销由759减少到2,耗时由10毫秒减少到1毫秒,查库效率得到极大的提升。4.png

表2 创建plan_no索引前后对比结果

(2)创建acid_key索引(create index idx_plan_acidkey on plan(acid_key);)前后对比结果如表3所示。对比索引建立前后,执行sql语句的执行计划,开销由759减少到2,耗时由10毫秒减少到1毫秒,查库效率得到极大的提升。5.png

表3 创建acid_key索引前后对比结果

(3)创建acid索引(create index idx_plan_acid on plan(acid);)前后对比结果如表4所示。对比索引建立前后,执行sql语句的执行计划,开销由759减少到2,耗时由10毫秒减少到1毫秒,查库效率得到极大的提升。6.png

表4 创建acid索引前后对比结果

上述对比测试结果表明,建立索引可减少大量的数据库全表扫描,进一步降低操作系统I/O的损耗。FDP作为系统核心飞行计划处理服务器,各类I/O的操作响应时间优化对其性能提升有关键性作用。

3.3 应用软件优化层面

优化FDP软件,进一步提升软件运行效率,提高访问数据库的效率。具体方案如下:

(1)修改CETC_FDP程序,更新数据库PLAN表时WHERE条件统一修改为使用ACID_KEY,以使用索引,提高入库效率。

(2)修改CETC_FDP程序,计划秒级管理处理流程优化,程序每3秒会进行秒级管理,遍历计划进行相关计算处理,当需要计算的计划较多或者某个处理耗时较长时,导致整个秒级管理过程耗时较多,过程中无法消耗消息,容易引起消息处理延迟。优化程序,使用单独线程进行计划秒级管理,管理过程中不影响程序处理消息,提高消息处理能力。

(3)修改CETC_FTK、CETC_AFDP、CETC_FDE程序,航迹内部接口不使用XML格式,改用内部接口形式,提高航迹内部消息解析效率。

(4)修改CETC_FIN程序,增加接收主备同步重复数据过滤功能,备用状态下接收到主用系统IFPL时对重复数据进行过滤,减少发送给FDP进程的消息,减轻FDP程序处理压力,提高其处理其他业务消息的能力。

该层面因涉及到应用软件的修改和功能测试,需要在系统下一版本中修复、实施及验证,因此,现阶段仅提出解决方案作为参考依据。

4 总结

本文分析了空管自动化系统飞行数据操作卡顿问题的具体原因,从硬件优化、数据库优化和应用软件优化三个层面着手,分别提出了相应的解决方案,经过测试对比分析和现场实践验证,表明优化方案可有效提升系统处理效率,切实解决系统操作卡顿问题,为空管自动化系统飞行数据处理优化提供了重要的参考依据和宝贵的实践经验。

参考文献

[1] 杨嵩.浅谈Oracle数据库应用系统的性能优化[J].计算机光盘软件与应用.2015(003).111-112,115.

[2] 宋彩霞,路新春.Oracle数据库基于索引SQL优化方法的研究与实现[J].计算机工程与设计.2004(25)12.2327-2330.

[3] 刘华清,陈振东,涂刚.数据库索引与优化[J].现代计算机(专业版).2012(012).24-26.

[4] 龚维荣,周顺平,万波.浅谈Oracle数据库基于索引的SQL语句优化方法[J].计算机工程与应用.2003(039)005.196-199.