GIS性能策略
当一个地理平台上线运行,我们经常会遇到这些问题: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性能策略的更多相关文章
- OpenCL 增强单work-item kernel性能策略
1.基于反馈的Optimization Report解决单个Work-item的Kernel相关性 在许多情况下,将OpenCL™应用程序设计为单个工作项内核就足以在不执行其他优化步骤的情况下最大化性 ...
- ActiveMQ生产者和消费者优化策略
一.生产者优化策略 默认情况下,ActiveMQ服务端认为生产者端发送的是PERSISTENT Message.所以如果要发送NON_PERSISTENT Message,那么生产者端就要明确指定. ...
- 19个三维GIS软件对比
19个三维GIS软件对比 麦豆科研技术中心 days ago 我国GIS经过三十多年的发展,理论和技术日趋成熟,在传统二维GIS已不能满足应用需求的情况下,三维GIS应运而生,并成为GIS的重要发展方 ...
- 设计模式之策略模式和状态模式(strategy pattern & state pattern)
本文来讲解一下两个结构比较相似的行为设计模式:策略模式和状态模式.两者单独的理解和学习都是比较直观简单的,但是实际使用的时候却并不好实践,算是易学难用的设计模式吧.这也是把两者放在一起介绍的原因,经过 ...
- 国内外主流的三维GIS软件
我国GIS经过三十多年的发展,理论和技术日趋成熟,在传统二维GIS已不能满足应用需求的情况下,三维GIS应运而生,并成为GIS的重要发展方向之一.上世纪八十年代末以来,空间信息三维可视化技术成为业界研 ...
- 详尽介绍FireFox about:config
一.什么是about:config about: config: 是Firefox的设置页面,Firefox提供了不少高级设置选项在这里以便让你可以更加详细地控制Firefox的运行方式.官方不推荐 ...
- 分布式消息通信Kafka-原理分析
本文目标 TopicPartition 消息分发策略 消息消费原理 消息的存储策略 Partition 副本机制 1 关于 Topic 和 Partition 1.1 Topic 在 kafka 中, ...
- Kafka(2)--kafka基本原理之消息的分发与接收
关于 Topic 和 Partition Topic 在 kafka 中,topic 是一个存储消息的逻辑概念,可以认为是一个消息集合.每条消息发送到 kafka 集群的消息都有一个类别.物理上来说, ...
- Spring 注解@Transactional readOnly=true
引子 今天下班后,以前同事小胖问我Spring Service类中的注解@Transactional readOnly=true的作用.做为他眼中的高人,我自然要装下A-C.居然想都没有想就说是注解 ...
随机推荐
- MongoDB 用法入门(windows)①
概述 大家对数据库肯定不陌生,肯定也有很多人用过MySQL,但是在用MySQL的时候各种建表,写表之间的关联让人非常头疼. MongoDB也是一种数据库,但是它不是用表,而是用集合来装数据的,我对这种 ...
- tk.mybatis通用工具采坑记
tk.mybatis通用工具pom <!--mybatis依赖--> <dependency> <groupId>org.mybatis.spring.boot&l ...
- php函数式编程
// 函数式编程 $users = array( array('id' => 1, 'name' => 'abc1', 'age' => 29, '性别' => '男'), a ...
- 关于No mapping found for HTTP request with URI...
当你看到这篇博客,说明你已经像我一样快疯了!但是还好..找到了!!! 网上的那些东西真心看了更闹心,因为还没解决... 原因一.访问路径确实错了,导致Dispatcher找不到给你传达的地方,修改下领 ...
- iOSAPP开发项目搭建
架构图: 架构原则:易读性.易维护性.易扩展性. 一.思考 做好一件事,花在思考上的时间应该多于执行. 首先根据产品需求和设计图,脑中先建立一个产品架构: 1. 产品的定位是什么. 社交?媒体?游戏? ...
- docker 中ulimit设置理解
背景: 在k8s上跑es集群碰到的问题 OS版本 红旗4.5(基于centos6.8 内核) Docker:1.17.02 现象: 本次出现的问题现象:es pod启动失败,一直报max file d ...
- oracle中常见的查询操作
普通查询:select * from t; 去除重复值:select distinct f1,f2 from t; between用法:select * from t where f1 not/bet ...
- (转)linux中nmcli命令的使用及网络配置
原文:https://blog.51cto.com/groot/1847482 http://www.178linux.com/44076----CentOS7中nmcli网络管理及使用详解 http ...
- 如何将页面上的数据导入excel中
网上关于页面数据导入excel的文章很多,但是大部分都是关于 ActiveXObject 对象,可是ActiveXObject 对象是只支持IE的,可我连IE11也测试了,还是无法识别,又查到消息,好 ...
- c/c++本地时间获取
在记录程序日志时,需要记录时间.如下: #include <iostream> #include <time.h> #include <windows.h> usi ...