电网自动化主站计算机系统性能测试

2013-04-17 11:05李红文
机电信息 2013年9期
关键词:计算机系统主站性能指标

陈 力 戴 亮 李红文 李 灏

(甘肃省电力科学研究院,甘肃 兰州730050)

1 计算机系统的性能

一个计算机系统所具有的能力和它在实际使用中所表现出来的性能并不是一回事。当我们说,我国的银河机具有万亿次运算能力时,我们是指它的硬件可能达到的最高运算速度。这种与软件无关的、由硬件决定的运算能力,可以通过标准的测试方法精确获得。但当我们谈一个系统的性能指标时,必须注意,这个指标的构成要比运算能力复杂得多,因为构成性能指标的要素大为增加。

性能是在执行某一功能时表现出来的,脱离特定功能的性能指标毫无意义。功能是由软件决定的,因此,性能与软件紧密相关,而软件在这方面的通用指标是代码效率。因此,是系统的硬件能力提供运算基础,而软件则决定着系统的功能和性能。当我们测试一个系统的性能时,很大程度上我们是在测试这个系统由软件决定的运算效率。这使问题一下子变得复杂。

既然我们必须在特定功能之下来谈性能,那么对于计算机系统来说,同一行业的同类计算机系统,比较起来就更有可能找到相同的指标。大体上,我们可以把计算机系统分为实时系统、及时(准实时)系统等。

2 电网自动化主站系统性能

在电力行业内部,存在多种功能各异的计算机系统。其中,电网自动化EMS/SCADA系统,是一个完全的实时系统,它必须在秒的数量级上反映电网实际工况。而电能计费TMS系统则是一个及时系统,因为电能数据是功率在时间轴上的积分,以秒为单位更新电能数据没有什么意义。接下来是办公(MIS)系统、企管(ERP)系统等等,这些系统基本上只传送静态数据,一般来说,像CPU负荷率、网络流量、写盘速度、内存出错概率等等,都是可以预期的,很少会有突发性事件使集束数据涌上网络,堵塞通道,造成系统瘫痪等事件的发生。

为什么只有EMS系统具有网络堵塞、系统崩溃的潜在风险呢?这是由它所监控的电网的性质决定的。

在电网的运行中,事故的发生往往具有局部正反馈的特征。雪崩的意思就是小的扰动引发连锁反应,造成大范围内的坍塌。电网的这种特性,使得它的监控系统就像坐落在一座死火山的脚下,也许几百年内不会遇上喷发,但这种喷发的可能性的存在,不得不使山村的居民对喷发的危险性保持警惕。

举例说,如果主网架中有相当份量的潮流指向负荷区域,假如此时主供线路因为某种原因(比如污闪)跳闸,潮流瞬间转向,通过后备线路迂回转供,这种补偿行为使后备线路逼近动稳极限,任何风吹草动都会导致超限失稳。如果系统局部解列,巨大冲击会使电网强烈振荡,频率大幅跳变。在这寻找重新平衡的过程中,倘若偏又遇着保护拒动,断供面积的进一步扩大开始威胁主网架的稳定。部分孤岛出现失压,恢复过程甚至要进行黑起动!这就是局部事故引起系统崩溃的场景。

在此过程中,大量断路器、刀闸跳变,遥信风暴涌入EMS系统,越限告警大批量产生,使系统应用层任务高度饱和,CPU不堪重负,网络节点出现堵塞,系统反应越来越慢,最后干脆死机不动,需要重新引导系统。这就是EMS系统的崩溃过程。直接原因是因为EMS系统的能力不足以应对巨量信息的涌入,而产生这些信息的源头,则是由于电网的大面积事故集中爆发所致。

我们可以理解到,这是EMS/DMS这类实时系统特有的情况。办公系统也会时忙时闲,但不会有数据风暴产生;及时系统的数据,必须通过累积才能发生变化,也不会出现信息风暴。

EMS系统的运行经验告诉我们,信息源的火山爆发,虽然措不及防,却是经年难遇的,但这种可能性的存在,使我们不得不考虑消防措施,这就是在系统设计中,必须考虑遥测遥信风暴来袭时,系统的承受能力问题。

