App域刷新解决方案:AppFabric,性能如何?

本文关键字:性能 AppFabric 刷新 解决方案 App | 更新日期: 2023-09-27 18:14:30

我们目前正面临大量缓存对象的问题。我们缓存来自ERP系统的数据(用于在线商店),IIS将刷新网页,因为它达到了最大的内存量,我们丢失了所有已兑现的对象。由于这使得缓存的想法有点问题,我们正在寻找一个解决方案,用不同的解决方案来缓存对象。

我发现微软的AppFabric是一个非常简洁的解决方案,因为它已经包含在我们的Windows Server许可证中。

无论如何,我仍然担心当我们使用AppFabric Velocity而不是MemoryCache类(我们目前的缓存解决方案)时,我们会有巨大的性能问题。

所以我现在的问题是,这是我们问题的解决方案还是我在这里想得太多,AppFabric的性能是否足够快?

App域刷新解决方案:AppFabric,性能如何?

Grid Dynamics做了一个关于使用AppFabric的很棒的报告。虽然我不知道具体的缓存操作的数字,但报告显示AppFabric的性能表现非常好。在一个测试中,他们想看看缓存的大小如何影响缓存操作性能。当只是读取数据时,它对缓存操作性能几乎没有影响。更新时,会对缓存操作性能产生影响,但影响并不大。在测试对象大小和性能时,很明显,较大的对象降低了性能(这里是吞吐量性能)。总的来说,该报告有可靠的测试和统计数据,表明AppFabric Cache的性能非常出色。

不,Grid Dynamics没有将结果与其他产品进行比较,但它们确实向您展示了AppFabric Cache在不同测试中的性能。他们有一个特别有用的附录部分,可以提供详细信息,以帮助人们在不同的使用场景。

与往常一样,使用与IIS实例不在同一台机器上的解决方案会增加从缓存中获取会话数据的时间,但我们说的是一小部分时间。

如果我理解你的情况,那么有对象缓存解决方案可以让你在内存中缓存对象,并根据你的应用程序逻辑或缓存开始填满时过期。

在这方面,Appfabric并不是一个非常成熟的产品,特别是当谈到"inproc"缓存时。您需要一个客户端缓存,它实际上是分布式缓存(意味着所有缓存对象)的一个子集,它驻留在"进程"中,并与分布式缓存保持同步。

我推荐的一个解决方案是使用NCache作为分布式缓存,并为您的ERP对象使用其客户端缓存功能。