ArcGIS Server访问量过大时,lsass.exe进程占用CPU内存过高。

0
分享 2015-04-08
问题描述:

当ArcGISServer .NET应用程序和IIS服务访问量过大时(每秒超过25个并发请求),LocalSecurity Authority Subsystem Service (lsass.exe)系统进程就会变得负担过重.这个能造成系统性能下降,在极端的情况下,在如此大的负载情况下系统运行超过12个小时,服务器会死机。

原因:

ArcGISServer .NET Web应用程序和服务必须运行在AGSUSERS或AGSADMIN工作组下。通常的情况下,创建应用程序或者服务是通过ArcGIS Server的Web应用程序或者Catalog完成,它们是被当作一个aspnet进程处理的。

ArcGISServer组件处理Internet服务请求,例如:

http://myArcGISServer/arcgis/services或者http://myArcGISServer/arcgis/rest,或者自己的Web服务,使用过ArcGIS Web Services账户运行的。

每当一个Web应用程序或者Web服务处理一个请求的时候,在ASP.NET工作进程下必须通过lsass.exe去认证。在正常负责条件下,这些认证操作是没有问题的。但是当访问量过大的时候,认证的过程就会严重影响系统的正常运行。

解决方法:

在高负载的情况下,通过配置ASP.NET工作进程,Web应用程序或者Web服务可以缓解lsass.exe进程的负担。

具体办法如下(仅供参考)

1、创建一个新的IIS应用程序池使它默认是ArcGIS WebServices账户。

a、打开IIS管理器,指向“应用程序池”。

b、右键点击“应用程序池”,添加一个新的池。

c、 创建完成后,右键点击新建的池,选择“高级设置”。

d、在“进程模式”中选择“标识”。

e、输入ArcGIS WebServices的用户名和密码。

f、 完成后点击“确定”完成操作。

注意:在ArcGIS Server 10中,上面的步骤已经做好。不需修改。

2、给ArcGIS Web Services账户赋予修改权限。

a、打开资源管理器,指向“C:WindowsTemp”目录。

b、右键点击Temp目录“属性”。

c、 选择“安全”选项卡。

d、在“组或用户名”列表框中,添加ArcGIS WebServices用户,并赋予修改权限。

e、点击“确定”完成操作。

3、配置ArcGIS SOAP Web Services不使用模拟。

a、使用Visual Stadio或者记事本打开Web.Config文件(C: Inetpubwwwroot ArcGIS Services)。

b、在Web.Config文件中,修改Impersonate的值为False。

<appSettings>

<add key=”ServiceInfoRefreshTimeInSeconds”value=”10″ />

<add key=”GCInterval” value=”10″ />

<add key=”Impersonate” value=”false” />

</appSettings>

注意:如果不存在Impersonate节点,添加这个值。

c、 保存Web.Config文件。

4、配置ArcGIS rest Web Services不使用模拟。

a、使用Visual Stadio或者记事本打开rest.config文件(C: Inetpubwwwroot ArcGIS REST)。

b、在Web.Config文件中,修改Impersonate的值为False。
<Impersonate>false</Impersonate>

注意:如果不存在Impersonate节点,添加这个值。

c、 保存rest.config文件。

5、在新的IIS应用程序池中添加ArcGIS WebServices。

a、打开IIS管理器,指向“Default Web Site”节点。

b、展开节点,指向“ArcGIS”目录。

c、 在“ArcGIS”节点下,右键点击“Services”、“Rest”和“Manager”指向“管理应用程序”->高级设置。

d、在“应用程序池”中选择新建的池。

e、点击“确定”完成操作。

6、重新启动ArcSOM服务。
文章来源:http://blog.csdn.net/sydbc/article/details/17203923

0 个评论

要回复文章请先登录注册