根据2012年度的EMS系统设计指标,在正常工况下,CPU负荷率必须低于15%;在风暴来袭的异常情况下,CPU负荷率也不能超过30%。就是说,在设计上必须保证系统在任何情况下都有足够的安全裕度。

3 风暴压力下电网自动化主站性能测试

EMS系统建成以后,我们如何获得上述性能指标的数据呢?实际系统不可能提供这样的样态,我们必须人为设计出这样一种信息源,专门用来测试EMS/DMS系统主站的性能。

这样的测试设备,其功能就是通过软件仿真,模拟数千上万个软件远方终端(RTU),每个RTU提供数千遥测变化数据和遥信变位信息,对系统主站形成巨大的信息处理压力,在此工况下,观察系统性能指标的变化,是否符合设计要求。

下面是2个现场测试的样本:

3.1 案例1

对一新投运的省会城市的DMS主站系统进行上述测试,基本设置如下:(1)RTU数量2 000台;(2)每台RTU遥测数据32点,遥信开关量数据64点;(3)遥测数据和遥信数据每2 s变化一次;(4)测试时间:持续15 min。

测得系统性能指标如下:(1)CPU负荷率最高64%,最低38%,加权平均51%,越过设计指标;(2)内存交换使用率,最大18%,最小16%,加权平均17%,低于设计指标;(3)网络使用率,峰值54%,谷值14%,平均使用率34%,与设计指标基本持平。

纵观上述3大指标,只有CPU负荷率无法通过。接下来,在RTU台数降为1 000以后,重新进行测试,测得CPU平均负荷率为21%,低于30%的设计指标,获得通过。

3.2 案例2

对一新投运的省级EMS主站系统进行同样的压力测试,基本设置如下:(1)RTU数量10台;(2)每台RTU遥测数据点1 000点,遥信数据点1 200点;(3)每个遥测点和遥信点数据每2 s变化一次;(4)测试时间:持续15 min。

测得系统性能指标如下:(1)CPU负荷率最高36%,最低3%,加权平均19.5%;符合设计指标;(2)内存使用率,最大8%,最小3%,加权平均5.5%;获得通过;(3)网络使用率,最高峰36%,最低谷12%,平均24%,符合设计指标。

上面测得的全部指标都优于设计指标,说明系统安全裕度足够大。

从以上2个例子我们看到,一般系统的网络使用率和内存交换率都有很大的裕度,容易获得通过。而CPU负荷率这个指标,不同的测试设置,对CPU的负荷率影响很大。

4 对CPU多核多线程任务分配的思考

由于CPU负荷率是各种指标中较难通过的一项,这里重点对其任务分配的内在机制作进一步的探讨。

目前电网EMS/SCADA系统主站的服务器,普遍采用多芯多核CPU组件。比如1台曙光A840r-G服务器,配置为4芯、8核,共32颗AMD的CPU,在测试中可以看到,无论系统任务多忙,大部分CPU的负荷曲线始终躺在地板上不动,任务分配严重失衡。系统工程师也看到了这一点,但是束手无策,因为对于芯片内核有关任务分配的底层设置,系统供应商尚且轻易不去动它,用户就更加望而却步了。因为改动这个层面的东西,弄不好会出大问题。

但从经济角度看,如果系统忙得要垮机了,服务器中的大部分CPU却从未被使用过一次,这就显得很不合理。一台价值20万元的服务器,其实在其寿命周期内,最多只使用了它的资源能力的1/3,这无疑是对设备资源的巨大浪费,而在一个主站系统中,这样的服务器有几十台。

因此笔者觉得,应该在主站系统管理岗位中,设立一个计算机系统诊断岗位,专门从事系统优化的工作,跨部门兼职也可以,进行特别技术培训。此岗位除了执行日常维护工作外,专门授权执行计算机系统配置方面的优化设计和修改操作。当然,这个岗位的工作具有一定深度的技术要求,对CPU内部的逻辑架构、线程调度、进程推移模式应该有相当的了解,尤其对应用任务在服务器上的并行执行要有清楚的认识和实用性的感性经验。

下面我们来宏观地分析一下多核CPU的资源利用问题。

在Windows下执行多个任务的CPU,在单核时代是采用多线程调度、虚拟进程、分时执行策略,但从酷睿二代起,CPU内部控制策略就对现有的操作系统提出了尖锐的挑战。以前是要把CPU资源切碎了分给各个应用,现在,原理上可以把整个CPU分配给一个应用了,操作系统能适应这种变化吗?上到服务器级别,物理CPU有几十个,应用任务反而少于CPU数,这时候系统是要把应用切碎了分配给各个CPU,操作系统还能适应吗?

其次,服务器的应用对象比PC有很大的不同:比如EMS系统中,通常把不同的应用功能分配到各个节点的服务器上,这时侯各个服务器面对的是单个应用的巨量数据,而应用的类型却不多,现在的典型要求是把应用切碎后在各个CPU上进行排程。Windows在这里无能为力了。不过服务器大多在LINUX下运行,灵活性大大增加,如前述这种倒过来的要求,也可以通过编程的设计在服务器上实现,但却对传统的程序设计提出了巨大的挑战:过去在银河机上才会碰到的问题,现在要由普通的PC程序员来解决。

不过请注意,程序都是模块化的,对于最小的功能单元,通过编程来调度也是可能的:事实上你不必修改程序,只须选择定义项即可,前提是,你对多核结构的CPU执行流程,对操作系统的潜在功能,以及对面向对象语言的逻辑要有深刻的理解。

目前最切实可行的思路应该是:(1)默认服务器一定是多芯多核多物理CPU的,比如4芯X8核=32个CPU;(2)默认应用任务数少于CPU数,但单个应用要处理的信息量巨大;(3)软件必须面向多核多任务,线程可交叉调度、统一组装;(4)任务分配策略的调整无需修改源代码,只须通过修改定义来实现;(5)策略调整的依据不是通过预先的设计,而是根据执行经验来获得资源最优分配原则。

比如说,初始投入运行的系统,你并不知道有多少个应用需要同时执行,也不清楚单个应用所要处理信息的数量级,那就先在缺省状态下运行一段时间,不断积累CPU资源分配的经验。可以肯定,经过一段时间,你会发现任务分配极不合理,资源被大量闲置,而少数CPU却负荷过重,于是通过调整任务分配策略来改善资源利用效率。这个过程反复多次以及在系统各种工况下的实际需求都出现过以后,你对资源分配策略应该向哪个方向倾斜,也就心中有数了。

显然,这一过程无法通过预先设计来实现,而要在运行实践中反复权衡不断优化。

5 结语

电网自动化主站的计算机系统,因面向的应用对象不同而有其特殊性。其中最关键的性能指标是CPU负荷率。测试这一指标必须借助于专门的技术手段,才能获得真实可信的数据。针对CPU资源被闲置浪费的现实,努力提高系统的资源利用水平,应该成为今后系统管理的重要目标,这种管理具有相当的技术深度,必须通过专人专岗纳入到系统管理的体系之中。

[1]刘文颖.电网黑起动案例分析[A].全国高校自动化专业第十九届年会论文集[C],2001

[2]陈天洲等.多核程序设计[M].清华大学出版社,2007

[3]孙骁强,范越,白兴忠,等.电网调度典型事故处理与分析[M].中国电力出版社,2011

猜你喜欢
计算机系统主站性能指标
沥青胶结料基本高温性能指标相关性研究
IBM推出可与人类“辩论”的计算机系统
基于OS2主站系统的海量数据共享技术研究
多表远程集抄主站系统
储热水箱分层性能指标的研究进展
分布处理计算机系统研究
WebGIS关键性能指标测试技术研究
MIMD 并行计算机系统结构与定量分析
磁共振成像仪主磁场计量性能指标的选择
基于改进经济压差算法的主站AVC的研究