asp.net之Enyim memcached 提供程序 CPU 峰值

zhujiabin 阅读:140 2025-05-04 20:05:19 评论:0

我已经使用 enyim 为我们的网站实现了一个缓存接口(interface)和 memchanged 提供程序。在我们进行负载测试之前,在测试中效果很好,它使 w3wp.exe 的 CPU 达到接近 100%。我们有一个配置属性来将缓存提供程序切换回 dotnet 的 API,并且 CPU 回到 5-7%。有没有人遇到过类似情况?

请您参考如下方法:

每次您通过 enyim 在 memcached 中存储一些东西时,.NET 运行时将对存储的对象执行二进制序列化。并在检索时反序列化。对于某些类型(string、byte[] 等),enyim 实现了更具体和轻量级的序列化,但大多数类型由标准 BinaryFormatter 序列化。这是处理器密集型的。

当您的代码是针对 ASP.NET 中的内存缓存编写时,它尤其会受到伤害。您可能会有认为从缓存中获取内容是免费的代码。您可能会一次又一次地从缓存中获取它。当我们切换到 memcached 时,我们遇到了类似的问题。如果您进行一些分析,您可能会发现您从缓存中读取了很多次。

我们与 enyim 客户端的体验非常积极。我们在大约 10 个节点的 ASP.NET 服务器场中运行 memcached,它非常稳定。对于某些形式的数据(经常访问),我们更喜欢 ASP.NET 的 内存中 进程内缓存。


标签:Memcached
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号