当一个地理平台上线运行,我们经常会遇到这些问题: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. kubernetes集群搭建(9):docker 镜像的导入与导出

    由于K8s搭建时官方提供的镜像不FQ是访问不了的,所以搭建过程中很多时间都耗费在去找镜像去了 下面是我搭建k8s集群用到的镜像  没有采用之前我用的二进制文件搭建(dns没成功),这里采用的Kubea ...

  2. Java诊断工具

    官方文档:Arthas(阿尔萨斯) 1. 安装成功后通过  arthas 命令使用 arthas软件 进入后显示服务器正在运行的Java进程: 2. help显示 atrhas 的功能列表

  3. HoloLens开发手记-凝视 Gaze

    在全息应用中,凝视是第一种输入形式,被用于定位物体(功能和PC的光标指针类似).凝视告诉你用户正在看向世界中的位置,让你能够确定他们的意图.在现实世界中,你通常会盯着你打算与之交互的物体.这种方式与凝 ...

  4. mongodb远程备份

    创建备份用户 db.createUser({user: 'backup',pwd: 'back123' ,roles : [{role : 'userAdminAnyDatabase' ,db : ' ...

  5. Ubuntu 16.04 截图快捷键

    一.查看 "截图" 快捷键 打开 "系统设置",点击 "硬件" 下的 "键盘",然后点击 "快捷键" ...

  6. docker+nginx实现负载均衡

    配置nginx配置文件(配置文件运行时是会加载到docker进程中)先建立nginx相关文件和目录,对应下面启动命令中的挂载位置,把主配置文件nginx.conf放到对应位置“/etc/docker/ ...

  7. spring cloud+.net core搭建微服务架构:服务发现(二)

    前言 上篇文章实际上只讲了服务治理中的服务注册,服务与服务之间如何调用呢?传统的方式,服务A调用服务B,那么服务A访问的是服务B的负载均衡地址,通过负载均衡来指向到服务B的真实地址,上篇文章已经说了这 ...

  8. 从零开始学 Web 之 移动Web(八)Less

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  9. 对python pickle的理解

    python 提供了pickle模块,能将对象进行序列化,将对象以文件形式存放在磁盘. 几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化.但是序列化后的数据可读性很差. pic ...

  10. NLog日志框架使用探究-1

    目录 前言 为什么是NLog? 目的 配置 基本配置 日志等级 输出例子 目标 参数 规则 日志分发 日志收集 结语 参考文档 前言 日志是每个程序的基本模块.本文是为了探究如何通过NLog方便及记录 ...