GeoServer生产环境调优(部分)

主要内容来自:地理学博士王晨亮整理

JVM调优


由于Geoserver是JavaEE项目,其性能直接受JVM参数影响,因此首先就需要对其进行JVM级别的优化。Geoserver部署在哪里,就设置哪里的JVM参数。

Java堆内存

Java堆内存是最基本的Java开发优化参数,无须解释。设置内存的数值需要恰当,既不能浪费剩余内存又不能抢占其他资源所必须的内存。

参数 备注
-Xms2048m 初始
-Xmx2048m 最大

其他JVM调优参数

这部分主要根据GeoServer运行耗费资源的特点,对JVM参数进行调整优化

参数 备注
-server 确保使用服务器版本JVM,编译字节码速度更快,更多性能优化。此参数在Linux下一般默认,但设置上没有任何坏处
-XX:SoftRefLRUPolicyMSPerMB=3600 控制GeoServer实例的生命期,使其生存更长提高性能
-XX:+UseParallelGC 开启多线程垃圾回收机制,大多数环境配置默认启用
-XX:NewRatio=2 处理更多短生命期对象
-Djava.awt.headless=true 避免没有X-windows的错误
-XX:PermSize=256m -XX:MaxPermSize=256m 增加分配给GeoServer的持久保存空间的最大空间。该部分主要存储类编译的字节码,由于GeoServer使用大量Java类,容易快速耗尽持久保存空间。

Java图像处理优化


原生JAI和ImageIO

GeoServer的图像处理功能使用了Java的JAI和JAI ImageIO功能,但由于Java的JAI和JAI ImageIO库默认是Java实现,若将其换为原生库可显著提高图像处理速度。注意,在windows下只有32位Java环境才可用,64位Java环境不可用原生库。下载和拷贝原生库文件的操作参考以下代码:

cd /tmp
wget http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib-linux-amd64.tar.gz
wget http://download.java.net/media/jai-imageio/builds/release/1.1/jai_imageio-1_1-lib-linux-amd64.tar.gz
gunzip -c jai-1_1_3-lib-linux-amd64.tar.gz | tar xf - && \
    gunzip -c jai_imageio-1_1-lib-linux-amd64.tar.gz | tar xf - && \
    mv /tmp/jai-1_1_3/lib/*.jar $JAVA_HOME/jre/lib/ext/ && \
    mv /tmp/jai-1_1_3/lib/*.so $JAVA_HOME/jre/lib/amd64/ && \
    mv /tmp/jai_imageio-1_1/lib/*.jar $JAVA_HOME/jre/lib/ext/ && \
    mv /tmp/jai_imageio-1_1/lib/*.so $JAVA_HOME/jre/lib/amd64/

经过上述操作后,重启GeoServer,查看Server Status状态页中的native JAInative JAI ImageIO两项是否为true,若显示为true说明原生库优化成功。

GeoServer服务配置


禁用多余服务

GeoServer中的每个服务(WMS,WFS,WCS和其他)都消耗服务器内存等资源。由于本系统平台只应用了其中的WMS服务,因此需要将GeoServer中其他服务(Services部分的WFS,WCS和WPS等)屏蔽来节省服务器资源。在Services中点击服务名称进入服务设置页面,确认去掉Enable的对勾,即完成对GeoServer的配置。
注意,在禁用WCS服务时,需要将Resource Consumption Limits的两个-1改为0才能提交。

WMS服务配置

WMS地图服务是楼盘大数据系统使用的地图服务,需对其进行以下配置:
在WMS配置页面中寻找资源消耗限制部分(Resource consumption limits),可按照下表的参考值进行配置。

参数 参考值 备注
Max rendering memory(KB) 20480 最大渲染内存,20480可满足大部分客户端全屏地图需求。具体数据可根据表后公式计算
Max rendering time(s) 60 最大渲染响应时间,避免某渲染请求响应时间过长带来的资源占用
Max rendering errors(count) 1000 最大渲染错误计数

其中,最大渲染内存MM(KB)的计算公式为,

M=\frac{ Width \times Height \times 4}{1024}M=1024Width×Height×4

其中,WidthWidthHeightHeight分别是客户端屏幕尺寸的宽和高,4表示支持透明渲染,1024表示单位为KB。如支持客户端最大1080p的显示渲染内存为8100KB= \frac {1920 \times 1080 \times 4}{1024}8100KB=10241920×1080×4,4K分辨率的渲染内存为32400KB= \frac {3840 \times 2160 \times 4}{1024}32400KB=10243840×2160×4

GWC配置

GWC是GeoWebCache的简称,是GeoServer内嵌的地图缓存服务器。在实际的生产环境中,地图缓存服务器应当是独立部署的结点,这样的优势是可以避免集群结点开启缓存配额后的文件锁冲突;另一方面,缓存切片及耗费CPU内存等资源,配置独立的地图缓存服务器可减少切片请求对地图服务器资源的占用。

GWC地图缓存配额

若集群结点均使用内嵌的GWC,会发生文件锁冲突问题。较简单的solution是禁用缓存配额。在GeoServer管理界面中,查找左侧面板Tile Caching部分,点击Disk Quota进入缓存配额管理界面,去掉Enable前对勾。

GWC缓存图层建立

在Tile Caching部分,点击TIle layers进入切片缓存界面,点击某图层一行的Seed/Truncate,进入GWC切图界面,一般按默认设置点击提交即可。

参考


GeoServer 配置调优(官网文档)



找了个比较全的操作方法:

【J2EE性能分析篇】JVM参数对J2EE性能优化的影响

http://www.cnblogs.com/zhishan/p/3316170.html


  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Linux上配置GeoServer环境,您可以按照以下步骤操作: 1. 下载和安装Java Development Kit (JDK):GeoServer是基于Java开发的,所以首先需要安装JDK。您可以从Oracle官方网站或OpenJDK项目下载适合您系统的JDK版本。 2. 设置JAVA_HOME环境变量:在安装完JDK后,需要设置JAVA_HOME环境变量。打开终端,并编辑 ~/.bashrc 文件(如果使用的是bash shell)或者 ~/.zshrc 文件(如果使用的是zsh shell),添加以下行: ``` export JAVA_HOME=/path/to/your/jdk export PATH=$JAVA_HOME/bin:$PATH ``` 将 "/path/to/your/jdk" 替换为您实际的JDK路径。 3. 下载和解压GeoServer:在GeoServer官方网站(https://geoserver.org/)上下载最新稳定版的GeoServer。下载完成后,将压缩包解压到您选择的目录。 4. 启动GeoServer:进入解压后的GeoServer目录,执行以下命令启动GeoServer: ``` ./bin/startup.sh ``` 这将启动GeoServer服务,默认监听在8080端口。您可以在浏览器中访问 http://localhost:8080/geoserver 查看GeoServer管理界面。 5. 配置GeoServer:在管理界面中,使用默认的管理员账户(用户名:admin,密码:geoserver)登录。首次登录时,您将被要求更改管理员密码。完成后,您可以配置数据存储、发布地图服务等。 这些是在Linux上配置GeoServer环境的基本步骤。根据您的需求和系统配置,可能还需要进行其他配置和调整。请参考GeoServer官方文档以获取更详细的指导和帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值