王耿民
本地气象信息系统入库资料延迟原因分析
王耿民
中国民用航空中南地区空中交通管理局海南分局,海南 海口 571126
通过对本地气象信息系统入库资料延迟这一案例进行分析,理顺排除故障点的思路,找出问题点,提出相应的解决方案,进而完善本地气象信息系统的运维手段。
现象描述;问题分析;故障节点处理
气象信息系统,具有收集、处理、交换、备供、存贮、显示等功能,是一个24小时运行不间断的系统,用户可通过气象信息系统查询、下载和打印气象资料[1]。
为了能更好地描述问题,本次案例中出现的设备,在网络中的相互关系如图1所示。
1.1.1 网络方面
(1)在系统网络中,蓝色和红色的区域分别代表不同的网段,各网段可相互连通。蓝色区域为本地气象情报系统,红色区域为本地气象信息系统。三亚区管气象信息综合服务系统是气象情报系统的一部分,本地气象数据库系统是气象信息系统的一部分。
(2)通信服务器、三亚区管气象信息综合服务系统后台服务器、存储服务器A和B,使用MQ方式进行传输。
(3)三亚区管气象信息综合服务系统和气象信息系统分别是两套独立的系统。
图1 设备在网络中的拓补图
(4)终端可以访问三亚区管气象信息综合服务系统和气象信息系统以及地区中心网络。
(5)外联用户可以访问三亚区管气象信息综合服务系统和本地气象信息系统,但不能访问地区中心网络。
(6)情报系统核心交换机是一台三层交换机,具备路由功能,是本地业务的核心。
1.1.2 服务器方面
(1)通信服务器,使用的操作系统为Linux 2.6.9-42.Elsmp(Red Hat 3.4.6-2),是本地业务运行系统的通信中心,内置通信子系统。它负责从地区中心网络收集资料,并分发给存储服务器A、存储服务器B以及三亚区管气象信息综合服务系统后台服务器;将本地的资料进行收集,并汇交至地区中心网络、存储服务器A、存储服务器B以及信息综合服务系统后台服务器。
(2)存储服务器A和B,使用的操作系统是AIX5.3,存储所使用的数据库是Oracle 10g。A和B互为热备,是本地气象信息系统的资料存储中心,负责存储资料。
(3)三亚区管气象信息综合服务系统后台服务器,所使用的操作系统为Linux 2.6.32(Red Hat 4.4.7-4),使用数据库为MySQL。它获取、收集并存储从通信服务器传过来的资料,提供给用户使用。
(4)三亚区管气象信息综合服务系统前台服务器,操作系统是Windows Server 2003 R2获取后台服务器的资料,以网页形式向用户提供服务。用户可从前台服务器查询、下载和打印资料。
(5)地区中心网络是各地气象信息系统的桥梁,使本地得以和其它地区系统相互连通。本地气象信息系统可以直接访问地区中心网络。
(6)外联用户可从三亚区管气象信息综合服务系统前台服务器上查询、下载和打印资料,也可使用本地气象信息系统。
(7)终端上部署了气象信息综合处理子系统,用户可通过该系统查询、显示和下载资料,也可从地区中心网络的网页上查询、显示和下载资料。气象信息综合处理子系统是气象信息系统的一部分。
根据外联用户来电反映,使用信息综合服务系统前台服务器的网页提取高空风温图和重要天气预告图时,发现资料存在延迟的现象。
(1)根据来电所反映的情况,首先对信息综合服务系统前台服务器进行检查,该服务器运行状态正常。
(2)对信息综合服务系统后台服务器数据库状态进行检查,数据库运行正常。如图2所示,查询数据库入库情况,发现资料入库延迟。
图2 MySQL数据库运行正常
(3)对存储服务器A和B数据库状态进行检查,数据库运行正常。查询数据库入库情况,入库资料亦存在相同的延迟现象。
(4)网络运行状态良好,三台服务器同时出现了入库资料缺失的情况,初步怀疑问题出现在通信服务器上。
(5)访问通信服务器,检查数据汇交,数据汇交正常;在comm用户下,使用通信子系统命令showchl查看MQ通道运行状况,通道工作状态正常;使用showque,检查通信服务器的队列消息数量,发现MQ本地队列LOCAL.PRD和LOCAL.TXT中存在大量的消息积压,如图3所示,其中DB00指代存储服务器A,DB01是存储服务器B,DB02是信息综合服务系统后台服务器,ZGGG为中心网络。
图3 通信服务器队列消息积压
(6)对通信服务器中的通信子系统进行冷启动操作后,本地队列消息积压问题没有解决。
(7)运行MQ队列管理器runmqsc,使用清除队列消息命令clear qlocal(),队列消息清零后,本地队列消息依然不断堆积。
(8)在超级用户下,使用top命令,查看系统运行状况,如图4所示:
图4 使用top查看系统运行状况
top命令界面每秒刷新一次。从第一行,可以看出系统已经连续运行了63天,当前有2个用户登录系统,系统1分钟、5分钟、15分钟平均负载正常。
在Tasks一行,当前系统总共有165个进程,其中有8个正在运行,157个正在休眠,没有终止进程和僵尸进程。
在CPU一行中可以看到,用户空间占用CPU的百分比是45.5%,内核空间占用CPU的百分比是54.5%,改变过优先级的进程占用CPU的百分比为0,空闲CPU百分比为0,IO等待占用CPU百分比为0,硬中断和软中断占用CPU的百分比分别为0。
Mem一行中,使用中的内存量高的原因,是由于通信分系统需要而人工划定的,因此当前内存运行正常。
Swap一栏中,交换分区正常运行。
第五行以后,显示的是当前正在运行的进程,其中可以看到,名称为CSH的进程达到了5个,占用了较多的CPU资源。
由上可知,当前系统CPU空闲率低,而运行中的csh进程数量较多,占用了CPU大量资源。
通过检查后,初步判断由于系统中CSH进程过多,占用了CPU资源,导致了通信服务器中资料处理进程效率降低,进而造成了MQ本地队列的消息产生了积压,最终导致了资料入库延迟。
(1)检查发现CSH进程在频繁使用系统资源。
(2)对CSH进程进行分析,发现当远程主机与通信服务器建立一次连接时,进程就会自动生成。如果远程访问不能正常结束,进程就会一直运行,不会消亡。在超级用户模式下,使用ps –ef|grep CSH,找到CSH的PID。
(3)使用kill-9 PID指令,强制中止CSH进程。
(4)使用top查看CPU的空闲率,其空闲率显著提高,如图5所示。
图5 CPU的id已提升到47.3%
(5)在comm用户下,使用showque,查看本地队列LOCAL.PRD和LOCAL.TXT消息积压情况,消息积压状况已消失。
(6)检查存储服务器A和B、信息综合服务系统后台服务器数据库,资料正常入库。
本次案例出现的原因,是由于通信服务器中CSH进程过多,消耗了CPU运算资源所导致的。CSH进程是当远程主机访问通信服务器时,通信服务器自动生成的进程。当一次远程访问正常结束时,该进程随之中止。csh残留,说明了对通信服务器远程访问未正常结束。因此,在进行一次远程操作结束后,应当正常关闭连接,尽量不要强行结束一次访问。在对本地气象信息系统的日常运维中,应定期对服务器的CPU、内存等进行检查,当发现冗余进程占用CPU大量资源时,在确认该进程不属于业务运行系统或者操作系统后,清除进程,以保证系统平稳正常运行。
[1]Dave Taylor.循序渐进UNIX教程[M].3版.戴兴邦,邓英材,等,译.北京:人民邮电出版社,2002.
Analysis of Delay Causes of Local Weather Information SystemData Entry
Wang Gengmin
CAAC Central and Southern Regional Administration Hainan Branch, Hainan Haikou 571126
Abstrac: The paper analyzes the case of delayed data entry in the local meteorological information system, rationalizes the idea of troubleshooting, finds out the problem points, proposes corresponding solutions, and then perfects the operation and maintenance methods of the local meteorological information system.
phenomenon description; problem analysis; fault node processing
TP311.52
A
王耿民(1991—),男,海南海口人,本科学历,主要研究方向为计算机科学与技术。