如何测试我的asp.net Web应用程序限制。用户连接等。我的应用程序仅限于服务器和IIS性能还是其他因素有哪些? 如何托管将被数百万人使用的应用程序?
答案 0 :(得分:3)
这确实是一个复杂的问题。我将尽我所能尽力回答,如果解释似乎是人为的话,请耐心等待。
在测试应用程序方面,Visual Studio附带了几个可以对应用程序进行负载测试和性能分析的插件。我不知道您需要具有哪个版本的VS才能访问这些功能,但我相信它们可以从 Professional 版本开始使用。在缺少Visual Studio的情况下,有许多程序可用于运行这些测试,只需在Google上搜索 ASP.Net负载测试即可。一个适用于Apache的应用程序也适用于IIS here。
在托管您的应用程序方面,它实际上取决于您期望的用户数量。很多人都很兴奋并说“数百万用户”,但实际上,对于大多数人来说,这只是其中的一小部分。如果你真的有兴趣扩展这么大,有几个选择:
云中的主机 - Amazon Web Services和Microsoft Azure是两个可扩展到接近无限的选项,并且支持ASP.Net几乎开箱即用零配置。但请注意,这些选项可能会非常昂贵,尤其是在您开始使用大量CPU时间和带宽时。然而,好处是,如果您的网站有1千名访问者或100万访问者,您将不会失去性能或吞吐量。
向它投掷硬件 - 在问题上抛出硬件的经过验证的方法可能更便宜,但不会快速扩展。首先找一个好的hosting provider并看看他们的产品。专用服务器是一个良好的开端和完全托管,但在某些时候,您将不得不构建自己的服务器并共同定位它们。负载平衡和冗余在更高级别变得非常重要。
无论你决定做什么,两种选择都可能很昂贵。在云中托管成本很少,但随着它的增长会变得非常昂贵;专用服务器或协同定位通常具有较大的前期成本(用于安装费用和/或额外的硬件),但总体而言并且从长远来看更便宜。
我的建议是从小处开始,然后从那里开始。共享托管虽然不具备可扩展性,但为您提供了一个很好的途径,可以对您的网站进行beta测试,以获得便士。如果有兴趣并且您开始赚取现金,升级到专用服务器应该是无痛的。
祝你好运!答案 1 :(得分:1)
你要面对的第一个限制是你的。
我的意思是什么。主要问题是当同时有多个用户要求页面时。
现在,如果您的应用程序只有一个工作池,那么每个用户都会等待上一个用户完成其呼叫。
如果你的网页延迟渲染时间超过500毫秒,发送时间超过3-10秒,而且有2个或更多用户同时要求同样的思考,那么你的第二个用户会有更多延迟。还有一个问题是,一个用户要求进行长时间的等待查询并停止其余的查询以获取任何内容,直到完成此操作。
第一个解决方案是使用更多工作池(Web园)当您这样做时,您需要很好地同步数据,因为现在有2个用户可以同时更改相同的想法。
所以我的观点是:对您的网页进行良好的设计,当您获得数百万用户时,唯一认为您需要的是获得更多计算机并建立网络农场(从网络花园升级)。/ p>
iis限制是根据iis池限制的配置设置的。如果您实际拥有太多用户,他们看到的是获取页面的延迟。如果在一个唯一的池上发生这种情况,那么用户可能会崩溃它并阻止它们全部获得任何东西。如果你有很多游泳池,你可能会遇到很少的问题。更多的池意味着更多的可用内存,快速的硬盘,快速的计算机,良好的数据同步。
拥有太多用户的网站有时可能会有精彩视频,照片或共享内容的网站。在这种情况下,您还可以将此媒体放在不同的服务器上并分出负载。
希望得到这个帮助。