资源分配到IIS进程和标准Windows应用程序
我们有非常好的配置的服务器机器我们的局域网上资源分配到IIS进程和标准Windows应用程序
- 4 GB的RAM
- 1 TB HDD
- 四核处理器
我们可以有2种类型的应用程序运行在服务器上
- 在IIS监督下运行的ASP.NET Web应用程序
- 标准Windows应用程序以管理帐户运行。
我的问题是资源如何将这些应用程序之间进行分配。我知道Windows应用程序可以利用高资源(100%CPU,100%RAM等),但我不确定asp.net进程对这些资源有多少访问权限。它是有限的,或像Windows应用程序相同?此外,如果有任何限制,那么我们如何控制这一点。
我问这个问题的原因是来自我们的web应用程序,我们想要执行一些繁重的操作。什么是最好的方式来做到这一点。我应该去一个Windows服务,MSMQ,还是可以使用asp.net帐户?
要回答你的第一个问题,在Windows Server 2003或2008中,有一个叫做Windows System Resource Manager的东西,又名WSRM,它可以让你将系统资源分配给应用程序或进程。这与服务器操作系统的企业版一起提供。只需如何分配资源是一种黑色艺术;你将不得不尝试一下,在各种条件下进行彻底的测试。
对于第二个问题 - 处理“沉重的操作”的最佳方式 - 我想简单的答案有它取决于。有许多不同的方法,并且它们适合不同的要求。
MSMQ可以帮助缓冲工作请求以启用非高峰时段的处理。 WSRM可以实现系统资源的分配和配给。这两个可以互补,或者你可以将它们视为替代品。
至于ASP.NET和Windows服务:ASP.NET显然将成为基于浏览器的请求主要是有用的,但也可能来自其他系统的REST风格的请求(或类似)。 ASP.NET应用程序将在w3wp.exe工作进程下运行,该进程由IIS保存。您可以获得所有IIS进程管理的好处,例如定期重启,过时进程的自动重启,基于请求的激活等。
Windows服务是一种创建在Windows Server上运行的自定义应用程序的方法,是基于请求的。您的场景的一个示例可能是Windows服务按计划启动,比如说每晚晚上10点,并且运行在MSMQ中的所有排队交易。当队列为空或凌晨4点,以先到者为准,Windows服务关闭。 Windows服务不享受任何IIS进程管理的好处。
底线,ASP.NET和Windows服务提供程序或应用程序托管和生命周期管理的不同选择。
这些都只是一般性的信息。为了从这个社区获得更具体和具体的指导,你将不得不提出更具体的要求,而不是“我该如何处理重加工?”