APP下载

国家高性能计算环境运行状态诊断系统

2024-02-27赵一宁肖海力

数据与计算发展前沿 2024年1期
关键词:诊断系统日志总体

赵一宁,肖海力

中国科学院计算机网络信息中心,北京 100083

引 言

中国国家高性能计算环境(中国国家网格,CNGrid)[1-2]是由国内众多国家级和地区级计算中心、高校、科研单位的计算资源汇聚而成的大规模超级计算环境,长期为国内科研用户提供优质的高性能计算资源。目前国家高性能计算环境已经拥有22 个结点,聚合计算资源超过800PFlops、存储资源超过500PB,支持了物理、化学、生物医药、工业设计、教育等众多领域的专业社区和业务平台,对推动我国科学技术水平的发展起到了重要作用。

中国科学院计算机网络信息中心是国家高性能计算环境的运管中心和北方主结点,并通过中心自主研发的高性能计算环境核心软件SCE[3]实现了环境资源汇聚、作业调度和运行支持等服务。在环境运行维护工作中,建设安全运行机制以支持环境稳定运行是一项十分关键的任务。我们研发部署了包括环境资源监控、环境信息采集、环境数据分析等一系列相关机制,并通过对日志等环境数据进行分析来获取环境状态侧写并发现异常来辅助环境运行维护工作。然而这种数据分析的结果通常是文本和数字形式,对运维人员来说缺乏直观印象,不利于快速理解。

为此我们建设了高性能计算环境运行状态诊断系统,它是一种对于目标计算环境的运行状态进行量化和可视化评判的系统,通过对于目标环境的信息收集、整理,进行不同角度的分项分析,并最终将各分析结果集成为统一的环境运行状态分值,采用可视化方法将各类分析结果立体的表现出来,以便相关运维人员能够直观的获取环境信息和快速定位问题。由于整个环节绝大部分处理分析工作是由程序自动完成,环境运行状态诊断系统极大减少了人工操作量,为运维工作起到有效的支撑作用。

环境运行状态诊断系统主要通过量化和可视化的方法对单项分析方法的结果进行转化和集成。针对目前环境中已经存在的日志流量异常检测、日志关联性异常分析和用户行为特征判别等分析方法,我们根据其分析结果种类分别转化为数值,再进行标准化和归一化等转换,形成单项分析分值,之后将单项分值合成为环境总体状态分值。总体分值的合成原则包括:(1)合成后的总体分值要保持在取值区间[0, 100]以内;(2)总体分值需要能够比较明显的感知单项分值的变化,即当某一单项发生较明显的升高或降低时,总体分值也会相应表现出可观测的升高或降低。同时,根据分析结果的实际含义,环境运行状态诊断系统采用可视化图表的形式将结果表现出来,利用色彩和空间来辅助运维人员更好的理解环境运行状态。我们使用了包括热力图、关系图、散点图、雷达图等形式对分析结果进行表述,并采用网页形式将各图表集成成为诊断系统。

环境运行状态诊断系统已经在国家高性能计算环境中实际部署,并有效的支持了环境的稳定运行。该系统采用了框架式结构,可以方便的集成更多分析方法以实现更多角度的状态信息获取。此外该运行状态诊断系统可以适用于各种分布式系统,具有比较好的普适性。

本文第1 节简单介绍本领域的其他相关研究工作;第2节将介绍国家高性能计算环境相关背景需求以及运行状态诊断系统总体设计;第3节主要阐述了分析结果转换为分值的量化方法;第4 节介绍了分析结果的可视化展示方法及集成;第5 节给出了一些实际工作中发现的异常案例。

1 相关研究工作

环境数据的获取与分析是一种常见的环境状态感知和问题发现与处理的方法。环境数据主要来源于系统监控等性能指标和日志等应用程序产生的数据。系统监控是一种用途极其广泛的信息获取手段,典型的应用领域包括自然环境检测、硬件设备状态、广域信息收集、智慧城市等等。系统监控主要由采集监控目标的数据、实现数据格式整理和预处理、进行所需要的统计分析和结果最终呈现等步骤组成。自然环境数据的采集主要通过传感器等特种设备实现,而计算机相关的系统监控数据主要通过数据采集工具实现,例如Flume、Scribe、Chukwa[4]等。也有相对成型的完整系统及数据监控软件工具,如Nagios、Ossec 等。监控系统往往需要引入可视化技术,来实现更易读的监控效果。

