【问题标题】:NHibernate - Poor performance with MemcachedNHibernate - Memcached 性能不佳
【发布时间】:2011-08-09 01:52:07
【问题描述】:

我安装了 Membase 并创建了一个新的 memcached 存储桶。在设置中,为了简单起见,我选择设置一个端口 ID 为 1111 的专用端口。

在我的 web.config 我有这个:

<configSections>
  <section name="memcache" type="NHibernate.Caches.MemCache.MemCacheSectionHandler, NHibernate.Caches.MemCache" requirePermission="false" />
  ...
</configSections>

<memcache>
  <memcached host="127.0.0.1" port="1111" />
</memcache>

在我的 NHibernate 配置部分:

<property name="cache.use_query_cache" >true</property>
<property name="cache.use_second_level_cache">true</property>
<property name="cache.provider_class">NHibernate.Caches.MemCache.MemCacheProvider, NHibernate.Caches.MemCache</property>

在我的每个 NHibernate 类映射中,我在类标记之后的右上角都有这个:

<cache usage="nonstrict-read-write" />

当我运行它时,我的查询比我使用 Syscache 慢一个数量级。有什么看起来不对吗?我对设置这样的东西还很陌生。

提前感谢您的帮助。

【问题讨论】:

    标签: c# .net nhibernate caching memcached


    【解决方案1】:

    您的配置似乎没有任何明显的问题。 Syscache 正在使用 ASP.NET 缓存提供程序,并且您的应用程序和缓存之间没有网络通信,但理论上它应该只比在 localhost 上运行的 memcached 快一点(假设您有足够的内存来避免交换)。

    您可能想尝试使用分析器运行您的应用,以查看实际花费的时间。此外,您应该确保 memcached 实际上用于返回缓存的查询并且没有发出 sql 查询 - 记录 sql 并期望仅在第一次执行查询时看到它。

    我正在使用membasememcached bucketenyim memcached client,其配置与您的配置相似,我对性能非常满意。 membase 还提供了一个不错的管理控制台,您可以在其中查看有关缓存使用情况的各种有用统计信息。

    此外,与您的问题无关,但请确保在启用查询缓存之前了解查询缓存的工作原理。看到这个来自ayende的twoposts

    【讨论】:

    • 有趣。所以你没有使用基于磁盘的 membase 持久性?它仍然在该配置中“复制”吗?我想知道在这种用途中与 memcached 相比性能如何。
    • 我没有使用任何 membase 特定功能。只有运行 memcached 存储桶的能力。在幕后 membase 运行一个 memcached 守护程序,所以我希望性能和功能与运行独立的 memcached 相同。我做出这个选择是因为 membase 在 5 分钟内安装,在另外 5 分钟内完成配置,并且控制台提供了一种查看 memcahced 统计信息的好方法。
    • 我实际上使用的是 membase 服务器,我的存储桶是 memcached 存储桶。我启动了我的 NHibernate Profiler,同样的查询和缓存调用也进来了,但它们现在不是 70 毫秒,而是每个 20 到 25 秒。您如何使用 Enyim Memcached 客户端?我只见过使用 memcacheprovider 连接到配置。
    • 我在配置文件中有这个,没有其他特定于应用程序中缓存的内容:NHibernate.Caches.EnyimMemcached.MemCacheProvider, NHibernate.Caches.EnyimMemcached。我的实体也有 所以这应该不是问题。
    • 20-25s 是查询的方式,所以我怀疑您的问题要么与缓存提供程序有关,要么与无关的东西有关。您应该尝试使用 clr 分析器(红门蚂蚁分析器,点跟踪)来查看时间花在了哪里。
    猜你喜欢
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 2011-01-03
    • 2016-11-06
    相关资源
    最近更新 更多