Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 同一物理机器上的AppFabric缓存服务器和web应用程序_C#_.net_Caching_Appfabric_Distributed Caching - Fatal编程技术网

C# 同一物理机器上的AppFabric缓存服务器和web应用程序

C# 同一物理机器上的AppFabric缓存服务器和web应用程序,c#,.net,caching,appfabric,distributed-caching,C#,.net,Caching,Appfabric,Distributed Caching,我正在考虑为我们的一个项目使用AppFabric缓存功能。 我们需要分布式缓存功能,而AppFabric似乎是一个很好的解决方案。 不过,我有几个问题希望在这里得到回答 我们正在考虑将AppFabric缓存服务器托管在安装web应用程序的同一台机器上。我在MSDN文章中发现,AppFabric应该安装在专用机器上。还需要注意的是,AppFabric可以安装在应用程序本身所在的同一台机器上,但应该考虑一些问题(引用文章): Windows Server AppFabric缓存主机应专用于缓存服务,

我正在考虑为我们的一个项目使用AppFabric缓存功能。 我们需要分布式缓存功能,而AppFabric似乎是一个很好的解决方案。 不过,我有几个问题希望在这里得到回答

我们正在考虑将AppFabric缓存服务器托管在安装web应用程序的同一台机器上。我在MSDN文章中发现,AppFabric应该安装在专用机器上。还需要注意的是,AppFabric可以安装在应用程序本身所在的同一台机器上,但应该考虑一些问题(引用文章):

Windows Server AppFabric缓存主机应专用于缓存服务,这意味着这些服务器不同时用作应用程序、web或数据库服务器。可以在群集中使用非专用缓存服务器,但不支持此方案。尽管有此策略,如果决定使用非专用缓存主机,请确保正确估计和测试每个缓存主机的配置,以便为缓存服务和计算机上的所有其他服务提供足够的内存和网络资源。还要了解其他服务的处理器和网络利用率峰值会对缓存集群的性能和稳定性产生负面影响

以下是本文的链接:

现在,这听起来很合理,我认为限制RAM AppFabric缓存的使用量就足够了。但是,在阅读另一篇关于MSDN的文章时,我发现:

对于物理机和虚拟机,您应该注意使用缓存的应用程序或web服务器的缓存集群的位置。如果它们位于不同的数据中心,请确保这些数据中心之间的延迟不会对您的性能产生负面影响。在这个阶段,可能会尝试将应用程序或web服务器用于缓存服务器。虽然可能,但不支持此操作。首先,这些机器上的IIS等服务的任何资源使用峰值都可能影响缓存集群其次,缓存服务假定它位于专用服务器上,并且可能使用比您指定的更多的内存。

以下是本文的链接:


若我正确理解上面的语句,这意味着尽管我对AppFabric进行了配置设置,它还是会占用它想要的内存?这是真的吗?是否有人对应用程序和AppFabric位于同一台机器上的配置有一定的经验?

为了在appfabirc上分享我的故事,我们开始在共享服务器上使用AppFabric缓存,但由于以下问题,最终不得不将其删除

  • 我们试图在其中保存对象,在高需求场景中,您必须序列化整个图形并将其发送到服务器,但不确定它的效率比从数据库本身调用要高多少。此外,您还可以告别对象中的任何委托、事件、连线或异步操作

  • 缓存服务本身会间歇性地抛出错误,说它不可用,然后您必须使用powershell检查它的运行状况。此外,只要您的机箱使用超过90%的RAM,它就会停止工作

  • 即使盒子上有一点内存压力,它也会积极地尝试从缓存中逐出项目,并且总是占用大约10-20%的cpu


  • 总而言之,我认为MS的建议是正确的,它需要有自己的专用集群,但同样,每个应用程序都有自己独特的需求,您应该根据部署环境中的参数对其进行评估。

    明确指出,不支持或推荐此方法;即使人们确实有这种方法的成功案例,我也不确定你是否应该过度依赖它……我曾在一个网站上工作过,该网站在交通繁忙时使用了两台相当强大的专用服务器和最多三台云服务器。每台服务器还运行AppFabric(包括云计算机)。我们通过内置的性能监视器记录了一个盒子处理~2000个并发连接(不确定这有多准确,但对我们来说有很多流量),并且站点表现良好。也就是说,我不认为这是最佳的解决方案,如果从你发表的文章来看出现问题,你也不太可能得到微软的支持。我同意np-hard。不要这样做。