kolypto Asked: 2010-03-03 06:18:39 +0800 CST2010-03-03 06:18:39 +0800 CST 2010-03-03 06:18:39 +0800 CST memcached 与 tmpfs 772 与使用挂载的 tmpfs相比,在本地使用 memcached 有什么优势吗? 也许,当内存缓存系统驻留在同一主机上时,最好在 tmpfs 上使用文件层次结构,从而能够使用标准系统 API 和文件处理工具? performance memcached tmpfs 1 个回答 Voted Best Answer David Spillett 2010-03-03T07:49:13+08:002010-03-03T07:49:13+08:00 我的直觉表明,memcached 会明显更有效,因为文件系统将在每次创建时为每个对象维护所有权和权限标志,并在每个打开读取的文件上检查它们。此外,您可能会发现 memcached 的结构比 tmpfs 文件系统的索引更好,IIRC 使用无序线性列表作为目录列表,因此必须扫描(平均)半个目录列表以查找对象而不是能够执行更有效的分而治之搜索。 我在上面假设您的意思是存储许多缓存的结果,其中大多数的大小相对较小,每个都在基于 RAM 的文件系统上的自己的文件中。如果您的意思是将许多结果保存在 tmpfs 上的单个文件中,那么基于内存的 sqlite 数据库将更有效,并且可以节省您在索引管理和高效搜索方面的重新发明。 当然,正如您所说,能够使用任何了解文件系统的工具来操作您的缓存可能是一个足够强大的优势,足以使大多数效率论点成为争论点。 当然,哪种技术更好将很大程度上取决于您使用它的目的,因此在问题中添加有关您的项目的更多细节可能是个好主意。作为代码/数据优化查询,这可能是 StackOverflow 而不是 ServerFault 的问题(服务器管理员不太可能选择项目的缓存存储选项,除非程序员已经实现了多个可供选择的选项) - 你可能会发现那里有人为他们的项目对 memcached/sqlite/tmpfs/custom_solution 进行了基准测试,并且可以给你一些有用的比较数据。
我的直觉表明,memcached 会明显更有效,因为文件系统将在每次创建时为每个对象维护所有权和权限标志,并在每个打开读取的文件上检查它们。此外,您可能会发现 memcached 的结构比 tmpfs 文件系统的索引更好,IIRC 使用无序线性列表作为目录列表,因此必须扫描(平均)半个目录列表以查找对象而不是能够执行更有效的分而治之搜索。
我在上面假设您的意思是存储许多缓存的结果,其中大多数的大小相对较小,每个都在基于 RAM 的文件系统上的自己的文件中。如果您的意思是将许多结果保存在 tmpfs 上的单个文件中,那么基于内存的 sqlite 数据库将更有效,并且可以节省您在索引管理和高效搜索方面的重新发明。
当然,正如您所说,能够使用任何了解文件系统的工具来操作您的缓存可能是一个足够强大的优势,足以使大多数效率论点成为争论点。
当然,哪种技术更好将很大程度上取决于您使用它的目的,因此在问题中添加有关您的项目的更多细节可能是个好主意。作为代码/数据优化查询,这可能是 StackOverflow 而不是 ServerFault 的问题(服务器管理员不太可能选择项目的缓存存储选项,除非程序员已经实现了多个可供选择的选项) - 你可能会发现那里有人为他们的项目对 memcached/sqlite/tmpfs/custom_solution 进行了基准测试,并且可以给你一些有用的比较数据。