如何提高地图缓存性能

原文地址: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格式。
  • 在发布地图服务前,需要对地图文档进行分析,尽量修改调整影响缓存性能的一些警告问题。例如,如果数据集没有空间参考,会被警告,花一点时间创建空间参考会大大节省地图服务绘制和缓存创建的时间。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nginx是一款高性能的Web服务器软件,也可以用作反向代理和负载均衡器。在Nginx中配置天地图缓存可以提高网站的响应速度和性能。 首先,我们需要确保已经安装了Nginx并且可以正常运行。然后,进入Nginx的配置文件目录,一般在/etc/nginx/下。 在该目录下找到nginx.conf文件,打开并进行编辑。在http块中添加以下配置: ``` http { ... proxy_cache_path /path/to/cache levels=1:2 keys_zone=cache_zone:10m; proxy_temp_path /path/to/temp; ... } ``` 其中,/path/to/cache表示指定的缓存路径,levels=1:2表示设定缓存目录结构,keys_zone=cache_zone:10m为缓存区域的名称和大小。 接下来,在需要使用天地图的地方(如location块)添加缓存的配置: ``` location /map { proxy_cache cache_zone; proxy_pass http://api.tianditu.com/; proxy_cache_valid 200 1d; proxy_cache_valid any 10m; proxy_ignore_headers Cache-Control; proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; } ``` 上述配置中,proxy_cache表示要使用缓存,cache_zone为前面配置的缓存区域名称,proxy_pass设置为天地图接口的URL,proxy_cache_valid设定缓存的有效时间,proxy_ignore_headers忽略后端返回的Cache-Control头信息,proxy_cache_use_stale设置在后端服务器出现错误或超时时使用过期缓存。 最后,保存并退出nginx.conf文件,并使用以下命令重新加载Nginx配置: ``` sudo nginx -s reload ``` 这样,Nginx就会按照配置将天地图的内容缓存在指定的路径下,提高访问速度和性能。需要注意的是,配置缓存时要根据具体的需求进行调整,以保证最佳的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值