使用内存虚拟硬盘 提高ArcGIS server并发性能的一种方法
1 问题提出
1.1 概述
提高ArcGIS server并发性能的方法很多,本文讨论在用户硬件足够强大的情况下(主要是内存足够大),使用内存模拟硬盘来提高数据的读取效率,以达到提高ArcGIS server并发性能的目的。
1.2 总体思路
为了提高ArcGIS server并发性能,在假定其他条件都相同的前提下,使用Ramdisk软件,将系统中的内存模拟成硬盘使用,然后将ArcGIS server中发布2个相同的切片服务,其中一个服务的切片迁移至内存盘(即Ramdisk),另外一个服务切片存放位置不变(为普通硬盘),然后在客户端使用压力测试软件测试2个服务的并发性能,最终得出测试结论。
2 环境搭建
2.1 软件环境
|
软件名称 |
版本号 |
用途 |
|
ArcGIS |
10.1 |
平台测试,包括server和桌面 |
|
Windows 2008 |
R2(64位) |
操作系统 |
|
Ramdisk 64 |
1.6 (64位) |
内存虚拟硬盘软件 |
|
Crystal Disk Mark |
3.0.1(64位) |
硬盘速度测试软件 |
|
Microsoft Web Application Stress Tool |
1.1.293.1 |
压力测试软件 |
2.2 硬件环境
|
硬件类别 |
规格 |
|
CPU |
Intel(R) Core(TM) i7 CPU 1.73GHz (8 CPUs) |
|
内存 |
8G |
|
硬盘 |
Hitachi HTS725050A9A364 ATA Device 500G,7200转 |
|
显卡 |
NVIDIA Quadro FX 880M |
2.3 网络环境
Intel(R) 82577LM Gigabit Network
1 测试过程
1.1 硬盘读写速度测试
![]() |
使用Ramdisk将1G内存虚拟成硬盘后,得出的数据读写速度截图如下:
虚拟前(普通硬盘)
![]() |
虚拟后(内存虚拟硬盘)
从内存虚拟前后测试硬盘读写速度的数据来看,内存和硬盘的速度相差大约70倍左右。
1.2 发布切片服务
下面我们使用arcgis server发布2个切片服务,这2个服务除了切片放置的位置不同(一个放在普通硬盘,一个放在内存虚拟的硬盘上),其他都一样。这样我们得到了这2个服务的地址:
http://192.168.32.153:6080/arcgis/rest/services/wychinaRam/MapServer
http://192.168.32.153:6080/arcgis/rest/services/tile/wychinaT/MapServer
1.3 压力测试
由于专业测试软件Load Runner的复杂性,本文使用轻量级测试软件Microsoft Web Application Stress Tool作为压力测试软件。该软件有一个不足的地方,就是只能静态设置一个或者多个测试地址,而不能以一定规则测试某些地址,比如随机选择某行或某列的切片进行测试。本文选取5个固定切片地址作为测试源,500个并发测试1分钟,软件截图如下:
![]() |
通用测试设置
![]() |
内存虚拟盘测试设置
普通硬盘测试设置
1.4
![]() |
测试报告
![]() |
内存虚拟硬盘测试报告
普通硬盘测试报告
2 结论与思考
从以上测试报告可以看出,使用内存虚拟硬盘后,切片服务的平均响应时间由484.33毫秒下降到386.26毫秒。这个结论并不能完全反应出内存虚拟硬盘对服务性能提高的优势,因为内存的读写速度比普通硬盘提高了70倍左右。那么问题出在哪儿呢?
我们先来看下影响ArcGIS server性能架构的一张图:
![]() |
影响ArcGIS server性能的各个环节
由上图可以看出,从浏览器发出请求到接收到数据,需要经过大概6个左右的环节,每个环节都有可能成为性能瓶颈,而GIS Server只是这众多环节中的一个。具体到本文当中,由于测试时选取的切片位置相同(比如每次都请求第8层的102行103列的切片),导致该切片在第一次请求时就已经被加入到了系统缓存(内存)中,以后每次请求都会直接从内存中加载而不会到硬盘上读取,这样,切片源是存放在普通硬盘还是内存虚拟出的硬盘中,就不那么重要了。
如果能够以编程的方式定制测试脚本,精确控制每次并发访问的切片都位于不同的级别和行列,可以预见,就可以得到比较好的结论,比如性能上,内存虚拟硬盘能够比普通硬盘的响应时间提高到70倍左右。
使用内存虚拟硬盘 提高ArcGIS server并发性能的一种方法的更多相关文章
- 读写分离提高 SQL Server 并发性能
以下内容均非原创,仅作学习.分享!! 在 一些大型的网站或者应用中,单台的SQL Server 服务器可能难以支撑非常大的访问压力.很多人在这时候,第一个想到的就是一个解决性能问题的利器——负载均衡. ...
- 修改Linux内核参数提高Nginx服务器并发性能
当linux下Nginx达到并发数很高,TCP TIME_WAIT套接字数量经常达到两.三万,这样服务器很容易被拖死.事实上,我们可以简单的通过修改Linux内核参数,可以减少Nginx服务器 的TI ...
- 性能调优之提高 ASP.NET Web 应用性能的 24 种方法和技巧
性能调优之提高 ASP.NET Web 应用性能的 24 种方法和技巧 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对 ...
- SQL Server 优化存储过程的七种方法
原文:SQL Server 优化存储过程的七种方法 优化存储过程有很多种方法,下面介绍最常用的7种. 1.使用SET NOCOUNT ON选项 我们使用SELECT语句时,除了返回对应的结果集外,还会 ...
- SQL Server遍历表的几种方法 转载
SQL Server遍历表的几种方法 阅读目录 使用游标 使用表变量 使用临时表 在数据库开发过程中,我们经常会碰到要遍历数据表的情形,一提到遍历表,我们第一印象可能就想到使用游标,使用游标虽然直观易 ...
- ramdisk plus v11.5安装内存虚拟硬盘
ramdisk plus v11.5.桌面版操作及应用图解说明 一.ramdisk plus程序安装方法: 1.先安装英文原版软件(RamDisk-desktop.exe桌面版),安装路径不要更改,安 ...
- 读写分离提高 SQL Server 并发性
转自:http://www.canway.net/Lists/CanwayOriginalArticels/DispForm.aspx?ID=476 在一些大型的网站或者应用中,单台的SQL Serv ...
- Arcgis Server 默认服务端口号修改方法
本人安装Arcgis Server 10.2之后发布了一个地图服务,该服务默认使用的端口号是6080,本人使用的是教育网,使用教育网均能正常使用该服务,但是使用电信或者移动网络均不能正常访问该网站. ...
- 提高HTML5 canvas性能的几种方法
简介 HTML5 canvas 最初起源于苹果(Apple)的一项实验,现在已经成为了web中受到广泛支持的2D快速模式绘图(2Dimmediate mode graphic)的标准.许多开发者现在利 ...
随机推荐
- @Resource、@Autowired、@Qualifier的注解注入及区别
在Java代码中可以使用 @Resource 或者 @Autowired 注解方式来进行注入. 虽然 @Resource 和 @Autowried 都可以完成依赖注入,但是他们是有区别的. 一: @ ...
- 定制自己的linux系统
算是总结式文档,以备后忘 先说一下背景,一开始我就知道有这个任务,同时我自己也非常感兴趣,打算去研究研究 于是才同意接这个任务,但是我的原意是从头开始搭建系统,也就是lfs 但接到任务后,由于种种原因 ...
- Net分布式系统之一:系统整体框架介绍
一.设计目的 从事.Net平台开发系统已有8年多了,一直思考搭建.Net分布式系统架构.基于window平台搭建的大型分布式系统不多,之前了解过myspace.stackoverflow等大型网站.搭 ...
- gslX680驱动的移植实践
将gslX680触摸屏驱动移植到自己的开发板上(对应的源码文件gslX680.c),并且实现可以使用make menuconfig进行动态的加载和卸载 因为触摸屏设备属于一种典型的输入设备,所以他的驱 ...
- jquery api
1. clone()可以复制一个节点 2. .prop()方法为元素赋属性值非常方便. $("input").prop("disabled", false); ...
- HDU 4831 Scenic Popularity
Scenic Popularity Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- PagedDataSource、Repeater以及AspNetPager在ASP.NET上分页。
一.前台使用服务器标签 1.1使用Repeater控件 <asp:Repeater ID="Repeater1" runat="server"> & ...
- Android调试小技巧(LogCat不输出、Log自动清空、install时timeout)
问题:有时候明明连接了设备,而LogCat却没有输出 解决方法:在device界面点一下对应设备,使其处于选中状态(它适用于查看手机文件不显示的情况) 问题:前面记录的Log看着看着突然被清空了 解决 ...
- flash中htmlText样式
赋值htmlText时,htmlText中指定了样式的按指定样式显示,没有指定的按该文本的默认样式显示. PS:flash软件拖出来的文本,在赋值htmlText的时候该文本原有样式会失效,而new出 ...
- 【译】RabbitMQ:发布-订阅(Publish/Subscribe)
在前一篇教程中,我们创建了一个工作队列,我们假设在工作队列后的每一个任务都只被调度给一个消费者.在这一部分,我们将做一些完全不一样的事情,调度同一条消息给多个消费者,也就是有名的“发布-订阅”模式.为 ...






