
在关键系统调用测试中,我们对每种系统调用连续测试5次,并将测试结果分为两种情况:Coldcache取第一次测试结果,这时dcache和buffercache基本为空,缓存命中率低,磁盘访问是瓶颈;Warmcache取后三次测试结果的平均值,这时缓存命中率高,数据更能体现算法效率。对比表3表4,cache机制对联合文件系统stat()速度优化并不显著。首先,元数据数据量小,磁盘IO不是瓶颈。根据算法1算法2,stat()系统调用处理unionfs时,关键步骤是路径查找,处理unionfs-fuse时关键步骤是生成stat信息。这些关键步骤无法通过cache系统优化,所以成为性能瓶颈。
算法1stat()参数为unionfs文件系统路径
stat(){
调用vfs_stat()→..→path_lookupat()→link_path_walk();
link_path_walk(){
for(;;){
分解路径名;
查找每一路径分量;
ifdentry.namenotindcache{
calli_op→lookup(即unionfs_lookup)
unionfs_lookup(){
确定分支;
确定分支中需要返回的dentry;
}
所有路径分量遍历结束break;
}
返回路径最后分量对应的dentry;
}
根据dentry.inode提供的信息,调用vfs_getattr填入kstat结构;
}
算法2stat()参数为unionfs-fuse文件系统路径
stat(){
fuse获得文件路径;
调用unionfs_getattr(){
根据文件路径确定分支;
在该分支上调用系统函数lstat();
返回stat信息给fuse;
}
fuse填充kstat结构;
}
另外,Unionfs-fuse并不涉及复杂的路径名查找,而是通过更高层的lstat()系统调用返回信息给FUSE,lstat()负责调用底层文件系统inode操作进行路径名查找,所以速度最快。但在高并发的环境下,可能得到错误的结果,因为unionfs-fuse的路径名查找粒度在路径名级别(只是直接调用lstat()),而aufs和unionfs查找粒度在dentry级别。
相比stat(),除unionfs-fuse上下文切换导致开销外,readdir()没有明显性能损失。aufs,unionfs,unionfs-fuse的unlink()/rmdir()操作性能保持度分别为79.64%,92.28%,63.59%。
3结束语
本文对联合文件系统进行了深入研究,总结出联合文件系统的两种设计模型,同时对现有实现进行了测试分析。通过对设计模型的比较分析,我们得到结论,基于VFS的设计模型和基于底层文件系统的设计模型各有利弊。长远看,将联合文件系统的功能补充到VFS中,更有可能提供性能优越,稳定可靠的解决方案。由于基于底层文件系统的设计模型开发依赖更少,所以当前的主要稳定实现都是基于这种设计模型。
根据我们的测试结果,unionfs-fuse路径名查找最快,unionfs文件创建删除性能最好,aufs目录读取有一定优势。但与底层文件系统相比,性能差距仍十分明显。综合测试中显示出过高的开销,关键系统调用测试显示出低效的路径查找操作,实际应用中不免要对性能和功能做出权衡,所以目前所有实现均只能被视为过渡方案。实际科研实践中,可以参考本文测试结果并结合具体情况进行选择。
参考文献:
[1]RobertLove.Linux内核设计与实现[M].北京:机械工业出版社,2010.
[2]PendryJ,McKusicklM.Unionmountsin4.4BSD-Lite[C].USENIXAssociationConferenceProceedings,1995.
[3]ErezZadok.Unionfs:AStackableUnificationFileSystem[EB/OL].[2013-03-01].http://www.filesystems.org/project-unionfs.html/.
[4]OkajimaJR.Goalsandnewfeaturesofaufs[EB/OL].[2013-03-01].http://aufs.sourceforge.net/.
[5]RadekPodgorny.Auserspaceunionfsimplementation[EB/OL].[2012-10-18]
[6]ErezZadok.FiST:ASystemforStackableFile-SystemCodeGeneration[D].NY:ColumbiaUniversity,2001.
[7]Corbet.Overlayfilesystem:requestforinclusion[EB/OL].[2011-06-15].https://lwn.net/Articles/447658/.
[8]RusselCoker.abenchmarkoffilesystemperformance[EB/OL].[2013-03-01].http://www.coker.com.au/bonnie++/.
[9]CharlesPWright,JayDave,PujaGuptaVersatilityandUnixSemanticsinaFan-Out[Z].
(www.fabiaoba.com),是一个专门从事期刊推广期刊发表、投稿辅导、发表期刊的网站。
本站提供如何投稿辅导、发表期刊,寻求论文刊登合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级论文刊登/国家级论文刊登/
CSSCI核心/医学投稿辅导/职称投稿辅导。
投稿邮箱:fabiaoba365@126.com
在线咨询:
275774677、
1003180928
在线咨询:
610071587、
1003160816
联系电话:13775259981
期刊简介: 《种子科技》(月刊)创刊于1983年,曾用刊名:(种子通讯)是中国种子协...
期刊简介: 《高等工程教育研究》是我国第一份、也是唯一一份面向工程教育研究的全国...
主管单位:湖北省国资委 主办单位:湖北省经济干部管理学院 出版地:湖北省武汉市 国...
期刊简介: 主管单位:吉林省社会保险事业管理局 主办单位:吉林省人力资源和社会保障...
主管单位:山东省教育厅 主办单位:山东省教委 国内刊号:CN 37-1025/G4 国际刊号:IS...
主管单位:国家民族事务委员会 主办单位:西北民族大学 出版地:甘肃省兰州市 国际标...
近来发现有些作者论文投稿存在大量剽窃、抄袭行为,“发表吧”对此类存在大量剽窃、抄袭的论文已经停止编辑、推荐。同时我们也提醒您,当您向“发表吧”投稿时请您一定要保证论文的原创性、唯一性,这既是对您自己负责,更是对他人的尊敬。
此类投稿的论文如果发表之后,对您今后的人生和事业将造成很大的麻烦,后果不堪设想,请您一定要慎重,三思而后行。
如因版权问题引起争议或任何其他原因,“发表吧”不承担任何法律责任,侵权法律责任概由剽窃、抄袭者本人承担。