bop*_*979 25 iis-7 application-pools iis-7.5 worker-process
我们即将在一些新服务器上部署一堆站点。我有以下关于应用程序池的问题:
每个网站有一个应用程序池似乎是可取的。这种方法有什么注意事项吗?一个应用程序池是否会占用所有 CPU、内存等...?
什么时候应该在应用程序池中允许多个工作进程?什么时候不应该?
是否可以使用私有内存限制来防止一个应用程序池干扰另一个应用程序池?将它设置得太低会导致有效请求在没有得到有效响应的情况下回收应用程序池吗?
私有和虚拟内存限制有什么区别?
是否有令人信服的理由不让每个站点运行一个应用程序池?
Cod*_*lla 20
1) 每个网站都有一个应用程序池似乎是可取的。这种方法有什么注意事项吗?例如,一个应用程序池是否可以占用所有 CPU、内存等...?
这是一个很好的方法;我想不出有什么好的理由让不同的“站点”(应用程序)共享同一个池。除非他们需要共享某种单一资源。理论上,一个应用程序可能会占用大量 CPU 或内存,但更改应用程序的池化方式不会真正产生太大影响。
2) 什么时候应该在一个应用程序池中允许多个工作进程。什么时候不应该?
最好不要管它,使用默认设置。除非您真的知道自己在做什么,否则这实际上会对您的网站/应用程序产生负面影响。
3) 是否可以使用私有内存限制来防止一个应用程序池干扰另一个应用程序池?将它设置得太低会导致有效请求在没有得到有效响应的情况下回收应用程序池吗?
a) 理论上
b) 是的,将其设置为较低会产生负面影响。同样,除非您有特定需求,并且知道自己在做什么,否则就不要管这些。
4)私有和虚拟内存限制有什么区别?
这非常复杂,这里有一篇我发现可能有帮助的快速帖子:http : //cybernetnews.com/cybernotes-windows-memory-usage-explained/
5) 是否有令人信服的理由不让每个站点运行一个应用程序池?
同样,我能想到的唯一原因是,如果多个应用程序需要某种“共享资源”,那么您可能希望在同一进程中运行它们。
对于通用应用程序和网站,IIS 的默认值设置得非常好。
****更新****
关于您对#2 的附加信息的请求,除非您有特殊需要,否则不应这样做。即使服务器操作需要很长时间,请求也是使用多个线程提供的,您可能希望使用“异步请求”来处理长时间运行的任务(这会释放线程池线程来处理其他请求)。实际上,我想不出有什么好的理由允许一个池有多个进程。
一旦您开始讨论多个进程,那么您可能会遇到以下情况:由于会话在进程 1 中处于活动状态而丢失会话状态,但请求正在由进程 2 处理。或者更糟糕的是,您必须弄清楚如何做一些进程间通信,这是一个真正的痛苦。
无论您对多个进程的原因提出什么意见,我都愿意打赌有更好的方法来处理它(而不是启动另一个进程)。
| 归档时间: |
|
| 查看次数: |
37339 次 |
| 最近记录: |