如何提高地图缓存性能

长平狐 发布于 2012/11/28 15:39
阅读 205
收藏 0

原文地址:http://blogs.esri.com/esri/arcgis/

如果数据比例尺大,覆盖范围广,切图会需要较长的时间。此文描述了影响切图速度的最大因素。

使用本地文件数据库

将数据源拷贝至服务器所在机器,缓存创建速度会更快且更稳定。创建缓存时会对数据进行成千上万次请求,如果数据在本地,切片绘制会更迅速。

理想的方法是在集群的每台GIS服务器的相同路径下放置相同的文件数据库。对文件数据库进行注册,在地图文档中,数据源使用本地路径。

避免动态投影

要获得最佳性能,数据源使用相同的空间参考,从而避免动态投影。自然人们可能不愿意将正在使用的数据库变换投影,但是,放在服务器上的数据可以是数据副本,仅用来创建缓存及,满足用户请求。

谨慎使用抗锯齿

抗锯齿用来平滑线和标注,使他们不会显示异常。文本抗锯齿对性能影响很小,但是要素抗锯齿由于要进行密集型计算会严重影响缓存速度。

对于一些比例尺级别的要素进行抗锯齿会使矢量地图看起来更加专业。但是需要明白增加抗锯齿就会延长缓存创建的时间。一般来说,设置为Fastest和Fast对大多数缓存来说就足够了。避免使用更高级别的抗锯齿效果例如Best,除非通过实验发现那个比例尺下确实需要。

充分利用CPU资源

为了使切片创建最快速,缓存期间CPU利用率最好达到100%,当然最大不要超过100%。可以使用任务管理器或者性能监控器进行监控。

由于每个地图情况不同,因此要达到CPU的最大利用需要反复试验缓存设置。有两大主要设置会影响致力于缓存工作的机器资源:

  • 集群中每台机器CachingTools服务的最大实例数。最大实例数设置为n+1,n为计算机的CPU核数。
  • 集群中用于缓存作业的最大实例数。初始值是运行Manage Map Server Cache Tiles工具看到的默认值,要计算出可输入的最大数,将 CachingTools 集群中的 GIS 服务器计算机数量与运行每台计算机所允许的最大 CachingTools 实例数相乘。然后对控制器实例的数量减去一。

以上的推荐值仅仅是实验时作为起始值进行设置,具体情况还要在反复实验中进行调整,可以参考帮助主题分配服务器资源以创建缓存

按需缓存

有的时候没有必要创建全部比例尺全图范围的所有切片,有的地区切片被频繁访问,而有的区域却很少访问,特别是较大比例尺下数据稀少的地区。

在开始切片之前,需要规划哪些地区、哪些比例尺必须要预先缓存,哪些执行按需缓存就可以(或者显示“Data not available”)。小比例尺切片量少因此缓存不会带来问题,但是较大比例尺就需要进行好好规划了。

为地图创建感兴趣或重要地区的要素类,当缓存大比例尺时,使用这个要素类来限制缓存创建。如果要素类折点过多,则会造成缓存性能下降,因此在缓存前,可以使用简化面工具从要素类中系统地移除折点,而不改变常规形状。

如此规划,可以避免创建感兴趣区域以外的切片,从而提高缓存性能。

更多技巧

最后,需要注意一些额外技巧以提高缓存速度:

  • 避免使用松散格式。松散格式会大大增加缓存时间,大大增加占用的磁盘空间,且迁移麻烦。最好使用默认的紧凑格式。
  • 一些杀毒软件会消耗缓存作业资源,特别是如果新创建的切片或文件需要进行扫描的话。如果怀疑杀毒软件会与arcgis server竞争内存和CPU资源的话,就在缓存期间禁掉杀毒软件。
  • 如果缓存速度与缓存占用磁盘空间相比,更在意创建速度的话,那避免使用10.1中新提供的最优化图片格式PNG。此格式会大大减少缓存大小,但是需要更多时间,因为创建切片时会计算图片的最佳位深。考虑使用mixed格式。
  • 在发布地图服务前,需要对地图文档进行分析,尽量修改调整影响缓存性能的一些警告问题。例如,如果数据集没有空间参考,会被警告,花一点时间创建空间参考会大大节省地图服务绘制和缓存创建的时间。


原文链接:http://blog.csdn.net/arcgis_all/article/details/8205374
加载中
返回顶部
顶部