广州网优专题方案OPS应用更新.docx
《广州网优专题方案OPS应用更新.docx》由会员分享,可在线阅读,更多相关《广州网优专题方案OPS应用更新.docx(32页珍藏版)》请在冰豆网上搜索。
广州网优专题方案OPS应用更新
OPS网优应用
1.概述
随着网优代维工作的日益深进地开展,网优代维的各项工作内容也在不断地充实与完善。
如何将各项工作做更细致,做更周全且不花费过多的人力,是我们不得不思考的问题。
现实情况是,网优工作中的很多内容都是重复性、繁琐性的,而且还要花费很多的时间,大大降低了工作效率,也缩短了用于网络优化的时间。
在这种情形下,如何提高效率,如何优化网优流程已成为网优工作中一项很重要很迫切的内容。
提高效率,优化网优流程的方式有很多,比如应用EXCEL函数以及编写宏程序来处理各项数据或话务统计的应用、OPS和网优辅助工具的开发与应用等。
在这里,我们想重点讨论一下OSS系统自带的OPS脚本语言在网优工作中的作用以及应用。
2.OPS简介
OPS,全名OPERATIONSPROCEDURESUPPORT,属于OSS系统中内置的一种编程环境,它可以实现一系列MML指令的批处理,同时,更重要的是它可以以其特定的程序语言智能化地实现我们所预期想要达到的结果,而我们所要做的仅仅就是一些最基本简单的编程,这样可以极大地提高工作效率,节约时间,同时又可以多件事情同时进行,而不会有杂乱无絮的感觉。
在OSS操作窗口,进入OPS操作界面的方式如下:
在OSS中右键→CONFIGURATION→OPREATIONSPROCEDURESUPPORT(OPS)即可。
OPS属于一种脚本语言,程序语言比较简单,容易上手,很多语法都类似于BASIC语言,但它又有着自己独特的特点:
首先,它的运行环境是OSS系统,在其他环境下将无法正常运行;再次,它可以对OSS系统中可以连接的所有网元进行批命令处理,同时可以使用OPS脚本命令和MML指令而且还可以与UNIX语言相结合,最后,OPS脚本命令都有它自己独特的标识,用以OSS系统识别。
具体OPS语言的基本语法和函数功能可以查看OPS程序帮助。
此帮助在OPS运行窗口,单击HELP菜单即可打开,或者用ALEX打开OSSR9当中也有着很详细的说明。
3.OPS在网络优化中的应用前景
在近几年,OPS的应用已经是越来越广泛,其实用性与高效性已得到广泛的认可。
我们在进行网优代维的各项日常工作中,也逐步开始应用OPS,在工作效率上明显感觉到了提升,尤其在各项日常性维护工作中,效果更加明显,但从目前的应用而言,都是比较零散,没有形成一个系统的工作,所以,我们设想如果将网优代维工作中很多繁琐的重复性的工作系统地以OPS程序方式进行处理分析得到结果,这将极大地节省人力,提高效率,同时可以将各项基本维护工作有条不絮地进行,防止发生错漏。
同时,OPS可以编制很多实用性的小程序,对网络优化分析得到极好的辅助作用。
我们相信OPS完全可以将我们从繁琐的重复性的日常工作中解放出来,极大的提高工作效率。
4.OPS应用探索与研究
广州网优代维项目开展至今,我们一直以来都感觉在日常性维护工作上,我们投入了较多的人力和较多的时间,如果能够最大限度地提高这方面的工作效率,同时又保证工作质量,就可以节约出更多的人力和时间进行更深入网络优化。
利用OPS,编制一系列的日常性维护工作辅助工具。
这将作为我们OPS应用探索研究的一个方向。
在这一方面,我们主要解决每日即时话务指标监控,故障小区监控,重要参数检查等方面的效率问题。
另一方面,在网优代维的过程中,我们发现很多处理问题的方式都是很类似,可以利用OPS程序来处理,例如,经常要进行的小区载波与频点对齐操作,单通故障跟踪处理程序等。
在这一方面,我们主要偏重解决网络中实际存在的问题,以期待更高效率地解决网络故障问题。
同时,对局方可能出现的一些需求,我们也将协助局方完成OPS程序化。
最后,对于网络出现的新事物,我们将力争在最先时间内,利用OPS编制优化分析工具,已达到更好地对新事物进行监控与优化的工作,当然,在这方面,可能还会结合其他工具进行优化分析。
目前,在这方面,我们成功地解决了APG40新设备即时指标监控的问题。
当然我们会随时关注网络动态,对网络可能出现的新事物,在其未使用之前,就做好其指标监控和优化辅助工具,做好其使用前的一切准备工作。
4.1日常性维护指标监控类OPS应用
在此方面,我们主要着重来解决日常性的维护工作,从而轻轻松松得到指标监控和重要参数检查的结果。
在目前,CCH即时指标,TCH即时指标,TCH信道完好率,CCH随机接入是我们即时指标监控的重点。
而在重要参数设置合理性检查上,我们需要定期进行包含跳频,GPRS功能,DBPSTATE,DMPSTATE等重要参数的检查。
这些都是我们要寻求用OPS解决的,下面我们以CCH即时指标监控为例详细说明解决方式。
4.1.1CCH即时指标监控
A、基本思路
我们的基本思路是将所要监控的网元的CCH即时话务统计保存于一LOG文件中,然后再读取或者计算每个小区的CCH接通率,掉话率,拥塞率指标,对出现异常的小区显示在OPS的COMMENT窗口上,每当执行完毕一次,程序自动等待一小时后重复执行显示异常小区,这样,我们所要做的就是即时去COMMENT窗口查看异常小区并对发现问题进行处理。
此实现过程有一个难点就是现在存在IOG20和APG40两种系统,即时话务统计全然不同,如何实现两者的统一,在此实现过程中,我们对IOG20系统和APG40系统采用了不同的处理方式,但最终结果都是显示在COMMENT窗口的(如图一),从而达成最终的目的。
(图一)CCH检查结果
B、设计流程
是
否
C、OPS脚本
首先设定即时指标监控的BSC网元文件,如下形式:
BSC:
HDABSCA
…
APG40:
HDCBSCA
…
END;
在程序执行的开始,首先读取此文件,获得需要进行监控的网元名,注意可在此增加或者删除网元名,但格式必须是这样的,如果没有APG40网元,则APG40下面一行直接为END;程序代码如下:
@CHECK("OFF")
@funbusy(4,8)
@openread("/home/yich_4/huadu/OPS/bsc_all")!
开始读取网元名
@setline=1
@setn=0
@setn1=0
@labelbsc00
@read(temp,LN(line))
@ifline>5then
@quit
@endif
@ifcopy(temp,1,3)="BSC"then!
读取IOG20系统网元名
@setline1=line
@gotobsc01
@else
@setline=line+1
@gotobsc00
@labelbsc01
@setline1=line1+1
@read(temp,LN(line1))
@ifcopy(temp,1,5)="APG40"thengotoapg40
@setn=n+1
@setbsc{n}=trim(temp)
@gotobsc01
@labelapg40!
读取APG40系统网元名
@setline1=line1+1
@read(temp,LN(line1))
@ifcopy(temp,1,3)<>"END"then
@setn1=n1+1
@setapg{n1}=trim(temp)
@comment(n1)
@gotoapg40
@else
@gotostart00
@endif
@labelstart00
@setnum=n
@setnum1=n1
@forx=1tonum!
保存IOG20系统即时指标监控文件
@connect(bsc{x})
@setfn{x}=concat("/home/yich_4/huadu/RPTID101_",getdest(),getdate())
@log(fn{x})
imlct:
spg=0;
sdtdp:
rptid=101,int=1;
end;
@close
@nextx
@ifnum1<1thengotostart
@forx=1tonum1!
保存APG40系统即时指标监控文件
@connect(apg{x})
@setap{x}=concat("/home/yich_4/huadu/ap_clsdcch_",getdest(),getdate())
@log(ap{x})
@settime1=concat("20",copy(getdate(),1,8))
@settime2=copy(getdate(),9,2)
@iftime2>0andtime2<30then
@settime4=concat(time1,"00")
@else
@settime4=concat(time1,"30")
@endif
@settime3=concat("20",REGRESS(copy(time4,3,10),"1H"))
APLOC;
stmfo-i-zLF-fsybase-e-p60-b{time3}-s{time4}CLSDCCH
@IFscan("loadfiles")>0THENGOTOLOAD
@LABELLOAD
@SETLINE=SCAN("loadfiles")
@setdirlocal=copy(reply(LINE),19,50)
S:
cd{dirlocal}
@delaysec
(2)
TYPECLSDCCH.data
@close
@nextx
@labelstart!
读取IOG20系统小区数据,显示异常小区
@window
@clrscr
@setx=1
@comment("CELLSDCCHCCALLSCMSESTBCNDROPCCONGSCRATECCHMHT")
@labeldoit
@ifx=num+1thengotoapg00
@openread(fn{x})
@setline=1
@labeldoit00
@read(temp,LN(line))
@IFCOPY(temp,1,10)<>"CELLSDCCH"THEN
@setline=line+1
@gotodoit00
@else
@setsdcch=temp
@setline1=line
@gotodoit01
@endif
@labeldoit01
@setline1=line1+1
@read(temp,LN(line1))
@iftemp<>""then
@gotodoit02
@else
@gotodoit01
@endif
@labeldoit02
@ifcopy(temp,1,3)="END"then
@execute(concat("rm",fn{x}))
@setx=x+1
@gotodoit
@endif
@iflength(trim(temp))<20thengotodoit01
@setsdcch1=trim(copy(temp,18,7))
@setsdcch2=trim(copy(temp,35,7))
@ifsdcch1<>0then
@gotodoit03
@else
@comment(temp)
@gotodoit01
@endif
@labeldoit03
@iftrim(sdcch1)<>""then
@gotodoit04
@else
@gotodoit01
@endif
@labeldoit04
@ifsdcch2*100/sdcch1>3then