决定一个ASP.NET web应用程序允许多少个工作进程的最佳实践是什么?
在我管理的一台服务器上,创建一个新的AppPool默认使用10个(最大)工作进程。其他人建议正常设置是一个。
多个工作进程解决了什么问题?决定多少个工作进程的技术是什么?
发布于 2010-01-28 08:15:24
工作进程是一种在多个exe上分割网站执行的方法。你这么做有几个原因,一个是如果其中一个工作进程被运行时问题搞砸了,其他的就不会被关闭。例如,如果一个html请求进入,导致进程运行为空,那么只有一个工作处理器正在处理的其他请求才会被终止。另一个例子是,一个请求可能会对同一工作线程处理的其他线程造成阻塞。
只要你需要多少,就做一些负载测试。用力点击这个应用程序,看看只有一个会发生什么。然后再加一些,然后再打一次。在某一时刻,您将达到真正使机器的网络、磁盘、cpu和ram达到饱和的程度。那就是你知道你有正确的平衡的时候。
顺便说一下,您可以通过machine.config文件控制每个工作进程使用的线程数。我相信关键是maxWorkerThreads。
现在,请注意,如果您使用会话,会话状态不会在工作进程之间共享。我通常建议避免使用会话,但这是需要考虑的问题。
无论出于何种意图和目的,您都可以将每个工作进程视为它自己的独立web服务器。除非它们在同一个机器上运行。
发布于 2017-01-03 03:53:30
另一种有意义的情况是,如果您的应用程序包含阻止其并行化的锁,则使用许多工作进程是有意义的。基于GDI+的图像处理就是一个例子。
当我试图为my problem寻找解决方案时,我发现了它。
https://stackoverflow.com/questions/2151251
复制相似问题