所以在运行Ubuntu 12.04的Linux服务器上,我有一个文件夹,里面有〜3000个文件夹,而在这些文件夹中,每个文件夹中包含大约3000个文本文件。 总共需要大约80 GB。
所以每当我进入这些文件夹,系统开始变得非常慢。 该系统是至强E5-2620 W / 64 GB的内存和硬盘驱动器是基本的7200转希捷硬盘(不记得是否是SATA 3.0的)。
我也正在删除文件,因为他们需要重新生成。 rm进程速度相当慢,但是我只是运行一个multithreadingrm -rf,所以可能会有一些改进。
你们可以提供什么技巧来加速这一切? 谢谢
预计会很慢。 当你运行一个ls时看到大量的文件,所有的文件的inode都需要被提取并带入内存。 而且所有的文件都会在它们的dentry列表中遍历一个长的path。 内核也会caching这些信息。 所以,当你第一次运行ls时,肯定是慢的。
一个非常简单的诊断措施是从一个选项卡上运行ls到新目录,然后转到另一个选项卡并运行slabtop -o 。 这将显示增加caching和dentry板使用ext4。 一旦它被caching,在同一目录下的后续ls将会更省时。
你可以做的唯一的改进是获得更强大的磁盘或者分割数据。 因此,只需要less量的磁盘search就可以提高性能。