关于 Web 应用程序的性能提示

Web 应用程序的性能涉及两个方面:应用程序对用户的响应速度和应用程序可以容纳的用户数量。在考虑如何改善 ArcGIS Server Web 应用程序的性能时,您可能最先想到添加或更新硬件。但是,也可以通过调整应用程序、地图或服务器中的设置来改善 Web 应用程序的性能。

设计地图以获得最佳性能

设计 Web 地图不同于设计纸质地图,甚至与设计桌面应用程序(如 ArcMap)中常用的地图也不相同。如果您有一个在 ArcMap 中常用的地图文档,则您可能希望为此地图保存一个副本,而不是直接将此地图发布到 ArcGIS Server。使用此副本,可针对 Web 查看执行某些特殊的优化。

那么,在 Web 上查看的地图有何不同呢?要使 Web 上的地图具有最佳性能,建议先使用 ArcMap 中的“地图服务发布”工具条对地图文档进行检查。在解决所有“错误”并尽可能解决更多的“警告”后,再使用此工具条发布地图。这种方式是以地图服务定义(.msd 或 MSD)文件作为服务的基础,以这种方式发布的服务将获得最快的绘制速度。

无论地图服务是否基于 MSD,您都要考虑对其进行缓存以获得较好的性能。缓存地图就意味着您将创建并存储一组预渲染的影像,这样应用程序就可以快速进行访问,而无需每次都对地图的绘制过程进行等待。对地图进行缓存时,您要确保在所有地图缓存比例下您所设计的地图的显示效果都是良好的。有关执行此操作的方法,请参阅规划地图缓存

缓存地图服务

缓存的地图服务将分发预绘制的地图切片,而不是动态绘制地图影像。缓存的服务不仅可以改善地图的显示速度,还大幅增加了服务器所能容纳的用户数量。对于面向公众的 Web 应用程序,应始终对底图服务进行缓存,并且可以尝试对所有适合进行缓存的业务型叠加服务进行缓存。

评估构建地图缓存所使用的影像格式

所选的影像格式会影响缓存的性能、显示效果以及占用的磁盘空间大小。PNG 8 适用于许多基于 MXD 的叠加服务,而 PNG 32 则比较适用于基于 MSD 的叠加服务。对于底图,JPEG 通常是最好的选择,尤其是在地图具有许多颜色变化的情况下。有关每种影像格式的详细信息,请参阅可用的地图缓存属性

避免以 PNG 24 格式缓存地图服务

Internet Explorer 6 在显示 PNG 24 影像的透明度方面具有局限性。Web ADF 包含了可以解决此局限性问题的代码,但在遇到这种情况时,性能会有所降低。按照以下步骤操作可避免这种情况:

尽可能使用 ArcGIS Server Internet 连接

使用 ArcGIS Server Internet 连接方式连接到服务器可更加有效地使用服务器上下文请求。ArcGIS Server 本地连接应仅在应用程序需要更改服务的状态时使用,包括用 Web ADF 编辑数据。

确保“鹰眼图”控件使用的是静态模式

如果“鹰眼图”由于不断地更改比例和范围而出现性能下降的情况,则可在 Visual Studio 中打开 Web 应用程序并确保“鹰眼图”(OverviewMap) 控件的 StaticMode 属性被设置为 True。这样,当地图范围发生变化时,“鹰眼图”影像将保持不变。

配置 TOC 控件以优化性能

TOC 控件有多个选项可用于减少从服务器请求的信息量。

考虑将某些 MapResourceItem 中的 Visible 属性设置为 False。这会提高应用程序的开启速度,但要注意 Web 用户将需要手动打开图层。

删除不必要的 Web 控件

您在 ArcGIS Server 管理器或 IDE 中看到的默认 Web 制图应用程序包括 TableOfContents、OverviewMap 和 Scalebar 等 Web 控件。在与应用程序进行交互时,这些控件将请求新的影像以及更新的状态信息。将不常使用的控件从应用程序中删除有助于改善应用程序的性能及系统的可伸缩性。

配置 Web 服务以避免对每个请求都进行模拟

在准备部署环境时,您需要进行一些更改,以避免本地安全机构子系统服务 (lsass.exe) 过载。

当某用户从其中一个 Web 服务发出请求时,Web 服务器必须使用服务器对象管理器 (SOM) 对自身进行验证。Web 服务器通过模拟 ArcGIS Web 服务帐户来完成验证,该帐户已在您运行安装后配置时添加到 AGSADMIN 组中。在轻量级负载下,这种模拟不会消耗太多资源,但在重量级负载下,lsass.exe 进程会过载,将明显造成性能上的延迟。每秒 25 或多于 25 个请求可视为重量级负载。

通过将 Web 服务配置为在应用程序池中运行可避免对每个请求都进行模拟,该应用程序池将在 ArcGIS Web 服务帐户身份下运行。这将减轻 lsass.exe 进程的负载,从而加快服务的运行速度。

ESRI 知识库文章提供了有关此问题的其他背景信息,并且介绍了如何进行配置调整:

使用理想的编码方法

如果您正在 Microsoft Visual Studio 中自定义 Web 制图应用程序或是从头创建自己的应用程序,可使用“开发者帮助”的优化 Web ADF 应用程序的性能中的最佳编码方法。

避免不必要的大型查询

默认情况下,ArcGIS Server 地图服务将查询返回的记录数限制为 1,000 条。采用默认值或减小该值可使查询获得最佳性能。通过编辑地图服务配置文件中的 MaxRecordCount 属性可更改允许的结果记录的条数。

增大默认值时务必要谨慎。如果查询返回的记录数超过 2,000 条,则软件需要在系统 TEMP 目录中创建临时工作空间来管理结果记录。这会导致性能下降。

使用本地路径

与使用网络路径或通用命名约定 (UNC) 路径相比,使用源地图和数据的本地路径通常会获得更好的性能。如果您使用本地路径并且部署中包含多台服务器对象容器 (SOC) 计算机,则需使用相同的路径将数据复制到每台计算机上。

有关如何确定是使用中央 ArcSDE 服务器还是本地文件地理数据库的帮助信息,请参阅 ArcGIS Server 数据存储注意事项


7/10/2012