基于日志的处理分析是对于环境数据的进一步应用,可以通过数据挖掘、机器学习等方法得到潜藏在表象之下的一些信息要素,常用于发现和预测异常、系统及用户行为分析等目的。贾统等[5]系统性整理了基于日志数据的系统故障诊断技术;Du 提出了基于深度学习的系统日志异常检测与诊断工具DeepLog[6];Das通过一系列工作[7-9]深入研究了基于日志的节点故障预测方法;Peng 提出的自动挖掘日志种类关联性的方法[10]还使用了可视化技术来辅助对于结果的表现。

数据可视化是一种常用的数据展示和分析的方式,可以达成增强数据表现力、发现平板数据中难以察觉的信息等目的。目前已经有非常多的可视化编程图表库和工具软件,包括Echarts、G6、Plotly、ggvis、ggplot2、R、D3、Easycharts、Tableau、Raw 等等,功能上也可分为侧重展示的静态图表和侧重分析的交互图表等。除了传统的数据可视化、科学可视化以外,近年来叙事可视化逐渐成为一种重要的可视化应用方向[11-13],其主要通过可视化来进行时间线梳理、空间位置展现、人物关系表达以及关键场景还原等,相比原本简单的故事描述具有更有效的信息传达效果。也有相关工作利用可视化工具实现艺术创作和艺术表现。可以看到可视化方法具有越来越广阔的应用前景。

在数据处理分析展示领域,Elastic 公司的ELK 框架[14]是一种使用非常广泛的工具。ELK框架包括ElasticSearch、Logstash、Kibana 以及后续增加的Beats 等一系列软件组成,分别用于覆盖数据的采集、整理、存储搜索以及可视化展示等各个环节。由于这一系列软件是由同一公司开发的,软件相互之间啮合效果很优秀、数据接口一致,使得ELK框架的组合使用非常便捷,可以满足很多场景的基本需求。然而作为通用框架,ELK只包含了比较常用的数据整理分析和展示方法,当目标系统有特定的数据处理方法和展示需求时,仍需要人工变更添加相应方法内容。

2 系统建设背景与总体设计

环境异常状态诊断系统主要应用和服务对象即为国家高性能计算环境,这是一种大规模分布式的高性能计算环境,通过中国科学院计算机网络信息中心自主研发的SCE 核心软件将来自全国范围的高性能计算资源聚合起来,屏蔽异构性,为用户提供包括命令行、portal页面等统一的访问方式,极大简化了用户的使用难度,同时也为大规模计算任务和大科学装置研究提供有力的支撑条件。为确保运管中心与环境各结点间的协调运作,SCE在每个环境结点集群设有前端服务器,在提交计算作业的同时收集所在集群的队列和作业信息,与中心服务器进行信息交互,此外还有访问服务器负责与用户及社区进行交互和接受计算作业。因此环境核心服务是一个分布在众多服务器上的复杂系统。

针对高性能计算环境的安全数据分析工作,我们在过往的工作中设计了网格环境日志分析框架LARGE(Log Analyzing fRamework in Grid Environment)[15],定义了环境数据采集、数据处理分析、结果反馈等关键步骤,并陆续研发了环境事件流处理与分发系统[16]、日志模式提炼算法[17-18]、多种环境日志分析方法、实时日志监控警报等系统和工具去填充LARGE 框架,初步形成了环境数据处理分析工作流程。然而这些方法大多用于解决特定问题或从特定角度进行信息整理,所生成结果比较零散,在增加运维人员工作量的同时也不利于把握环境整体状况。

图1 网格环境日志分析框架LARGE系统结构Fig.1 System architecture of LARGE

对此,我们需要设计一个专门用于整合各环境数据分析结果的系统,将分析结果转换为统一的格式,最终合成为少量的环境总体状态信息,以便运维人员可以通过观察该信息即可获得对环境状态的大体了解。我们将该系统称为环境运行状态诊断系统。系统的工作流程示意图如图2所示。

图3 分析结果量化与合成工作流程Fig.3 Quantifying and integrating workflow of the analyzed results

