微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何加快在Linux上阅读固定的一组小文件?

我有100000个1kb的文件。 而一个读取它们的程序 – 它真的很慢。 提高性能的最好办法是把它们放在虚拟硬盘上。 但这是一个脆弱的解决scheme,每次重新启动都需要重新设置虚拟磁盘。 (并且文件复制也很慢)

我的第二个最好的想法是连接文件和工作。 但这不是微不足道的。

有更好的解决scheme吗?

注意:我需要避免程序中的依赖,甚至Boost。

如何获取btrfs subvol的recursion快照?

PATH_NOT_FOUND和NAME_NOT_FOUND有什么区别

Windows文件系统:当删除并重新创build时,文件的创build时间不会改变

如何不进入文件系统设备驱动程序的死锁?

在ext4上覆盖一个文件primefaces?

如何:检查不可用networking共享时防止超时 – C#

有什么办法可以强制快速文件系统的内容types确定

未能修改NTFS的主文件表(MFT)中的文件logging

Linux文件系统基准testing的最佳实践

切丝:不适用于日志FS?

您可以通过存储磁盘上连续的文件进行优化。

一个有足够空间的磁盘上,最简单的方法就是读一个tar归档文件

除此之外,还有一个用于预读的debian软件包。

您可以使用该工具

剖析软件的正常运行

编辑访问的文件的lsit(由readahead检测)

然后,您可以使用该文件列表调用readahead(它将按照磁盘顺序排列文件,从而使吞吐量最大化并缩短寻道时间)

不幸的是,自从我使用这些软件以来,已经有一段时间了,所以我希望你们可以通过谷歌搜索软件包

这是我现在看到的:

sudo apt-get install readahead-fedora

祝你好运

如果你的文件是静态的,我同意把它们放在一起,然后把它放在RAM磁盘中。 直接从TAR文件中读取可能会更快,但可以测试。

编辑::而不是TAR,你也可以尝试创建一个squashfs卷。

如果你不想这样做,或者仍然需要更多的性能,那么:

把你的数据放在SSD上。

开始调查一些FS性能测试,从EXT4,XFS等开始…

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