基于继电保护装置中文件系统多方法读写速率测试对比研究

发表时间:2020/12/21   来源:《科学与技术》2020年8月22期   作者:刘少伟
[导读] 继电保护装置文件系统读写速率的稳定性对于装置整体的运行有着重要的意义,
        刘少伟
        (南京国电南自电网自动化有限公司 江苏省南京市 211153)
        摘要:继电保护装置文件系统读写速率的稳定性对于装置整体的运行有着重要的意义,读写速率过慢会影响装置运行效率,故本文使用相关测试方法对继电保护装置中Nor Flash和Nand Flash读写速率分别进行测试,验证文件系统的读写速率是否符合预期,并验证长时间的写文件过程中文件写速率是否稳定。
        Abstratct:The stability of the read and write rate of the file system of the relay protection device is of great significance to the overall operation of the device. Too slow the read and write rate will affect the efficiency of the device. Therefore, this article uses related test methods to test the Nor Flash and Nand Flash in the relay protection device. The read and write rates are tested separately to verify whether the read and write rates of the file system meet expectations, and verify that the file write rate is stable during the long-term file writing process.
        关键字: 文件系统;读写速率;ANSI;POSIX;Nor Flash;Nand Flash

0 引言
        继电保护领域中,对于相关装置中文件系统可靠性测试重之又重[1],在变电站现场继电保护装置的运行过程中,发生过多起装置运行异常问题,其中很多是由于文件系统错误和文件失效导致的[2,3]。例如文件没有写到对应的文件中,某个文件变为目录,有些重要文件同时存在同一分区,对这些文件同时执行时会存在破坏某些重要文件关键技术的风险;有时程序运行时会创建目录失败,保护装置会因此告警并闭锁保护,有拒动的风险;而且装置中文件缺乏自校验机制,文件处理时正确性无法保证。而对于装置文件系统的稳定性检测涉及方面众多。例如文件系统基本功能测试、文件系统稳定性测试、文件系统并发读写的互锁机制、文件系统参数测试、NAND FLASH使用过程中坏块检测等[4,5]。
        综上所述,涉及继电保护装置文件系统测试用例繁多,而本文是针对文件系统中参数测试中文件读写速率测试举例说明,即测试不同编程方案对文件读写速率的影响以及文件长时间读写过程中读写速率的变化。
1  ANSI和POSIX相关接口
        ANSI为缓冲文件操作系统方式,该方式特点是在内存开辟一个“缓冲区”为程序中的每一个文件使用,执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。涉及的相关操作系统接口函数有fopen(),fwrite(),fread()等。
        POSIX为非缓冲文件系统方式,该方式不会自动的设置缓冲区,需要根据自己的需要去设置。用非缓冲文件系统来处理二进制文件,效率高、速度快。涉及的相关系统接口函数有open(),write(),read()等。
2 读写速度测试方法
        本文是针对两种类型的flash进行测试,包含Nor Flash和Nand Flash,且分别用ANSI接口和POSIX接口对继电保护装置文件系统进行测试。这里通过单独编写读写速率的函数,流程如下图所示,得出NOR Flash和NAND Flash的读写速率。

        图1 文件读写速率流程
        对于写速率测试,这里记录整个文件写入的时间间隔,该间隔包含写入到设备的时间,通过时间差来计算写速率;对于读速率测试,则计算读取文件全部内容的时间差,通过相关差值来计算读速率值。
        本文主要测试文件系统写速率与接口标准是否具有强相关性。而读速率测试时则相对简单,读取文件的速率是从磁盘中读取出来的,所以在测试读速率时,为避免得到的是读缓存的速率,读取的文件不能是刚刚写入的文件,可以读另一个已存在的文件或是断电重启后立即测试读速率。
        在测试过程中,需要测试不同编程方案对写速率的影响,即按照上述两种提到的文件操作接口标准,本测试方案采用POSIX和ANSI标准分别测试写速率进行比较。并针对ANSI的两种种缓冲方式编写测试代码,测试其对写速率的影响。
        在测试过程中,还要测试文件系统写速率的稳定性,即测试文件系统长期运行后写速率是否有所降低。
        对于ANSI接口标准,这里使用两种编程方法测试写速率,分别为全缓冲方式和无缓冲方式。全缓冲方式设置缓冲区,缓冲区的字节大小和写入文件的大小一致,之后便将整个文件大小写入缓存,再通过fflush操作和ioctl操作将缓冲区中数据写入设备;而无缓冲方式则是写文件时不设置缓冲区,直接向磁盘写入数据。通过对比全缓冲方式和无缓冲方式两种编程方法来验证它们的差异。
        对于POSIX接口标准,该标准本身不带缓冲区,该方法依赖于操作系统,通过操作系统的功能对文件进行读写,是系统级的输入输出。下面会针对该标准接口验证文件的写速率。