环境运行状态诊断系统的主要目标为帮助运维人员直观了解环境运行状态,以及当环境出现异常时能够快速定位问题发生的位置和种类,因此在设计时既需要考虑如何将分析结果整合成为一个易于观察又能反映环境状态变化的信息,又需要考虑如何将环境状态信息还原到具体的服务器系统上。面对这两个考量,我们采用了量化和可视化的方法作为解决方案。首先我们采用状态分值作为环境状态分析结果的整合接口,将各个单项分析结果根据其涵义转换成为单项状态分值,再将各单项状态分值合成成为总体状态分值。然后我们需要针对每个单项分析结果建立一个可视化图表,通过形状、色彩和空间位置等元素将分析结果更直观的表现出来,同时加入关键信息的具体区分,例如异常信息种类、程度和所在服务器等。

在实际应用时,运维人员可以先观察总体状态分值来获知当前环境总体运行状态,当该分值发生明显变动时,则通过分项分值了解异常所属的分析结果,再转到相应的可视化图表中观察异常的种类程度和发生位置等信息。通过这种方法,系统达到了状态认知直观和问题定位快速的效果。

值得注意的是,环境运行状态诊断系统也是一种框架式的结构,它并不限定能接入的分析方法的数量。当目标环境需要加入一种新的分析方法时,只需要定义好该分析方法的分值计算方法以及可视化图表表现方式,就可以很方便地加入到环境运行状态诊断系统,因此系统具有较好的灵活性。

3 分析结果量化与合成

在过往的研究工作中,我们已经开发了包括日志流量异常分析、用户行为特征分析等多种环境数据分析方法。这些分析方法可以是灵活的、定制的,能够从不同的角度获知环境状态,给出各自的环境侧写,但由于分析目标的不同,其结果形式也是多种多样,缺乏一种通用的格式将各个结果整合起来。为了实现集成各项分析结果形成统一的环境运行状态诊断结果的目标,我们采用量化转换的方式,首先为各单项分析结果转换为单项结果分值,再将各个单项分值合成成为环境总体状态分值。

分项状态分值和总体状态分值的取值范围皆为0~100,其中分值越高代表环境状态越趋向于好或正常,分值低则代表环境状态趋向于差或异常。在实际计算时,为便于各种函数转换,我们将会把计算值标准化映射到0 到1 的范围内(称为结果分值),再在最终显示时将计算值乘以100转换成百分制分值(状态分值)。

单项分析方法的结果虽然形式多样,但大体上可以分为两个种类:连续型结果和离散型结果。连续型结果通常是由数值表示的,其分析结果是分布在一个区间内的某种数值,例如给定一个时间点和一个位置点,通过分析得到了该位置在该时间点的温度,这种结果就是连续型。离散型结果表示分析结果可以由类型来表达,且类型的数量是可数的,例如给定一个时间点,通过查询分析可以得知这个时间点是星期几,这个结果就是离散型(仅有星期一到星期日这7 种类型)。在处理这两种类型的结果并将其转化为分项分值时,也需要采用不同的转化方法。在本节将逐一介绍不同类型结果的分值转化方法以及最终合成总体状态分值的方法。

3.1 连续型结果量化方法

在转化连续型分结果时,首先需要将分析结果数值归一化映射在0到1的标准范围内。在执行该操作时,可以观察分析结果数值的分布。设分析结果数值为a,通过对目标环境不同状态下分析结果的观察,发现a在绝大部分情况下其数值落在最小值A和最大值B之间,即多数情况下A

最终的分项状态分值I=norm(a)×100。部分情况下a的值是一个以0为原点的正负浮动值,此时可以以a的绝对值(|a|)作为归一函数的输入值。

在分布式环境下,可能存在从多个设备采集数据并分别分析的情况,此时每个设备会得出一个独立的分析结果数值ai。而在合成环境总体分值时,通常对于每个分项分析结果只需要一个分值,因此在这种情况下我们还需要将各设备生成的数值先合并成为一个分项结果分值。该分值的计算方法要根据分项分析方法的目的来决定,如果分析方法的目标是获取各设备的大体状况,则总计分值可以采用求平均值的方法,即v=(∑i=1n(norm(ai)))/n;如果分析方法的目标是判别对象环境的异常,数值是用来衡量目标设备异常程度,则总计分值取所有设备分值中的最小值比较合理,即v=min(ai)。

3.2 离散型结果量化方法

