在线客服系统

Linux下联合文件系统的研究及性能分析(3)

时间:2014-03-12 13:22 来源:www.fabiaoba.com 作者:吴超 陈启安 点击:

  在关键系统调用测试中,我们对每种系统调用连续测试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

联系方式
李老师QQ:发表吧客服610071587 陈老师QQ:发表吧客服275774677 刘老师QQ:发表吧客服1003160816 张老师QQ:发表吧客服1003180928 联系电话:18796993035 投稿邮箱:fabiaoba365@126.com
期刊鉴别
  • 刊物名称:
  • 检索网站:
热门期刊
发表吧友情提醒

近来发现有些作者论文投稿存在大量剽窃、抄袭行为,“发表吧”对此类存在大量剽窃、抄袭的论文已经停止编辑、推荐。同时我们也提醒您,当您向“发表吧”投稿时请您一定要保证论文的原创性、唯一性,这既是对您自己负责,更是对他人的尊敬。

此类投稿的论文如果发表之后,对您今后的人生和事业将造成很大的麻烦,后果不堪设想,请您一定要慎重,三思而后行。

如因版权问题引起争议或任何其他原因,“发表吧”不承担任何法律责任,侵权法律责任概由剽窃、抄袭者本人承担。

 
QQ在线咨询
陈老师:275774677
张老师:1003180928
李老师:610071587
刘老师:1003160816
论文刊登热线:
137-7525-9981
微信号咨询:
fabiaoba-com

友情链接

申请链接