在同一个Linux目录中有几百个或几千个文件可以(性能方面)吗?
众所周知,在
Windows中,当您尝试打开其中一个文件时,具有太多文件的目录将具有可怕的性能.我有一个只能在
Linux中执行的程序(目前在Debian-Lenny上,但是我不想具体说明这个发行版),并将许多文件写入同一个目录(有些作为存储库). “许多”我的意思是每天数十,这意味着一年之后,我希望有一个像5000-10000个文件的东西.它们是保留的(一旦创建了一个文件,它将永远不会被删除),并且假设硬盘具有所需的容量(如果不是,则应该升级).这些文件的大小范围很广,从几KB到几十MB(但不如此).名称始终是数字值,递增生成.
>将全部写入同一个目录可以吗?还是应该考虑为每个X文件创建一组子目录? 解决方法它非常依赖于文件系统.ext2和ext3每个目录的硬限制为32,000个文件.这比你所问的有点多,但是足够接近我不会冒险.此外,ext2和ext3将在每次按目录中的名称访问文件时执行线性扫描. ext4应该解决这些问题,但我不能亲自证明这一点. XFS是从一开始就为这种事情而设计的,即使将数百万个文件放在目录中,也可以正常工作. 所以如果你真的需要大量的文件,我会使用XFS或者ext4. 请注意,如果您有大量文件(除非使用“ls -f”),否则文件系统不会使“ls”运行得很快,因为“ls”会读取整个目录并排序名称.几万个可能不是什么大不了的事情,但一个好的设计应该超越你以前所想的一切. 对于您描述的应用程序,我可能会创建一个层次结构,因为对于某些人来说,这几乎不是任何额外的编码或精神上的努力.具体来说,您可以命名第一个文件“00/00/01”而不是“000001”. (编辑:鲜蔬坊站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Unix域上的套接字在Solaris 10上比在Linux上慢100倍?
- linux – xorg.conf,xset和xinput set之间有什么区别?
- MPD:使用Linux bash脚本接收实际的mpd-status
- embedded-linux – 如何在bitbake的配方中将文件夹或文件添
- linux – 如何在Redhat 6.5上安装Xvfb(X虚拟帧缓冲区)?
- linux – 了解os bootloading – assembly
- linux – 我怎么知道MongoDB是否需要更多CPU / RAM?
- ruby-on-rails – git post-receive hook没有运行bundle in
- Linux c:apis vs / proc文件?
- user-interface – htop中缺少界面元素