由于我们最终需要计算的状态分值本身是一个连续型的数值,所以对于离散型结果来说无法通过函数直接进行数值转化。离散型结果通常是某些种类型,而这些类型在给定分析场景下应该是有意义的,因此我们可以采用人工定义结合函数转化的方法为离散型结果赋予分值。

以某内网工作环境使用的异常分析为例,该方法通过对用户访问和操作数据进行统计分析来发现使用量高峰,其分析结果是每天使用量最高的一个小时。假设该工作环境的使用者工作时间相对固定,则使用量高峰通常处于正常工作时间,例如早8 点至晚6 点,而在晚间6 点至0 点发生高峰的可能性较低(但也存在因为加班造成用量高峰的可能性),在深夜0点至早8点出现高峰的可能性极低(通常说明发生了异常情况,例如系统入侵攻击)。在这种情境下,在进行分值转化时就可以设定高峰分布在深夜几个小时的类别为异常值较高(即状态分值较低),晚间几个小时异常值中等,工作时间异常值为低(状态分值高)。具体的分值可以根据对一段时间历史数据进行统计计算后得出。

部分场景下,分析方法会输出多个离散型结果,即分析结果属于多种类型,同样我们需要根据该场景下的具体含义决定该分析方法的总计分值。设分析结果得到n种类型,其结果分值分别为{a1,a2,…,an},假设目标场景只是一般的状况信息获取,则总计分值仍可以采用求平均值的方法,即v = (∑i=1nai)/ n,随后再执行归一化转化;如果分析出的结果类型都属于异常,则可以使用累加的方法,v=1-∑i=1n(1-ai),然后再归一化到分项分值区间,当累加值v 低于下限时,则设定v = 0。根据实际背景需求,还可以采用取最高值、加权值等方式获得状态分值。

3.3 总体分值合成方法

在完成各分项分析结果的分值转化后,环境运行状态诊断系统还需要将各项分值合并成为环境总体状态分值。环境总体状态分值作为最顶层的环境状态判断依据,需要能够接近实时的且明显的反映环境状态的变化,为了达成这个要求,需要满足以下两个条件:(1)当单一分项分值下降或上升时,总体分值也相应发生可明显观测到的下降或上升。(2)当全部分项分值都明显降低时,总体分值仍不低于0;当全部分项分值达到最高值时,总体分值不超过100。

其中第2 条保证了总体分值处于指定的取值范围[0,100]之内,而第1条确保了状态分值的有效性。

为满足这两条要求,我们设计了相应的总体分值合成方法。假设每个分项结果分值分别为{v1,v2,…,vn},则合成的总体状态分值S为:

这里wi为针对vi的权重函数。因为在实际运行中,并不是每项分项分析方法都具有相同的影响力,以网络流量分析为例,其流量变化可能比较频繁,波动也比较大,但其可接受的变动范围也比较大,即可以在较大程度上容忍这种状态变化,因此在进行总体分值合成时,就需要相应降低流量分析分值的权重。相对的,例如环境故障及异常分析这类方法,在环境正常运行的情况下其分析结果中带有异常情况的概率很低,即多数情况下该项状态分值都是满分,然而一旦发现了异常,可能就会代表某些严重的故障,因此在合成总体分值时,这一类异常分析的权重就需要有所提升。

观察上面的总体分值合成方法可知,wi(vi)的取值范围仍在0-1 之间,而每项wi(vi)的值越小,最终得到的总体状态分值S的值越小。因此在设计权重函数w时,当需要降低某项分析结果分值vi的权重时,可以将wi设定为(若想进一步降低该权重则可将平方根运算替换为三次方根、四次方根运算)。若要增加分析结果分值vi的权重,则可以使wi(vi)=vi2。

4 分析结果可视化集成

对分析结果进行可视化转换的目的是通过人类视觉敏感的颜色、形状、空间位置等方式去表现人类相对视觉不敏感的数字、文字等信息,是在进行数据分析时的一种常用手段。在环境运行状态诊断系统当中,我们需要通过可视化图表的形式来达成环境状态异常的种类获知和快速定位。本节将以我们过往工作中在环境中建立的一些数据分析方法为例说明如何建立满足前述需求的可视化图表,并简要介绍系统集成效果。

4.1 日志流量异常分析的可视化转换

