
我有一个文件,1GB的文件,并驻留在磁盘上。 出于性能方面的原因,我重复使用这个文件,并根据需要简单地覆盖它的内容,而不是创build一个新文件并让它增长(每个增长 *** 作必须在inode中更新它的大小)。
我试图挤出更多的性能,并search手册页打开和挂载 ,试图找出何时更新文件的mtime和ctime。 根据我的理解,每次更改文件内容时,都会更新mtime和/或ctime。 这是xfs如何工作?
如果是这样,有没有办法在linux上禁用这个? 我不关心mtime和ctime,宁可不花费每个写入 *** 作更新它们的成本。
最后,我将彻底摆脱文件系统,并直接写入设备,但同时我希望有一种方法可以在文件系统中执行此 *** 作。
如何以及何时使用/ dev / shm来提高效率?
如何检查一个目录的大小,并在bash中打印?
有没有支持encryption的windows的开源文件系统?
即使权限是777,文件也不可写入
Directory.Getfiles不返回文件
编辑响应答案
为了说明问题,我正在写一个SSD,挤出SSD的每一个 *** 作是非常重要的。 SSD理论上可以处理每秒25K的 *** 作,而这些对我来说都很重要。 除了写入我的文件之外,我不希望他们中的任何一个被浪费掉。 在这个笔记上,实际上我在我的磁盘上有200个1GB的文件。 我试图用上面的问题简化问题。
此外,每个写入必须是同步的,我的程序将不会继续,直到我确信这些位在磁盘上(这是可能的)。 但是我认为这个说明与这个问题是相切的。
Java监视服务似乎重新创build删除的文件。 到底是怎么回事?
为什么要删除一个目录结构,然后在引发exception之后立即重新创build它?
Java – 确定磁盘格式(RAW或FS)
如何在linux上通过inode访问文件
如何隐藏/取消隐藏文件,而不删除windows上的C ++中的其他属性
有关mtime和ctime的语义,请参阅man 2 stat 。 实际上,mtime和ctime将在inode的内存副本中更新,并异步刷新到磁盘。
如果你真的认为从一个32位计数器到另一个存储器位置的复制使你失望,你不能跳过inode的mtime更新,你错误地试图优化write(2)的快速部分write(2) 。
想要提高1GB文件的文件写入性能? 为块缓存添加更多的内存使用,忘记了mtime。
添加回应评论
同步写入不会在任何有意义的意义上提供安全性,因为在磁盘写入过程中拉动的电源线不受同步的帮助; 这就是使用像xfs和ext3 +这样的日志文件系统的原因。 面对失败,最好的希望是一致的。
您似乎希望确定所记录的数据是完全不可能的,即使您使用电池支持的SRAM写入缓冲区构建RAID,根本不可能实现这一目标,因为在提交这些位之前,某些事情可能总是失败。 原始卷的写入比保存日志文件系统的保护更少。
如果你在你的问题中澄清你的设计意图,可能会有更好的答案。 在内心层面上,尽管写入时间较长,但对于一个小巧的1GB文件,闪存比闪存氧化物更容易出错,但这不是一个正式的声明。
总结以上是内存溢出为你收集整理的xfs – 写入文件时如何不修改mtime?全部内容,希望文章能够帮你解决xfs – 写入文件时如何不修改mtime?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)