本文内容来自《Jexus web server运行于多进程模式时需要注意的事项》,默认情况下,Jexus web server是以单进程模式运行的,当修改jws.config配置文件,把工作进程数量设置为大于1的数字时,JWS就会按指定的数量以多进程的方式并发工作。多进程模式运行Jexus就相当于IIS 6的Web Garden。配置使用多个工作进程可以提高该应用程序池处理请求的性能,但是在设置为使用多个工作进程之前,请考虑以下两点:
- 每一个工作进程都会消耗系统资源和CPU占用率;太多的工作进程会导致系统资源和CPU利用率的急剧消耗;
- 每一个工作进程都具有自己的状态数据,如果Web应用程序依赖于工作进程保存状态数据,那么可能不支持使用多个工作进程。
在多进程模式下需要考虑到应用程序在缓存(Cache)和会话(Session):
1、不要将Session保存在进程内,即web.config中的sessionState不能配置为Inproc,应该使用第三方的同一台Session state服务器对session信息进行保存。如:可以配置为“<sessionState mode="StateServer" stateConnectionString="tcpip=myserver:42424" timeout="20" />”。
2、需要配置machineKey。Jexus多进程并行时,相于当多主机群集工作,因此,必须在Web.Config文件中配置machineKey。如果没有这个设置,网站就会出现诸如数据“无法验证的错误”之类的问题。下面是一个machineKey的参考配置:
<machineKey validationKey="3FF1E929BC0534950B0920A7B59FA698BD02DFE8" decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A77" decryption="3DES" validation="SHA1"/>
machineKey 可以通过在线工具生成: http://aspnetresources.com/tools/machineKey
参考相关文章:
网站优化——IIS与web.config配置优化
IIS Tuner