在linux和windows的亦或是其他操作系统的 文件系统 中,文件的个数、文件夹的个数、文件夹的层级数是否对磁盘的IO有影响? 如果有,那么大概的阈值是多少?超过这个阈值会明显影响性能?
在linux和windows的亦或是其他操作系统的 文件系统 中,文件的个数、文件夹的个数、文件夹的层级数是否对磁盘的IO有影响? 如果有,那么大概的阈值是多少?超过这个阈值会明显影响性能?
在linux下面如果文件多了,连ls都会卡得几乎没反应。这个我已经遇到了.....
但阈值多少也是和硬件有关的吧
你可以写个脚本生成空的文件或文件夹,然后记录不同的文件数量下ls得到返回的时间
在windows下面的话,文件夹的数量多,文件夹子目录深会对桌面的响应产生影响,个人用户的话,影响应该不明显,服务器的话,没有测试过。windows文件和文件目录好像可以通过日志检索,速度应该也不会慢。
4 回答1.4k 阅读
1 回答1.4k 阅读
1 回答608 阅读✓ 已解决
2 回答765 阅读
768 阅读
769 阅读
754 阅读
回答一下LZ的问题,这里仅针对Linux下的情况来说:
文件的个数、文件夹的个数、文件夹的层级数
是否对磁盘的IO有影响要想了解问题的本质,需要知道一个文件和一个文件夹(以下都称为目录)在Linux下面是怎么表示的。
文件系统是个很大的范畴,这里简要说以下几点:
0. 文件是什么
我们创建一个文件然后看看文件都有哪些信息:
$>stat
命令Inode号就是这个文件的唯一标识,可以看做是数据库中的主键.
一个inode 一般占了128KB或者是256KB,是的,有可能比文件本身还大.
inode中存储了一个文件的以下信息:
inode号在系统中是会用完的,查看系统的inode整体信息可以用命令
(LZ问题:文件的个数是否会影响,答案是的)$>df -i
如果你的系统中零散的小文件很多,是会浪费掉很多的inode的.
有可能导致的情况就是磁盘任然有空间但是创建文件缺失败了
(LZ问题:文件的个数是否会影响,答案是的)1. 文件名有什么用
文件名的作用在于找到inode
2. 怎样根据文件名找到文件
目录也是文件
3. 目录是怎样索引的
把inode看做指针就明白了
文件的个数、文件夹的个数、文件夹的层级数
是否对磁盘的IO有影响?文件的个数、文件夹的个数 是会影响到对于找到文件时候的IO的,要知道有时候目录结构也是保存在磁盘的.
但是在找到了文件后,对磁盘IO影响就不大了。
文件夹的层级数 会对索引造成更多的操作,这是肯定的.和上一个问题答案一样.
大概的阈值是多少? 这个就是用
$> df -i
看看你的 Inodes IUsed IFree三个值了