Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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# 什么';这是ASP.Net中使用的最佳会话状态模式,因此我的网站';s CPU使用率don';你不会飞得很高吗?_C#_Asp.net Mvc 3_Session State_Cpu Usage_Signalr - Fatal编程技术网

C# 什么';这是ASP.Net中使用的最佳会话状态模式,因此我的网站';s CPU使用率don';你不会飞得很高吗?

C# 什么';这是ASP.Net中使用的最佳会话状态模式,因此我的网站';s CPU使用率don';你不会飞得很高吗?,c#,asp.net-mvc-3,session-state,cpu-usage,signalr,C#,Asp.net Mvc 3,Session State,Cpu Usage,Signalr,我用以下语言/技术构建了这个在线商店:C#、MVC3、用于DI的StructureMap、用于实时通知的SignalR和用于成员登录的FBConnect 我在一台专用服务器上运行这个站点,该服务器使用Core2 Quad CPU@2.40GHz和8GB的RAM,但当许多用户访问该站点时,CPU使用率仍然达到60-80%。该网站正在从数据库加载照片,但我认为这不是问题所在,因为我已经实现了对这些照片的缓存,您可以在我以前的帖子@中看到这些照片。我甚至修改了我的页面,最初加载20张照片,当用户滚动到

我用以下语言/技术构建了这个在线商店:C#、MVC3、用于DI的StructureMap、用于实时通知的SignalR和用于成员登录的FBConnect

我在一台专用服务器上运行这个站点,该服务器使用Core2 Quad CPU@2.40GHz和8GB的RAM,但当许多用户访问该站点时,CPU使用率仍然达到60-80%。该网站正在从数据库加载照片,但我认为这不是问题所在,因为我已经实现了对这些照片的缓存,您可以在我以前的帖子@中看到这些照片。我甚至修改了我的页面,最初加载20张照片,当用户滚动到页面底部时,只加载更多照片

我和一个朋友讨论过这个问题,他也是一个.net开发人员,他说我应该研究会话状态模式,因为它可能会有所帮助。我的站点上的会话状态没有任何改变,所以它仍然使用默认的InProc

我的问题是:能够处理大流量的最佳会话状态模式是什么?它会提高我的网站的性能吗

为了让您了解该网站如何获得大量用户,以下是其工作原理: 1.出售物品的照片由卖家在相册中发布(最多照片/相册为200张,按20秒加载)。 2.第一个评论/预订商品的客户将是中标买家。 3.卖方随后向第一个买方确认评论/保留

该网站拥有1000多名用户,其中至少80%的用户同时访问该网站

我使用默认的InProc可以吗?还是应该使用StateServer或SQLServer模式


谢谢

如果您使用单独的服务器存储会话,这将减轻主服务器上的会话管理负载,但在读取/写入另一台服务器上的会话时会增加网络开销

我认为使用SQLServer模式是您的最佳选择,特别是因为它可以为您提供会话的“硬拷贝”,以防在谁首先评论/保留该项目的问题上出现任何争议

您已经在使用SQL来加载图像,那么为什么不让它再做一件事呢


如果我忽略了什么,我会让社区指出。

如果您使用单独的服务器存储会话,这将减轻主服务器上的会话管理负载,但在读取/写入另一台服务器上的会话时会增加网络开销

我认为使用SQLServer模式是您的最佳选择,特别是因为它可以为您提供会话的“硬拷贝”,以防在谁首先评论/保留该项目的问题上出现任何争议

您已经在使用SQL来加载图像,那么为什么不让它再做一件事呢

如果我忽略了什么,我会让社区指出

我认为这不是问题所在,因为[…]

你在猜。只要您猜测,您将无法处理性能问题(假设这是一个问题:请参见下文)

你需要测量。使用类似的方法来确定具体需要花费的时间

但是:

CPU使用率仍然达到60-80%

网站速度慢了吗?请求是否正在排队?用户是否认为网站运行缓慢

对于您收到的请求的速率来说,这种CPU使用水平可能是非常正常的

我认为这不是问题所在,因为[…]

你在猜。只要您猜测,您将无法处理性能问题(假设这是一个问题:请参见下文)

你需要测量。使用类似的方法来确定具体需要花费的时间

但是:

CPU使用率仍然达到60-80%

网站速度慢了吗?请求是否正在排队?用户是否认为网站运行缓慢


这种CPU使用率对于您收到的请求率来说可能是很正常的。

在我看来,800个用户访问同一台服务器并不是那么轻

Sessionstate与此无关

您正在从数据库加载图像并将其保存在缓存中。缓存中有多少图像?每个图像100KB?50K图像或更多

如果缓存中的内容太多(不仅仅是图像!),ASP.NET将自动丢弃缓存中的内容(取决于它们的重要性)。当您达到这一点时,您的应用程序将不断地在缓存中放入新的内容,这些内容在插入后几乎立即被擦除,这与在缓存中没有图像是一样的

无论如何,我仍然认为情况可能不是这样,因为如果你真的有800个用户同时访问同一台服务器,那就太多了


我同意理查德的观点。使用mini profiler之类的工具。

在我看来,800个用户访问同一台服务器并不是那么简单

Sessionstate与此无关

您正在从数据库加载图像并将其保存在缓存中。缓存中有多少图像?每个图像100KB?50K图像或更多

如果缓存中的内容太多(不仅仅是图像!),ASP.NET将自动丢弃缓存中的内容(取决于它们的重要性)。当您达到这一点时,您的应用程序将不断地在缓存中放入新的内容,这些内容在插入后几乎立即被擦除,这与在缓存中没有图像是一样的

无论如何,我仍然认为情况可能不是这样,因为如果你真的有800个用户同时访问同一台服务器,那就太多了

我同意理查德的观点。使用mini profiler之类的工具。

是我最喜欢的模式,也是我在每个应用程序中使用的模式。因为我已经切换到这个模式,所以我不再有任何问题,并且在restfulmann中设计我的应用程序