CN102393829B - 一种面向嵌入式系统的磁盘i/o测试系统 - Google Patents

一种面向嵌入式系统的磁盘i/o测试系统 Download PDF

Info

Publication number
CN102393829B
CN102393829B CN201110338244.7A CN201110338244A CN102393829B CN 102393829 B CN102393829 B CN 102393829B CN 201110338244 A CN201110338244 A CN 201110338244A CN 102393829 B CN102393829 B CN 102393829B
Authority
CN
China
Prior art keywords
test
disk
module
client
magnetic disc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110338244.7A
Other languages
English (en)
Other versions
CN102393829A (zh
Inventor
刘发贵
张晓杰
刘飞
谢然
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201110338244.7A priority Critical patent/CN102393829B/zh
Publication of CN102393829A publication Critical patent/CN102393829A/zh
Application granted granted Critical
Publication of CN102393829B publication Critical patent/CN102393829B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种面向嵌入式系统的磁盘I/O测试系统,包括客户端、目标机端,客户端与目标机端网络连接,所述客户端包括:传输控制模块、数据处理模块、显示交换模块;所述目标机端包括:测试代理模块、测试执行模块。本发明的有益效果是测试在特定系统中嵌入式磁盘I/O的性能、对系统的磁盘I/O进行实时监测并分析是否存在瓶颈、对进程的磁盘I/O情况进行实时监测并实时获取系统中运行的软件对磁盘的I/O访问情况、对磁盘的每一次I/O访问进行跟踪记录并可存入数据库,本发明一方面是驱动层对磁盘I/O进行监测,另一方面可在磁盘测试中使用收集到的日常读写数据作为输入源以模拟实际应用,最终得到对被测试磁盘真实可靠的性能评价。

Description

一种面向嵌入式系统的磁盘I/O测试系统
技术领域
本发明涉及信息存储技术领域,特别涉及一种面向嵌入式系统的磁盘I/O测试系统。
背景技术
随着计算机技术和通讯技术相结合的信息时代的飞速发展,3c(即计算机、通信、消费电子)一体化趋势日益明显。嵌入式系统凭借自身特点成为3c一体化的理想载体,于是,对嵌入式系统的研究与开发成为当前的一个热点。信息时代对嵌入式系统的存储器性能和容量要求越来越高,不像早期的嵌入式系统没有外存储器或者只有简单的外存储设备。磁盘已逐渐引入嵌入式系统,磁盘技术的革新,特别是微磁盘的产生,使磁盘必将成为一种嵌入式系统外存储设备的主要存储器之一。
当前引入磁盘的嵌入式系统发展迅速,苹果计算机ipod成功带起磁盘MP3的风潮,许多厂商纷纷投入这类便携式媒体播放器的研发行列,而且功能越来越多样化,微磁盘成为这类产品中最昂贵的部件。嵌入式数字磁盘录像机以其高性能,低成本,更稳定的优势逐渐全面进入小区,楼宇,金融测试领域。还有智能网络磁盘也成为网络发展的关键设备基础。特别随着数字家庭概念的推广,各种家电产品都开始了智能化的转变,与计算机技术的高度融合,磁盘被作为数字家电存储信息的主要存储设备如磁盘播放机、机顶盒、点歌机等等。在信息化的发展下,越来越多的嵌入式系统需要处理大量的信息。由于磁盘具有容量大,价格便宜,性价比高等优点,可以预见,未来将有大量的嵌入式系统需要选择磁盘作为外存储设备。
在嵌入式领域,VxWorks、Windows CE以及嵌入式Linux是具有代表性的三种嵌入式操作系统。虽然VxWorks作为实时操作系统,在国防、工业上有着很大的优势,但是由于其昂贵的费用、相对有限的技术支持,一定程度上阻碍其广泛应用;Windows CE有着良好的开发调试环境和友好的图形用户界面,在嵌入式领域有着一定的市场,但是Windows CE是非开放性OS,第三方是很难实现产品定制的,版权费用也是厂商们不得不考虑的问题;相反,对于嵌入式Linux来说,其免费、开放源码、强大的开源社区支持、可定制性、跨平台、可裁剪、健壮稳定等特性,使得其在嵌入式操作系统中得以占有较大比重。但是在嵌入式领域中,嵌入式系统高更新速度,使得系统的升级较为频繁,同时对磁盘I/O要求也提高,用户在使用过程中不能及时地了解嵌入式系统的运作情况,缺乏对磁盘I/O与系统适应性测试。
发明内容
为了解决上述现有技术中的不足,本发明提供了一种能够测试嵌入式磁盘I/O性能,实时监测并分析磁盘I/O存储瓶颈的面向嵌入式系统的磁盘I/O测试系统。
本发明的技术方案是:一种面向嵌入式系统的磁盘I/O测试系统,包括客户端、目标机端,客户端与目标机端网络连接,所述客户端包括:传输控制模块,用于接收显示交换模块的测试指令并向目标机端的测试代理模块转发该测试指令,以及转发测试代理模块返回的测试数据至数据处理模块;数据处理模块,用于处理接收到的测试数据,并将处理后的测试数据输出至显示交换模块;显示交换模块,用于显示接收到的测试数据,以及接受用户的测试指令输入并转发测试指令至传输控制模块;所述目标机端包括:测试代理模块,用于接测试指令并发送测试指令至测试执行模块,并转发测试执行模块返回的测试数据至客户端的传输控制模块;测试执行模块,用于执行接收到的测试指令,返回测试数据。
上述方案中,测试执行模块包括:磁盘I/O性能测试子模块,通过人为产生负载对磁盘的I/O性能进行测试;系统I/O监测子模块,通过文件系统动态从系统内核读出信息,对整个系统的磁盘I/O情况的监测;进程I/O监测子模块,在进程I/O操作开始时获取时间,I/O操作结束时在回调函数处再获取时间,并返回获取的进程信息;I/O trace收集器子模块,在驱动程序的ATA层截获I/O信息。
所述的通过人为产生负载对磁盘的I/O性能进行测试包括以下步骤:首先按字符写,发送测试结果给客户端,再按字符读,发送测试结果,再按块写,发送测试结果,最后按块读,发送测试结果,删除测试文件,完成整个测试。
所述的文件系统为/proc文件系统。
客户端还包括用于储存测试数据的数据库模块。
所述的测试执行模块运行于嵌入式Linux的内核空间中。
与现有技术相比,本发明的有益效果是:一、测试在特定系统中嵌入式磁盘I/O的性能,分析其是否能满足系统的需求。二、对系统的磁盘I/O进行实时监测,分析是否存在瓶颈。三、对进程的磁盘I/O情况进行实时监测,实时获取系统中运行的软件对磁盘的I/O访问情况。一方面可维护系统安全,因为进程是进行信息安全研究工作所关注的重点,它是计算机系统的活跃体,任何系统安全问题最终都是由计算机系统的某个进程引起的。另一方面为软件的优化提供依据。四、对磁盘的每一次I/O访问进行跟踪记录,并可存入数据库。一方面是驱动层对磁盘I/O进行监测,另一方面可在磁盘测试中使用收集到的日常读写数据作为输入源以模拟实际应用,最终得到对被测试磁盘真实可靠的性能评价。这些数据在系统升级新的存储磁盘、对不同的实际应用进行评估等实验中都有很高的价值。
附图说明
图1为本发明组成示意图;
图2为磁盘I/O性能测试流程设计图;
图3为进程I/O监测框架设计图;
图4为I/O trace收集器框架设计图;
图5为测试代理流程设计图。
具体实施方式
以下结合附图对本发明进一步说明。
实施例一
如图1所示,一种面向嵌入式系统的磁盘I/O测试系统,包括客户端、目标机端,客户端与目标机端网络连接,所述客户端包括:传输控制模块,用于接收显示交换模块的测试指令并向目标机端的测试代理模块转发该测试指令,以及转发测试代理模块返回的测试数据至数据处理模块;数据处理模块,用于处理接收到的测试数据,并将处理后的测试数据输出至显示交换模块;显示交换模块,用于显示接收到的测试数据,以及接受用户的测试指令输入并转发测试指令至传输控制模块;数据库模块,用于储存测试数据;所述目标机端包括:测试代理模块,用于接测试指令并发送测试指令至测试执行模块,并转发测试执行模块返回的测试数据至客户端的传输控制模块;运行于linux内核空间的测试执行模块,用于执行接收到的测试指令,返回测试数据;测试执行模块包括:磁盘I/O性能测试子模块,通过人为产生负载对磁盘的I/O性能进行测试;系统I/O监测子模块,通过/proc文件系统动态从系统内核读出信息,对整个系统的磁盘I/O情况的监测;进程I/O监测子模块,在进程I/O操作开始时获取时间,I/O操作结束时在回调函数处再获取时间,并返回获取的进程信息;I/O trace收集器子模块,在驱动程序的ATA层截获I/O信息。
如图2所示,所述的通过人为产生负载对磁盘的I/O性能进行测试包括以下步骤:建立测试文件,获取系统时间,按字符写,调用fsync()写回脏块,获取系统时间,发送测试结果给客户端,获取系统时间,按字符读,获取系统时间,发送测试结果,获取系统时间,按块写,调用fsync()写回脏块,获取系统时间,发送测试结果,获取系统时间,按块读,获取系统时间,发送测试结果,删除测试文件,完成整个测试。
[0020]如图5所示,测试代理模块的工作流程为:响应客户端的连接请求并建立连接,接收客户端的测试指令,判断指令的具体内容启动响应的功能模块,将功能模块测试所得的数据返回给客户端。
如图1至图5所示,本系统的具体工作流程:客户端的前台是与用户交互的界面,负责用户选择操作和显示测试结果。后台负责控制控制测试代理执行相应操作、接收测试代理传送的数据和数据的处理。客户端采用Eclipse插件的形式运行在客户机上。
显示交互界面显示测试结果与用户控制界面,分为四个界面,分别是:磁盘I/O性能测试、系统I/O监测、进程I/O监测和I/O trace收集器。用户通过对每个界面上的操作来选择执行要进行的测试与监测。
传输控制模块根据用户在界面上选择要执行的操作,以命令的形式发给测试代理模块,控制测试代理模块执行相应操作,同时接收测试代理的数据,将其交给数据处理模块。
数据处理模块负责数据处理。一、进行小端到大端的处理,由于客户端采用Eclipse插件的形式,基于平台无关的Java进行开发,字节序为大端(Big-Endian),而测试代理一般位于X86或ARM的嵌入式平台下,均为小端(Little-Endian),所以在客户端读取数据时要调整字节顺序,以免字节序的差异引起数据解析错误。二、对数据进行适应显示的处理,包括通过swtchart插件进行图形化处理。三、对数据进行存入数据库模块的处理。
测试代理模块与客户端建立连接并接收用户的测试指令,同时负载启动各功能模块并对它们进行控制和交互。在测试开始时,在目标机上运行目标机端,客户机上运行客户端。测试代理先建立socket连接,然后将其与本机地址以及一个本地端口号绑定,然后在相应的socket上监听。客户端发送连接请求,测试代理与其建立连接。随后测试代理模块接收客户端发送的指令,并对指令进行解析。如果是结束命令,测试代理模块结束,如果是进行测试,测试代理父进程就创建一个子进程。测试代理父进程是服务进程,各个子进程是工作线程。服务进程的任务是与客户端进行交互,并且操作与工作线程共享的数据。工作线程的任务是调用相应的功能模块,执行相应的功能。各功能模块产生的测试结果数据,由测试代理每秒传送一次给客户机。
系统I/O监测模块使用proc文件系统动态从系统内核读出信息。通过从/proc文件系统来获得是最便捷的途径。因为/proc文件系统不是在虚拟文件系统层和映射层来获得I/O信息,而是在通用块层和I/O调度层。所以能从proc文件系统获取的整个系统的磁盘I/O信息是高效且准确的。
进程I/O监测子模块对进程的磁盘I/O的监测,应该要获取进程名,进程号,读写判断,读写位置和起止时间等信息。监测的必须是能真正产生实际的磁盘I/O操作的信息,所以要先找到能获取这些信息的I/O层,经研究发现在块设备层能截获这些信息。在获取进程I/O信息的过程中,我们应该首先要获得当前进程,再找到对应进程的I/O操作信息,在I/O操作开始时获取时间,I/O结束时在回调函数处再获取时间。将获取的进程信息传给测试代理模块,再由测试代理模块传送给客户端,客户端将进程I/O显示,同时可以选择存入数据库模块。
I/O trace收集器模块是在驱动程序的ATA层截获I/O信息,将这些I/O信息实时显示给用户可实现对ATA层的I/O监测,也能将这些I/O信息存入数据库模块,作为I/O输入,用于仿真测试。I/O trace的收集应该在磁盘驱动程序中截获,因为磁盘驱动层序直接与磁盘交互,在此截获的I/O信息是磁盘立即进行I/O操作。Linux下的I/O请求都是用request结构体来表示的,该结构体基本包括了上述进行I/O跟踪所需要的所有信息,但是,进行I/O请求的跟踪,还需要知道该请求的开始时间和结束时间。我们通过在磁盘驱动开始处理I/O请求时获取系统时间,在I/O操作结束后在驱动程序的结束处理函数触发时获取系统时间,这样能获得比较精准的磁盘I/O的开始时间和结束时间。在安装内核模块时,kprobe被设置在驱动程序中,当系统运行到要截获信息的驱动程序处,跳转到I/O收集模块,I/O收集模块截获I/O信息,并将其放入缓存中。I/O收集模块的工作完成后,内核返回原来的执行流程。测试代理每隔1秒向proc接口发出读请求,从缓存中读取数据。测试代理模块拿到数据后,发送给客户端。数据处理器负责对数据进行解析。并更新GUI上的组件,或存入数据库。

Claims (5)

1. 一种面向嵌入式系统的磁盘I/O测试系统,包括客户端、目标机端,客户端与目标机端网络连接,其特征在于:
所述客户端包括:
    传输控制模块,用于接收显示交换模块的测试指令并向目标机端的测试代理模块转发该测试指令,以及转发测试代理模块返回的测试数据至数据处理模块;
    数据处理模块,用于处理接收到的测试数据,并将处理后的测试数据输出至显示交换模块;
显示交换模块,用于显示接收到的测试数据,以及接受用户的测试指令输入并转发测试指令至传输控制模块;
所述目标机端包括:
    测试代理模块,用于接测试指令并发送测试指令至测试执行模块,并转发测试执行模块返回的测试数据至客户端的传输控制模块;
    测试执行模块,用于执行接收到的测试指令,返回测试数据;
测试执行模块包括:
    磁盘I/O性能测试子模块,通过人为产生负载对磁盘的I/O性能进行测试;
    系统I/O监测子模块,通过文件系统动态从系统内核读出信息,对整个系统的磁盘I/O情况的监测;
    进程I/O监测子模块,在进程I/O操作开始时获取时间,I/O操作结束时在回调函数处再获取时间,并返回获取的进程信息;
    I/O trace收集器子模块,在驱动程序的ATA层截获I/O信息。
2.根据权利要求1所述的面向嵌入式系统的磁盘I/O测试系统,其特征在于所述的通过人为产生负载对磁盘的I/O性能进行测试包括以下步骤:首先
人为建立测试文件,获取系统时间,将系统时间按字符写,获取系统时间,发送测试结果给客户端,获取系统时间,将系统时间按字符读,获取系统时间,发送测试结果,获取系统时间,将系统时间按块写,获取系统时间,发送测试结果,获取系统时间,将系统时间按块读,获取系统时间,发送测试结果,删除测试文件,完成整个测试。
3.根据权利要求1所述的面向嵌入式系统的磁盘I/O测试系统,其特征在于:所述的文件系统为/proc文件系统。
4. 根据权利要求1所述的面向嵌入式系统的磁盘I/O测试系统,其特征在于:客户端还包括用于储存测试数据的数据库模块。
5.根据权利要求1所述的面向嵌入式系统的磁盘I/O测试系统,其特征在于:所述的测试执行模块运行于嵌入式Linux的内核空间中。
CN201110338244.7A 2011-10-31 2011-10-31 一种面向嵌入式系统的磁盘i/o测试系统 Active CN102393829B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110338244.7A CN102393829B (zh) 2011-10-31 2011-10-31 一种面向嵌入式系统的磁盘i/o测试系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110338244.7A CN102393829B (zh) 2011-10-31 2011-10-31 一种面向嵌入式系统的磁盘i/o测试系统

Publications (2)

Publication Number Publication Date
CN102393829A CN102393829A (zh) 2012-03-28
CN102393829B true CN102393829B (zh) 2014-02-12

Family

ID=45861157

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110338244.7A Active CN102393829B (zh) 2011-10-31 2011-10-31 一种面向嵌入式系统的磁盘i/o测试系统

Country Status (1)

Country Link
CN (1) CN102393829B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104503909A (zh) * 2014-12-18 2015-04-08 浪潮(北京)电子信息产业有限公司 一种磁盘io性能的测试方法和装置
CN108874613B (zh) * 2017-05-10 2021-11-05 鸿秦(北京)科技有限公司 一种性能瓶颈定位量化方法、装置及嵌入式io系统
CN109542341B (zh) * 2018-11-06 2022-07-19 网宿科技股份有限公司 一种读写io监测方法、装置、终端及计算机可读存储介质
CN111913881B (zh) * 2020-07-22 2022-02-15 华中科技大学 一种应用程序I/O trace的生成方法
CN117786158B (zh) * 2024-02-23 2024-04-26 深圳市恒通伟达电子有限公司 一种点歌一体机的性能评估方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1851819A (zh) * 2006-05-30 2006-10-25 杭州华为三康技术有限公司 存储设备的测试方法及测试装置
CN101937392A (zh) * 2010-08-27 2011-01-05 华南理工大学 一种嵌入式软件动态缺陷检测方法
CN101944060A (zh) * 2010-09-10 2011-01-12 华南理工大学 一种基于嵌入式软件的细粒度检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080183963A1 (en) * 2007-01-31 2008-07-31 International Business Machines Corporation System, Method, And Service For Providing A Generic RAID Engine And Optimizer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1851819A (zh) * 2006-05-30 2006-10-25 杭州华为三康技术有限公司 存储设备的测试方法及测试装置
CN101937392A (zh) * 2010-08-27 2011-01-05 华南理工大学 一种嵌入式软件动态缺陷检测方法
CN101944060A (zh) * 2010-09-10 2011-01-12 华南理工大学 一种基于嵌入式软件的细粒度检测方法

Also Published As

Publication number Publication date
CN102393829A (zh) 2012-03-28

Similar Documents

Publication Publication Date Title
CN102393829B (zh) 一种面向嵌入式系统的磁盘i/o测试系统
CN100461197C (zh) 一种恶意代码自动分析系统及方法
US6769054B1 (en) System and method for preparation of workload data for replaying in a data storage environment
CN101189582B (zh) 为在虚拟机环境中单步执行虚拟机提供支持
US10180896B2 (en) System and method of debugging multi-threaded processes
JP2584361B2 (ja) 同期ジャーナリングシステム
CN101645119A (zh) 一种基于虚拟硬件环境的恶意代码自动分析方法及系统
JPH09218800A (ja) 組込みシステム中で実行されるソフトウェアを分析するための方法および装置
CN101630285A (zh) 一种应用于嵌入式系统的软件性能测试方法
CN102917242A (zh) 一种多格式视频解码器的测试系统和测试方法
CN102708218A (zh) 一种集成u盘和数据采集模块的usb复合设备
US20120151450A1 (en) Platform-Agnostic Diagnostic Data Collection and Display
US5115502A (en) Method and apparatus for determining internal status of a processor using simulation guided by acquired data
CN109491998A (zh) 分析业务数据的方法、装置及电子设备
CN101984640B (zh) 基于凌动处理器的Android手机平台的能耗测量方法
US4813009A (en) Method and apparatus for determining internal status of a processor
CN104657141A (zh) 一种基于计算机视觉的gui软件包装器及其实现方法
CN103823729B (zh) 一种基于硬件检测的升级建议方法及装置
CN102043594A (zh) 分布式环境下实现输入输出踪迹收集回放的系统和方法
CN101998135A (zh) 移动电视信号采集及播放系统、控制方法
CN104461832A (zh) 一种监控应用服务器资源的方法及装置
CN109753414A (zh) 性能数据的采集方法、展示方法、电子设备和客户端
Denker et al. Higher abstractions for dynamic analysis
Kaszyk et al. Full-system simulation of mobile cpu/gpu platforms
CN116107879A (zh) 一种软ac性能测试方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant