池化服务与非池化服务

池化服务:

选取池化服务时,服务器对象在服务器运行时预先创建了指定数目的,并且只在用户请求服务器对象时,优先使用已创建的服务器对象,如果没有空闲的服务器对象才会创建新的服务器对象返回给用户进程进行相应的操作,并且当用户操作结束后立即将服务器对象释放回到服务器对象池中等待下一个用户会话。

 

high isolation——服务的每个实例都会独占一个arcsoc.exe

low isolation——一个进程内可保存有多个(默认是8个,最多可达256个)实例。好处是,可以启动相对少的arcsoc.exe来维持同样数量的实例,节约服务器的内存资源。缺点是,如果一个arcsoc.exe崩溃,那么里面的所有实例都会被销毁,及时用户正在使用它们。

一般来说,对于池化服务使用high isolation

 

池化服务的特点:

1.池化服务器对象是预先创建的服务器对象,他在用户请求服务器对象前就已预先获取了服务器中包含的空间信息,并在内存中创建并维持了数目服务器对象。有效的降低了每次用户请求时重复获取空间信息的时间与创建服务器对象的系统开销。

2.池化服务器对象是可供多个用户共享。由于池化服务器对象仅仅在用户请求时返回给用户,当用户的一次操作结束后立即释放服务器对象到服务器对象池中,所以池化服务器对象允许多个应用程序进程共享同一个服务器对象,即多个用户可以在其操作进程中使用同一个服务器对象,从而达到资源的最大化利用,而且由于在用户获取服务器对象前已经创建了度武器对象,

所以减少了重复创建和销毁服务器对象的开销,加速了系统响应的时间。

3.池化服务器对象时无状态的。每次调用的服务器对象都是初始化状态,其本身无法自动保存其状态。并且池化服务器对象只读模式,不能修改服务器对象及其相关的对象。

 

非池化服务:

用户第一次请求服务器对象时创建,并当用户会话结束后才会释放服务器对象,所以一个非池化服务器对象对应一个用户进程。

非池化服务器对象是有状态的,有服务器状态的对象时可读写的对象,意味着应用可以对服务器对象及其相关对象改动。

如果全部使用非池化的服务器对象将会使得服务器在大并发访问时产生严重的性能问题,甚至瘫痪。

所以当不需要修改服务器对象中的要素集内容的情况下使用池化服务器对象来改善系统性能。

 

PS:一次性碗筷和家用碗筷的区别

 什么是池化理念

池化从全新视角出发重新解释定义服务器资源的管理和分配机制,它采用面向服务、面向需求的系统资源分配方法来整合、改善和优化服务器的计算资源,以求达到提高整体服务质量的目的。

猜你喜欢

转载自blog.csdn.net/refreeom/article/details/82597892