gpt4 book ai didi

c# - NHibernate - Memcached 性能不佳

转载 作者:行者123 更新时间:2023-11-30 15:08:19 25 4
gpt4 key购买 nike

我安装了 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 慢了一个数量级。有什么地方看起来不对吗?我对设置这样的东西还很陌生。

在此先感谢您的帮助。

最佳答案

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

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

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

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

关于c# - NHibernate - Memcached 性能不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5723592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com