3 结果与分析
        为了测试继电保护装置文件系统中文件读写速度的相关结果,这里以一个具体的继电保护装置为例,该装置操作系统类型为vxworks操作系统,文件系统flash包含Nor Flash和Nand Flash,其中Nor Flash大小为64M,Nand Flash大小为1700M左右。
3.1 Nor Flash相关测试结果
        首先测试三种编程方法的写速率,设置写入字节大小为2097152。当使用ANSI接口全缓冲方式写文件时,所用的时间为1.84s,写速率为1.08MBps;当使用ANSI接口无缓冲方式写文件时,所用时间间隔为1.87s,写速率为1.06MBps;当使用POSIX接口方式写文件时,所用时间间隔为1.84s,写速率为1.08MBps。结果如下图所示。

        图2 Nor flash写速率对比
通过上图对比可以看出,对于ANSI接口方式,全缓冲方式要比无缓冲方式速率略微高一点,但是相差不多,而使用POSIX接口方式以及ANSI接口方式写速率基本一致。
        接下来测试随着写入字节数的增多,速率值的变化趋势。这里使用ANSI无缓冲方式来测试,初始测试写入字节数从512KB开始,其速率为1.04MBps,接下来每次测试,写入字节数每次增加512KB,多次测试来对比写入速率,这里总共测试16次。由下图可以看出,随着写入字节数的增加,速率呈下降趋势,之后写速率趋于稳定,保持在330KBps左右。说明当数据量较大时,Nor Flash的写入速率稳定在一定的范围内。

        图3 Nor flash写速率稳定性结果
        上述测试了Nor Flash的写入速率,对于Nor Flash的实际读取速率,通过测试,其速率大概为4.64MBps。
3.2 Nand Flash相关测试结果
        首先测试三种编程方法的写速率,设置写入字节大小为2097152。当使用ANSI接口全缓冲方式写文件时,所用的时间为 1.02s,写速率为1.94MBps;当使用ANSI接口无缓冲方式写文件时,所用时间间隔为1.87s,写速率为 1.07MBps;当使用POSIX接口方式写文件时,所用时间间隔为 1.06s,写速率为 1.87MBps。结果如下图所示。

        图4 Nand flash写速率对比
        通过上图对比可以看出,对于ANSI接口方式,全缓冲方式要比无缓冲方式速率略微高一点,但是速率相差不多,从该结果可以看出ANSI接口无须特殊设置缓冲区大小,而使用POSIX接口方式以及ANSI接口方式写速率则基本一致。
        接下来测试随着写入字节数的增多,Nand Flash速率值的变化趋势。这里使用ANSI无缓冲方式来测试,初始测试写入字节数从512KB开始,其速率为735.67KBps,接下来每次测试,写入字节数每次增加512KB,多次测试来对比写入速率,这里总共测试20次。由下图可以看出,发现写入字节在3145728后,写入速率在一定的范围内波动,速率值趋于稳定,大概稳定在2.5MBps左右。由此可以验证当写入的字节数较多时,字节速率会以稳定的速率执行。

        图5 Nand flash写速率稳定性结果

        综上所述,当写入的字节数较多时,即文件写入持续一段时间后,写入速率趋于稳定,间接验证了当文件系统长期运行后写速率趋于稳定并且速率不会降低。
        上述测试了Nand Flash的写入速率,对于Nand Flash的实际读取速率,通过测试,其速率大概为9.76MBps。
        从3.1和3.2的实验结果可以看出,在文件写速率方面,Nand Flash的平均速度要高于Nor Flash,在3.1实验中,Nor Flash 16次测量写文件速率得到的平均实验结果为517.57KBps,而在3.2实验中,Nand Flash 20次测量写文件速率得到的平均实验结果为2.52MBps,通过对比,Nand Flash写文件速率要高于Nor Flash。因为任何flash器件的写入操作都只能在空或已擦除的单元内进行。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为1。因此Nand Flash的写入速度要高于Nor Flash。

4.总结
        通过相关实验,验证了不同接口不同编程方法下文件的读写速率,这里主要对写速率进行相关验证,且分别对Nor Flash和Nand Flash进行实验,通过实验对比,ANSI接口全缓冲方式和无缓冲方式以及POSIX接口下写速率相差不多,以及在长时间的文件写过程中,文件写速率基本恒定不变。

参考文献:
[1]杨智德,郭亚楠,陈献庆.网络文件系统在继电保护装置的研究及应用[J].自动化仪表,2019,40(02):84-87+91.
[2]汤铮. 基于嵌入式技术的电力装置文件系统及逻辑组态的研究[D].东南大学,2005.
[3]陈泽青. 嵌入式继电保护故障信息处理子站系统研究[D].西南交通大学,2011.
[4]马乔. 磨损感知的持久性内存文件系统设计与实现[D].电子科技大学,2020.
[5]戴敏圣. 云环境下海量小文件存储性能的研究与优化[D].电子科技大学,2020.
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: