繁体   English   中英

Linux 文件系统百万符号链接与百万文件

[英]Linux filesystem million symlinks vs million files

我正在为 web 应用程序开发基于 Linux 文件系统的缓存系统,以在 APC 和 Memcache 不可用时用作最后的手段。 系统将缓存 500,000 到 1,000,000 个唯一字符串标识符,每个标识符都有一个很大的值。 我正在使用字符串 ID 的 MD5 hash 并根据前几个字符创建子文件夹,因此在任何一个目录中都不会出现太多文件。

我知道这个概念有效,因为我在类似的应用程序中使用它。

虽然最多有 1MM 个字符串 ID,但它们都指向仅有的 18,000 个唯一值之一,因此,例如,可能有 100,000 个字符串 ID 都指向相同的值。 现在这意味着有 100,000 个具有不同文件名的文件包含相同的内容,这对底层文件系统缓存不利。

缓存 18,000 个唯一值是否有任何缺点,然后为每个唯一字符串 ID 创建指向唯一值文件的符号链接? 这样,文件系统缓冲区可以缓存 18,000 个文件和符号链接的描述符。

我只是担心有 1,000,000 个符号链接以及这可能引入的任何潜在问题。

提前致谢!

与存储普通文件相比,存储符号链接没有任何缺点。 由于间接性,性能会稍微慢一些,也缓存了 dentry 和 inode。

但是,我强烈建议您需要链接,因为这样,内容将一直存在,直到最后一个链接被删除。

我同意sehe ,还请注意硬链接将仅使用 18,000 个 inode而不是10 6 硬链接仅使用指向唯一 inode 的附加目录条目。 您将在磁盘上和 memory 缓存中保存10 6 * inode size字节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM