Web Garden 是 IIS 6.0 引入的另一个概念,在 IIS 7.0 中,这个概念仍然有效。利用这个概念,可以使用多工作进程来处理同一个应用程序池。
Web Garden 可以有效地提高系统性能,并具有以下优势:
(1)当一个工作进程因为集中关注处理某事而无法完成其他处理任务时,其他工作进程仍然能够处理新的请求。
(2)减少了资源的争用。在正常操作过程中,每个新的页面请求都被指派给一组工作进程中的某个进程,指派时,我们使用轮询方式完成指派工作。这样就可以使工作进程的工作负载尽可能地平滑。
因为一个单独的应用程序总是在被分割后以多个进程为载体运行,因此,一个应用程序中共享的内容必须保存在进程之外。例如,在一个 Web garden 中,会话状态在进程内是无法工作的,因为在一个Web garden 中存在会话状态的多个副本,每个进程都可以读写某个会话状态,并将这个会话状态保存在不同的会话状态存储区。
某些 Web 应用程序更适合使用 Web Garden。以下是使用 Web Garden 的最佳实践指南:
(1)Web 应用程序不应该是一个需要消耗大量 CPU 资源的应用程序,这是因为,令一个需要消耗大量 CPU 的页面请求与一个首次访问页面的请求争用 CPU 资源,只会导致两败俱伤。
(2)如果一个应用程序同步延迟比较高,那么这个应用程序就比较适合于 Web Garden。例如,如果应用程序调用了一个 Web 服务或者访问了一个远程数据库,从而导致系统响应迟缓,那么利用 Web Garden,我们就可以在等待长时间执行的应用程序完成处理工作的过程中,处理其他请求。
(3)每个进程都存在内存负担,启动时需要额外的时间开销,这类进程如果太多,那么就很容易耗尽一台服务器的资源。
尽管 Web Garden 和 Web farm 存在某些共同特征,但是,Web Garden 和 Web farm 是完全不同的概念。Web Garden 是由运行于一台服务器中的多个进程组成的,这些进程用于处理同一个应用程序池;而Web farm 则是由多台服务器组成,这些服务器可以协同工作,提供较高的可用性和较好的可伸缩性。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。