日志流量异常分析[19]是一种针对单位时间内各类日志数量变化进行的分析方法,主要为了发现不能由日志内容体现的日志流量变动的异常,例如用户反复执行登录操作或某主机突然不再产生日志等。该分析方法主要采用主成分分析(Principal Component Analysis,PCA)方法,将数据投射到低维空间,并根据样本与低维空间的距离判别异常样本。同时该方法利用余下的正常样本建立正常流量模型,应用在实时日志流量检测当中。当发现实时流量与正常流量模型差异较大时即向环境运维人员发送警报信息。

日志流量异常分析的结果类型属于连续型结果,它会为每一个服务器在单位时间内的流量与正常流量模型生成一个比值,该值代表了该服务器在这个单位时间内流量与正常模型相比的差异,其比值为正时代表流量的增加,比值为负时代表流量减少,比值的绝对值越大代表变动的幅度越大。针对这种结果,我们可以采用热力图的形式进行可视化转换。如图4所示,该图表中的横坐标为时间轴,纵坐标代表环境核心软件所部署的服务器,因此每个格点即为某服务器在某个单位时间内的流量变化,当流量增加时格点颜色会变红,流量减少时会变蓝,而颜色的浓度则表示了变动的幅度。由于我们保存了过往一段时间内的流量变动记录,该图表还可以观测到流量的变化情况,从而更好的发现异常的发生时间点,例如可以观测到从大约1小时前某服务器的流量持续增高等等。

图4 日志流量异常分析可视化效果Fig.4 Visualization of log flow detection

图5 日志关联性分析可视化效果Fig.5 Visualization of log association

图6 用户行为特征分析可视化效果Fig.6 Visualization of user operation analysis

4.2 日志关联性分析的可视化转换

日志关联性分析的目的是通过应用关联性分析的方法来获知不同日志类型之间的前后关联关系,并应用到异常事件预测的工作当中,尝试获得事前提醒以避免问题或者减轻所造成的损失。我们梳理了历史日志数据,建立了双向日志关联矩阵,分别用来存储“A 后发生B”的情况和“B前发生A”的情况,最后用两个矩阵相应位置的数据相乘既可获得两种日志类型间的关联性和间隔。该方式可以一定程度上消除两种类型发生频率差异所带来的影响。我们选出需要关注的异常事件,并根据关联矩阵反推在其之前发生的事件类型,形成异常事件链,并据此生成预测规则。

日志关联性分析的结果属于离散型,表现为在实时监控到的日志数据当中是否存在异常事件关联模型中存在的日志类型,以及该类型在异常事件链中距离异常发生还有几步。我们采用关系图对日志关联性分析的结果进行可视化表述,使用箭头粗细代表关联度强弱。当图中表示的事件类型发生时,相应的圆点会高亮显示以提示运维人员。

4.3 用户行为特征分析的可视化转换

用户行为特征分析的主要目标是通过分析过往用户操作记录,形成用户行为特征模型,并用于预测用户操作种类概率。当用户操作习惯发生变更时环境运管人员就可以执行相应动作,例如为用户提供针对性服务或阻止网络攻击等。我们基于深度学习算法提出了一种新的图神经网络和循环神经网络叠加的方法[20],根据历史操作数据建立用户行为特征模型,用于比对用户实时操作并判断其行为是否与历史行为差异较大。

我们采用散点图对用户行为特征分析进行可视化展示,其中横坐标为时间轴,纵坐标为环境用户。对于用户的每一次操作,模型都会给出一个下一步操作的概率排序列表。当用户实际操作发生时,其选择的操作类型在概率列表中排名越高说明其与模型越相符,则在可视化图表中用蓝色表示;当用户实际操作在概率列表中排名低则说明其行为变化较大,其在可视化图表中用红色表示。因此图表中新增的圆点可以表达“哪个用户”在“哪个时间”进行了一次“与预测模型差异有多大”的操作。此外我们还可以在浮动窗口上增加相关参数说明,进一步补充用户操作信息。如果运维人员发现某用户连续发生与预测模型差异较大的操作,即可查阅相关访问数据并分析变化原因。

4.4 环境运行状态诊断系统可视化页面集成

