linux 文件预读,一种基于Linux系统小文件预读功能的可靠性测试方法与流程

本发明涉及数据读取技术领域,更具体的说是涉及一种基于Linux系统小文件预读功能的可靠性测试方法。

背景技术:

Linux系统很重要的一个性能提升点就是它的Pagecache,因为内存比IO快太多了,所以大家都想尽办法来利用这个cache。文件系统也不例外,为了达到高性能,文件读取通常采用预读来预测用户的行为,把用户可能需要的数据预先读取到cache去,达到高性能的目的。

由于预读可以有效的减少磁盘的寻道次数和应用程序的I/O等待时间,是改进磁盘读I/O性能的重要优化手段之一。针对此功能的客户有很多,比如车流量检测中车辆识别拍照等,每天都会产生几百万的文件,日积月累,小文件的预读量是海量的,一旦程序崩溃,造成系统发生故障,将会对客户造成难以挽回的损失。

因此,针对小文件预读的功能。需要一种可靠性方法,用来检测该功能的可靠性和系统的稳定性。

技术实现要素:

针对以上问题,本发明的目的在于提供一种基于Linux系统小文件预读功能的可靠性测试方法,通过创建大量的小文件进行长时间的压力读写,并通过监测core目录,来检测文件预读功能的可靠性,在验证该功能的同时,还可验证整个系统的稳定性与可靠性。

本发明为实现上述目的,通过以下技术方案实现:一种基于Linux系统小文件预读功能的可靠性测试方法,包括如下步骤:

步骤1:在存储端修改配置,添加预读功能;

步骤2:重启mds(MetadataServer),重启nfs(NetworkFile System)功能;

步骤3:在客户端配置文件预读开关,并开启文件预读功能;

步骤4:重新挂载客户端;

步骤5:将客户端core文件的数量改为无限制,将core文件转存至/core目录下;

步骤6:预先填充数据,运行性能测试负载工具,写入大量小文件;

步骤7:在压力机上运行性能测试工具,执行读写操作;

步骤8:设置运行时间,并运行脚本;

步骤9:脚本运行结束后查看客户端的core目录和存储端的nfs进程,若core目录下无core文件且nfs进程存在、系统状态正常,则测试成功,文件预读功能正常。

进一步,在客户端配置文件预读开关,并开启文件预读功能之前,先在存储端创建nfs共享目录nfstest1,并将其共享给本地IP用户。

进一步,重新挂载客户端时,挂载点为/mnt/icfs/dir1。

进一步,所述性能测试负载工具为vdbench。

进一步,所述步骤6具体为:预先填充数据,运行性能测试负载工具,写入个六十万个128k的小文件。

进一步,所述步骤7具体为:在压力机上同时运行性能测试工具,对写入的小文件以16个线程,每次i/o以64k大小的数据块进行顺序读和写。

进一步,设置运行时间具体为:写操作运行时间设为3.5-4.5小时,读操作运行时间设为7.5-8.5小时。

进一步,写操作运行时间设为4小时,读操作运行时间设为8小时。

对比现有技术,本发明有益效果在于:本发明提出的一种基于Linux系统小文件预读功能的可靠性测试方法,首先在存储端修改配置,添加预读功能,并将配置同步至其他节点,重启元数据服务器。由于本专利采用nfs网络文件系统挂载,故需重启nfs功能。其次在客户端开启数据预读开关,配置后重新挂载客户端。检测core文件的生成是否收到限制,改为无限制。创建/core目录,并将./目录下所有生成的core文件均放置该目录下。预先填充数据,运行性能测试负载工具vdbench,写入六十万个128k的小文件,在压力机上同时运行性能测试工具,执行读写操作。该脚本可执行24小时以上,查看core目录下是否有core文件,用来检测文件预读功能的可靠性,查看存储端的nfs进程是否存在、系统状态是否正常,用来验证系统的稳定性。

本发明在验证小文件预读功能的同时,可验证整个系统的稳定性与可靠性,通过自动运行脚本实现,减少了工作时间,提高整体的工作效率。由于本发明适用于多种分布式文件存储场景,可用性强。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。

附图说明

附图1是本发明的方法流程图。

具体实施方式

下面结合附图对本发明的具体实施方式做出说明。

如图1所示的一种基于Linux系统小文件预读功能的可靠性测试方法,包括如下步骤:

步骤1:在存储端修改配置,添加预读功能;

步骤2:重启mds(Metadata Server),重启nfs(Network File System)功能;

步骤3:在客户端配置文件预读开关,并开启文件预读功能;

步骤4:重新挂载客户端;

步骤5:将客户端core文件的数量改为无限制,将core文件转存至/core目录下;

步骤6:预先填充数据,运行性能测试负载工具,写入大量小文件;

步骤7:在压力机上运行性能测试工具,执行读写操作;

步骤8:设置运行时间,并运行脚本;

步骤9:脚本运行结束后查看客户端的core目录和存储端的nfs进程,若core目录下无core文件且nfs进程存在、系统状态正常,则测试成功,文件预读功能正常。

在上述基础上,具体的程序实现方法如下:

1前置工作

1.1在存储端添加预读配置。

vi/etc/icfs/icfs.conf

client_file_readahead=true

mds_md_readahead=true

重启mds,重启nfs服务

systemctl restart icfs-mds.target

systemctl restart ganesha

1.2在存储端创建nfs共享目录nfstest1,并将其共享给本地IP用户:100.7.32.165。

mkdir/mnt/icfs/nfstest1

icfs-admin-nfs–create–p/nfstest1–a rw—

icfs-admin-nfs–create–p/nfstest1–host 100.7.32.165–arw-

1.3客户端数据中配置文件预读开关。

vi/etc/icfs/icfs.conf

client_file_readahead=true

配置后挂载客户端,挂载点为/mnt/icfs/dir1。

mkdir/mnt/icfs/dir1

mount–t nfs 100.7.40.173:/nfstest1/mnt/icfs/dir1–o ver=3

将客户端core文件的数量改为无限制,将core文件转存至/core目录下。

ulimit–c unlimited

mv/ll./|core*/core

2脚本的自动化实现

2.1预先填充数据,运行性能测试负载工具vdbench,写入个六十万个128k的小文件。系统定义设置如下:

fsd=fsd1,anchor=/mnt/icfs/dir1,depth=2,width=4,files=40000,size=128k

2.2在压力机上同时运行性能测试工具,对上述写入的小文件以16个线程,每次i/o以64k大小的数据块进行顺序读和写,负载参数设计如下:

fwd=fwd2,fsd=fsd1,operation=write,xfersize=64K,fileio=sequential,fileselect=sequential,threads=16

fwd=fwd3,fsd=fsd1,operation=read,xfersize=64K,fileio=sequential,fileselect=sequential,threads=16

2.3运行时间设定,写设置时间为4小时,读设置时间为8小时,整体脚本运行时间为设置运行参数如下:

rd=rd2,fwd=fwd2,fwdrate=max,format=no,elapsed=14400,interval=10

rd=rd3,fwd=fwd3,fwdrate=max,format=no,elapsed=28800,interval=10

2.4在客户端与存储端查看共享目录,查看nfs以及ftp客户端,同时查看core目录,如果系统运行正常,服务存在且功能正常core目录未产生core文件,则检测文件预读功能正常。

结合附图和具体实施例,对本发明作进一步说明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所限定的范围。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值