Problem: 负载较大时lsass.exe服务的CPU和内存占用一直增加

文章编号 : 32620
软件: ArcGIS Server 9.2, 9.3, 9.3.1
操作系统: Windows 2003Server
已邀请:

易智瑞技术支持

赞同来自:

错误信息:
当ArcGIS Server .Net web程序和Internet服务负载很大时(每秒超过25个并发请求),lsass.exe系统进程会负担过重。这会导致系统性能下降,极端情况下,比如持续大负载超过12小时,会引起系统宕机。 对外提供设置了访问控制的ArcGIS Server服务时也会遇到这个问题,当google bot(crawl-66-249-66.google.com)对REST服务目录做索引时,会产生大量的web service 请求。停止google对站点的索引或使用下面的办法可以解决这个问题。
原因: 使用ArcGIS Server .Net的web程序或服务必须以操作系统AGSUSERS或AGSADMIN组的用户运行。默认地,可以设置web程序或服务的运行账号。
ArcGIS Server处理Internet请求的组件,比如http://myArcGISServer/arcgis/serviceshttp://myArcGISServer/arcgis/rest本身也是web服务。默认地,这些组件以ArcGIS web service账号运行。
每次web程序或服务处理请求时,底层的ASP.NET进程必须用lsass.exe进行验证。正常负载情况下,这个认证操作是微不足道的。
当web程序或服务负载很大时(每秒超过25个并发请求)并且持续时间较长时,每个请求的验证操作会严重影响lsass.exe占用的内存和CPU。

解决方法: 在大负载情况下,修改ASP.NET进程以及web程序和服务的配置可以减轻lsass.exe进程的负担。
下面的步骤描述了如何配置ArcGIS web服务(SOAP和REST),使其运行在具有ArcGIS web service账号的独立的IIS应用程序池;以及如何取消每次请求时的身份验证。
下面的操作假设ArcGIS web service账号的名称是ArcGISWebServices(这个用户是ArcGIS Server安装时的默认账号)。这个账号的用户名可以修改。

1、创建一个新的IIS应用程序池并把它的账号设置成ArcGIS web service账号。
a)打开IIS管理器,定位到应用程序池文件夹
b)右键点击应用程序池文件夹选择New—Application Pool
c)设置应用程序池的ID,比如”ArcGIS Server Services Application Pool”,其他的选择默认设置
d)右键点击新建的应用程序池,选择属性
e)打开Identity标签页,选择“Configurable”
f)输入ArcGIS web service账号的用户名和密码,点击OK
g)重新输入确认密码,点击OK

2、把ArcGIS web service账号添加到操作系统的IIS_WPG组
a)通过控制面板—管理工具,打开计算机管理窗口
b)展开系统工具—本地用户和组,点击组
c)在右边窗口中右键点击IIS_WPG组,选择属性
d)在属性对话框里,点击添加…按钮
e)在选择用户对话框,选择包含ArcGIS web service账号的机器
f)在输入框里键入用户名,点击检查名称,然后选择用户;或者点击高级,点击立即查找,从结果列表里选择用户,然后点击OK返回上一个对话框。
g)点击OK保存设置。关闭计算机管理窗口。

3、授权ArcGIS web service账号访问IIS metabase
如果已经安装了微软.Net framework SDK,按以下步骤操作:
a)打开.Net命令行窗口,通过开始—所有程序-- Microsoft .NET Framework SDK v2.0 > SDK Command Prompt
b)输入以下命令:
aspnet_regiis -ga ArcGISWebServices c)输入exit按回车,关闭.Net命令行窗口。

如果没有安装.Net framework SDK,按以下步骤操作:
a)通过开始—运行,输入cmd按回车打开一个命令行窗口
b)输入以下命令:
cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
aspnet_regiis -ga ArcGISWebServices c) 输入exit按回车,退出命令行窗口。

4、把C:\Windows\Temp目录的写权限授予ArcGIS web service账号
a)打开windows资源管理器,定位到C:\Windows\Temp文件夹
b)右键点击C:\Windows\Temp文件夹选择属性
c)在属性对话框里,点击安全标签页
d)点击”编辑…”按钮打开对话框,点击”添加…”按钮打开选择用户对话框
e)选择ArcGIS web service账号,点击确定返回到属性对话框
f)在属性对话框里,选中ArcGIS web service用户,在允许列里勾选修改
g)点击确定保存并关闭属性对话框

5、配置ArcGIS SOAP服务不要使用身份
a)用Visual Studio或文本编辑器打开C:\Inetpub\wwwroot\ArcGIS\Services(这个目录可能安装在别的地方)目录下的web.config文件
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文件。

6、配置ArcGIS REST web service不要使用身份
a)用Visual Studio或文本编辑器打开C:\Inetput\wwwroot\ArcGIS\REST (这个目录可能安装在别的地方)目录下的rest.config文件
b)在rest.config文件中,把Impersonate的值改为false
<?xml version="1.0" encoding="utf-8"?>
<Config xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:xsd="http://www.w3.org/2001/XMLSchema">
...
<Impersonate>false</Impersonate>
</Config> 如果没有Impersonate这项,请自己添加。
c)保存rest.config文件

7、把ArcGIS web service(SOAP和REST)添加到新创建的应用程序池
a)打开IIS管理器
b)展开本地计算机—网站—默认网站—ArcGIS
c)右键点击Services选择属性,打开属性对话框
d)在Virtual Directory标签页,选择“应用程序池”下拉列表,选择第一步创建的应用程序池
e)点击确认保存并关闭属性对话框
f)对REST服务重复步骤c-e
g)关闭IIS管理器

8、重启ArcGIS Server Object Manager(SOM)服务
a)从控制面板—管理工具打开服务窗口
b)右键点击ArcGIS Server Object Manager服务,选择“重启”
c)关闭服务窗口


创建时间:2007-02-05
最近更新: 2010-06-17


原文链接
http://support.esrichina.com.cn/2007/0205/767.html

要回复问题请先登录注册