最终,我们需要将前述的各项分析图表页面以及状态分值集成到统一的诊断系统页面中。我们基于Echarts 工具生成相关可视化图表的web 页面,并集成成为一个统一的框架。图7 为集成后的环境运行状态诊断系统总体状态页面和服务器状态页面。左侧总体状态栏包含了表示总体分值的仪表图、历史分值折线图和表示三种分析方法结果分值的雷达图,顶侧是导航栏,用于在不同页面间切换。除了三种分析方法页面之外,我们为每个环境中的服务器也进行了状态分析和分值合成,并通过服务器状态页面将结果表现出来:每个圆点代表了一个服务器,其状态分值越高则颜色越偏绿,状态分值低则用红色表示。通过该视图可以快速了解环境中各结点的状态分析结果。

图7 环境运行状态诊断系统总体集成效果Fig.7 Integration page of the environment monitoring and diagnosing system

5 实际应用效果案例

国家高性能计算环境运行状态诊断系统已经部署上线运行,并且在工作中起到了很好的效果。本节将介绍几个实际工作中检测到的异常情境作为本系统的应用效果案例:

(1)某类型日志数据突然呈爆发式重复出现:环境日志中某种类型事件(通常为正常运行情况下不出现或很少出现的事件)突然大量重复出现,在诊断系统中表现为日志流量突然爆发式增加。以环境实际情况为例,某主机突然持续发生磁盘读写错误的警报事件,代表该主机磁盘系统损坏。还有一例是某合法用户发生频繁重复登录的情况造成大量的用户访问日志,经查为一个登录脚本无法正常结束而造成无限循环登录的结果。

(2)环境服务器硬件异常:环境中某结点服务器突发硬件异常,导致大量报错信息重复性写入,主要异常信息关键词包括CPU、error addr、Unified memory controller error、cache level 等。疑似系统硬件故障或接触不良,需上报异常并检修硬件。

(3)集群应用运行规模较大导致内存溢出:某集群日志中较为频繁的发生内存溢出的情况,导致系统内存自动扫描和终止。经查发现与某并行科学计算应用软件的计算任务运行具有较高的关联性,可能由其引发。该软件运行规模较大,对单个节点造成较大压力,导致内存溢出。

(4)用户使用不被允许的方式访问环境:监控过程中发现某用户反复不断的执行同一种操作(如登录或提交作业),原因为其使用自己编写的程序频繁的反复执行该操作。这种行为与其他用户迥异,属于异常的用户行为。后与该用户联系沟通,说明这种操作方法是不被允许的,并进行警告。

(5)潜藏挖矿行为:某计算集群监控发现每天深夜固定时间起部分计算节点处理器使用率飙升,通过进程查看却未发现占用系统资源的进程。通过对于日志等信息的整理分析发现一些用户异常操作,例如用户建立定时执行脚本、尝试使用绕过系统安全配置的操作等,同时发现资源占用率异常的计算节点与某一特定计算节点发生较多通信交互。进一步执行信息追溯与分析,发现有人通过登录节点侵入系统后,在一内部计算节点植入了具有隐藏功能的内核级木马,以隐蔽其挖矿行为,使查询进程操作无法显示挖矿程序。在清晨到来前所有节点会结束挖矿进程,其它节点自动清除程序以减少被发现的几率。

这些异常案例被诊断系统发现后快速报告给相关负责人员,为解决系统及用户异常问题、维护环境稳定运行起到了重要支持作用。

6 总结与展望

本文介绍了国家高性能计算环境运行状态诊断系统的设计与实现。环境运行状态诊断系统针对大规模分布式计算环境中运行状态信息复杂多样、难以形成快速的总体分析和异常定位的问题,采用量化和可视化的方法建立了一种面向多样状态分析方法的诊断框架,可以方便的添加分析方法并集成为总体状态分值和可视化页面系统。该系统框架也可以适用于其他的分布式系统,具有比较好的通用性。

未来我们计划增加更多的状态分析方法,使得系统对于环境的总体状态信息整理更全面有效。此外我们可能会进一步强化对于环境和系统异常的响应和处理机制,从而更充分的发挥环境状态诊断结果的作用。针对分析目标数据的特征改变分析结果量化计算方法也是另一种可以研究的方向。

利益冲突声明

所有作者声明不存在利益冲突关系。

猜你喜欢

诊断系统日志总体
一名老党员的工作日志
用样本估计总体复习点拨
2020年秋粮收购总体进度快于上年
扶贫日志
区间轨道电路智能诊断系统的探讨
外汇市场运行有望延续总体平稳发展趋势
设备在线诊断系统在唐钢的建设与应用
游学日志
直击高考中的用样本估计总体
连铸板坯质量在线诊断系统的应用