優化GeoServer的運行------GeoServer研究隨筆二

  GeoServer運行優化可以在幾個層次展開,1、硬件、操作系統層次;2、java運行環境層次;3、應用服務器層次;4、空間數據組織管理層次。

 

  硬件當然是內存越多越好,CPU運行效率越高、CPU數量越多越好。java程序一般是比較消耗內存的,GeoServer管理大量空間和屬性數據更增加了內存的使用量。但是內存使用也有限制,windows程序的4G進程空間內存分配是操作系統佔用2G,應用程序2G;linux程序的分配是操作系統1G,應用程序3G,所以,一般linux上Java程序的堆棧最大值可以比Windows大。CPU數量多則可以充分發揮Java多線程運行的優勢,CPU運行效率高則計算速度快,對於GIS需要大量的空間運算來說,能顯著提高用戶的響應。如果使用WMS服務即時獲取圖片,性能優異的顯卡能很好的提高地圖的渲染速度。

 

  Java運行環境,則可以參考GeoServer文檔,http://docs.geoserver.org/1.7.4/user/production/container.html#optimize-your-jvm ,配置Java虛擬機,-server按服務器模式運行,預編譯字節碼和優化字節碼; -Xmx1024M -Xms48m,設置最小、最大堆棧,建議物理內存允許的條件下,設置儘可能大的堆棧; -XX:SoftRefLRUPolicyMSPerMB=36000,儘量延緩軟引用緩存對象被垃圾回收; -XX:MaxPermSize=128m,增加Java類自身數據描述對象的存儲空間,因GeoServer涉及到的類相對多,加之存身的容器(Tomcat等)也有很多其他類; -XX:XX:+UseParallelGC,開啓並行垃圾回收。

 

  應用服務器層次的優化,涉及如下方面:GeoServer所在的容器、GeoServer的服務策略設置、可以使用的緩存以及日誌輸出等方面。Tomcat、Jetty等分別有不同的優化方案,可以參閱相關文檔;服務策略設置可以是:SPEED BUFFER File PARTIAL-BUFFER,可以在web.xml中設置,SPEED是最快的策略;可以使用的緩存則包括GeoWebCache、TileCache等,可以參閱相關文檔,獲得詳細的配置和集成說明;日誌則輸出越多,服務響應就越慢。

 

  GeoServer使用GeoTools工具包實現相關WMS、WFS等服務,GeoTools則使用JTS作爲其空間對象模型,空間數據的內存緩存以及空間索引的使用則可以顯著的提高服務的性能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章