当一个地理平台上线运行,我们经常会遇到这些问题:1、系统刚上线时速度较快,一段时间后访问较慢?2、在地理平台目前的配置下,发布多少个服务才合理?一个服务配置多少个实例数才合适?这些问题,都涉及整个地理平台的性能策略设计。

性能设计,除了与安装部署策略设计有关外,还涉及到网络带宽、数据组织、客户端GIS服务访问代码组织,以及地理平台服务发布策略。具体项目问题的解决要调研具体情况后系统化解决,但是,基于地理平台基本运作原理有以下基本原则:

1、数据组织:数据平滑处理、删除不必要的属性、建立空间索引;

2、服务优化:减少复杂的制图表达效果、减少动态标注的使用,在发布阶段使用地图发布工具来评估地图显示复杂性,可以评估渲染时间,早做性能验证可以减少实施风险。

3、拆分图层:避免大量图层同时展现;

4、符号:使用简单符号;

5、显示控制:不要同时加载全部图层;

6、代码优化:代码精简、前端显示图片压缩,对于栅格数据,JPEG压缩方式性能更优,对于矢量数据,PNG压缩方式性能更优;

7、灵活利用要素服务+动态图层+缓存图层:只可做属性查询操作的图层发布成动态图层服务,静态的地理底图切片后再发布成服务,可做属性及位置编辑操作的图层发布成要素 服务,数据源动态实时变化的图层发布成要素服务,删除地图文档中引用的其他服务。

8、灵活配置服务的高隔离低隔离进程设置:把发布的服务配置成低隔离进程,可以有效改善服务器内存使用情况,一旦某一个服务实例崩溃时,销毁运行在低隔离进程中的所有服务实例;把发布的服务配置成高隔离进程,当某一服务实例进程失败时,只会影响其中一个服务实例,服务响应时间短、吞吐量高、稳定性高。

9、灵活配置服务的最小最大实例数:每台GIS 服务器,当服务启动时,默认启动最小实例数,当现有实例都处于busy状态,有新的服务请求到达,才会启动新的服务实例,但是启动的实例总数不会超过最大实例数(运行中的实例:只占用内存,不占用CPU;使用中的实例:即占用内存,又占用CPU)。经常监控服务的访问状况,对于偶尔使用的服务:服务不经常用到、少数人在短时间内使用,建议Min/Max值设置为0/1,且空闲实例运行时间(超过这个时间,系统自动终止该服务)依业务需求设置;对于经常使用的服务,每天都有大量的服务请求,建议Min/Max设置为相等,注意需要配置足够的实例数才能达到峰值吞吐,但是服务实例配置过多会增加响应时间,对于复杂的地理处理服务,最大实例数设置小一些(以保护GIS服务器资源),并且在服务访问峰值吞吐期间,避免频繁免的启动和停止ArcSOC进程。

10、如果资源允许,尽量选择服务池化处理,把服务对象装载到内存中,增加客户端并发数。

