当一个地理平台上线运行,我们经常会遇到这些问题: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. Java正则表达式API详解

    1. Pattern类 public class PatternExample { /** * public static String quote(String s) * 返回指定字符串的字面值模式 ...

  2. Linux pwn入门教程(6)——格式化字符串漏洞

    作者:Tangerine@SAINTSEC 0x00 printf函数中的漏洞 printf函数族是一个在C编程中比较常用的函数族.通常来说,我们会使用printf([格式化字符串],参数)的形式来进 ...

  3. MongoDB 字符串值长度条件查询

    在实际项目中常常会有根据字段值长度大小进行限制查询,例如查询商品名称过长或过短的商品信息,具体的实现方式可能有多种,在此记录常见的两种实现 使用 $where 查询(性能稍逊一些) 1 2 3 4 5 ...

  4. 【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity

    问:达叔,你放弃了吗? 答:不,放弃是不可能的,丢了Android,你会心疼吗?如果别人把你丢掉,你是痛苦呢?还是痛苦呢?~ 引导语 有人说,爱上一个人是痛苦的,有人说,喜欢一个人是幸福的. 人与人之 ...

  5. python中除法的几种类型

    传统除法:直接后缀小数点,同样结果是和最大的小数点对齐 >>> 1/2 0 >>> 1.0/2 0.5 >>> 1/2.0 0.5 >> ...

  6. BOM 浏览器对象模型

    1.window对象模型:(操作浏览器) 它既是ECMAScript规定的global对象,又是javascript访问浏览器窗口的一个接口 系统对话框:这些对话框有操作系统/浏览器设置决定,css不 ...

  7. Java程序员如何运用所掌握的技术构建一个完整的业务架构

    1.通用架构概述 创业之初,我们往往会为了快速迭代出产品,而选择最简单的技术架构,比如LAMP架构,SSH三层架构.这些架构可以适应初期业务的快速发展,但是,随着业务变得越来越复杂,我们会发现这些架构 ...

  8. app操作的一些命令

    这里的操作都是在windows下,在android SDK安装好之后就可以连接实体手机或者模拟器操作 1.查看连接的手机或者模拟器 adb devices 结果如下: 2.查看某个app的包名和act ...

  9. 高手速成android开源项目【项目篇】

    主要介绍那些Android还不错的完整项目,目前包含的项目主要依据是项目有意思或项目分层规范比较好.Linux项目地址:https://github.com/torvalds/linuxAndroid ...

  10. 以ActiveMQ为例JAVA消息中间件学习【2】

    前言 之前我们学习了什么是消息中间件,以ActiveMQ为例做了一个最简单的消息中间件的实现.但是我们做的就只能算是个例子而已,因为在实际的项目中肯定会有spring插一脚,所以spring肯定有来管 ...