GIS性能策略的更多相关文章

  1. OpenCL 增强单work-item kernel性能策略

    1.基于反馈的Optimization Report解决单个Work-item的Kernel相关性 在许多情况下,将OpenCL™应用程序设计为单个工作项内核就足以在不执行其他优化步骤的情况下最大化性 ...

  2. ActiveMQ生产者和消费者优化策略

    一.生产者优化策略  默认情况下,ActiveMQ服务端认为生产者端发送的是PERSISTENT Message.所以如果要发送NON_PERSISTENT Message,那么生产者端就要明确指定. ...

  3. 19个三维GIS软件对比

    19个三维GIS软件对比 麦豆科研技术中心 days ago 我国GIS经过三十多年的发展,理论和技术日趋成熟,在传统二维GIS已不能满足应用需求的情况下,三维GIS应运而生,并成为GIS的重要发展方 ...

  4. 设计模式之策略模式和状态模式(strategy pattern & state pattern)

    本文来讲解一下两个结构比较相似的行为设计模式:策略模式和状态模式.两者单独的理解和学习都是比较直观简单的,但是实际使用的时候却并不好实践,算是易学难用的设计模式吧.这也是把两者放在一起介绍的原因,经过 ...

  5. 国内外主流的三维GIS软件

    我国GIS经过三十多年的发展,理论和技术日趋成熟,在传统二维GIS已不能满足应用需求的情况下,三维GIS应运而生,并成为GIS的重要发展方向之一.上世纪八十年代末以来,空间信息三维可视化技术成为业界研 ...

  6. 详尽介绍FireFox about:config

    一.什么是about:config about: config: 是Firefox的设置页面,Firefox提供了不少高级设置选项在这里以便让你可以更加详细地控制Firefox的运行方式.官方不推荐 ...

  7. 分布式消息通信Kafka-原理分析

    本文目标 TopicPartition 消息分发策略 消息消费原理 消息的存储策略 Partition 副本机制 1 关于 Topic 和 Partition 1.1 Topic 在 kafka 中, ...

  8. Kafka(2)--kafka基本原理之消息的分发与接收

    关于 Topic 和 Partition Topic 在 kafka 中,topic 是一个存储消息的逻辑概念,可以认为是一个消息集合.每条消息发送到 kafka 集群的消息都有一个类别.物理上来说, ...

  9. Spring 注解@Transactional readOnly=true

    引子 今天下班后,以前同事小胖问我Spring  Service类中的注解@Transactional readOnly=true的作用.做为他眼中的高人,我自然要装下A-C.居然想都没有想就说是注解 ...

随机推荐

  1. Eclipse 中 Debug 时鼠标悬停无法查看变量值

    问题描述:Eclipse在Debug模式下,当鼠标移动到某个变量上面时不自动显示该变量对应的值. 解决方法:在Eclipse中点击 Window->Preferences->Java-&g ...

  2. gitlab 一键 merge request(III)

    已经有两位同学写过类似的 wiki 了,值得一看: gitlab一键提交request merge & assign 为啥我又来凑热闹呢?基于下面两个原由: 我的机子是 Win10,上面脚本的 ...

  3. 京东架构师的showtime京东个性化推荐系统实战

    推荐系统核心任务是排序,从线上服务角度看,就是将数据从给定集合中数据选择出来,选出后根据一定规则策略方法进行排序. 线上服务要根据一定规则进行架构设计,架构设计是什么?每一次权衡取舍都是设计,设计需要 ...

  4. OSI七层模型和tcp/ip四层模型对比

    OSI 与TCP/IP 模型对比 OSI 协议层名称 TCP/IP 协议层名称 封装的单元 功能描述 TCP/IP协议 应用层(Application) 应用层(Application) 数据 应用程 ...

  5. resin远程调试配置

    1.进入resin的安装路径下的conf目录,下面有个resin.conf的文件,打开它,将下面这段配置添加进去,然后重启resin(大家应该知道如何重启吧): <jvm-arg>-Xde ...

  6. Linux学习笔记之二————Linux系统的文件和目录

    一.Windows和Linux文件系统区别 1.在 windows 平台下,打开“计算机”,我们看到的是一个个的驱动器盘符: 每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示:  ...

  7. localStorage的存储、获取、删除操作

    var store={ // 保存 save:function(key,value){ localStorage.setItem(key,JSON.stringify(value)); }, // 获 ...

  8. 安装clickhouse缺少依赖libicudata.so.50()(64bit)

    root@localhost ]# rpm -ivh clickhouse-common--.el7.x86_64.rpm 错误:依赖检测失败: libicudata.so.()(64bit) 被 c ...

  9. github总结(1)--怎样创建一个新的仓库

    第一步:登录账号,进入github,创建一个新的空仓库 第二步:打开电脑上已经安装好的git-bash,切换至项目所在本地目录 第三步:创建本地仓库及提交文件到本地仓库(用windows命令行或者gi ...

  10. 网络基础知识-TCP/IP协议各层详解

    TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...