SlideShare a Scribd company logo
GeoServer
성능향상을 위한
튜닝 기법
그리다㈜ 장병진
1. Understanding
Cache Logic
2011-10-28GeoServer 성능향상을 위한 튜닝기법 2
Web Cache Logic
• Text
o Text
Web Browser
GIS Server
URI 요청
Browser Cache 확인
있는가?
유효기간?
Browser Cache Hit!
End
헤더에 If-Modified-Since:
LastModifiedTime 붙여 요청
컨텐츠 요청
304 not modified
새 버전이 있는가?
컨텐츠 생산
(GeoServer)
서버캐시에 있는가?
200 OK + 컨텐츠 전송
컨텐츠 사용
No
Yes
Remain
Expire
No
Yes
0.1 ms
10 ms 50 ms
No
Yes
500 ms
2011-10-28GeoServer 성능향상을 위한 튜닝기법 3
Browser Cache vs Server
Cache
2011-10-28GeoServer 성능향상을 위한 튜닝기법 4
Client A
App Server
Server
Cache
Content
s
Builder
Browse
Cache
Client B
Browse
Cache
①RequestContents
②Check cache
and ask the
Production
③Storage Contents
⑧Check cache
and reuse
⑥Check
browser cache
and reuse
⑤Request
Same Contents
⑦RequestContents
Server Cache
• On server
machine
• Can share with
others
Browser Cache
• On each client
machine
• Can not share
with others
2. Using Browser Cache
2011-10-28GeoServer 성능향상을 위한 튜닝기법 5
Response Cache Header 설정
1. GeoServer Admin 화면 접속
2. 왼쪽 Data 항목 중 Layers
선택
3. WorldCountries Layer 선택
4. Publishing 탭 선택
5. Edit Layer 아래 Response
Cache Headers 체크
6. Cache Time에 초단위로 컨
텐츠 유효기간 604800 (7일)
입력. 60초 * 60분 *24시간 *
7일 = 604800
7. [Save] 눌러 완료
2011-10-28GeoServer 성능향상을 위한 튜닝기법 6
Browser Cache Hit Test
1. GeoServer Admin 화면 접속
2. 왼쪽 Data 항목 중 Layer Preview 선
택
3. demo:WorldCountries Layer의
OpenLayers 선택
4. 지도창이 뜨면 Http 헤더 분석도구로
Response 확인 (Chrome [F12], FireFox
FireBug, IE HttpWatch)
5. Response Header 부분에 Expires,
Cache-Control: max-age=604800 값
이 추가되었음을 확인
6. 휠로 줌 인, 줌 아웃 반복  별로 빨라
지지 않은 것 같다 ㅠㅠ
7. 지도 우상단의 옵션버튼 클릭
8. Tiling에서 Tiled 선택
9. 휠로 줌 인, 줌 아웃 반복  이번엔 확
실히 빨라진 것이 보인다.
2011-10-28GeoServer 성능향상을 위한 튜닝기법 7
Cache가 되려면 Tiled로
호출하여야만 한다!
How to divide tiles?
2011-10-28GeoServer 성능향상을 위한 튜닝기법 8
http://wiki.osgeo.org/wiki/WMS_Tiling_Client_Recommendation
L0:0_0/00_00 L0:0_0/01_00
L1:0_0/00_01 L1:0_0/01_01
L1:0_0/00_00 L1:0_0/01_00
L2:0_0/00_
01
L2:0_0/01_
01
L2:0_0/00_
00
L2:0_0/01_
00
L2:0_0/02_
01
L2:0_0/03_
01
L2:0_0/02_
00
L2:0_0/03_
00
3. Using Server Cache
2011-10-28GeoServer 성능향상을 위한 튜닝기법 9
Two similar Arcitecture
2011-10-28GeoServer 성능향상을 위한 튜닝기법 10
Using
GeoWebCache
(Tile Cache)
Using
Squid
(Web Cache)
http://opengeo.org/publications/geoserver-production/
GWC vs Squid
구분 GeoWebCache Squid-cache
캐시
가능범위
• WMS Tile Client
Recommendation를 따르는 요청
(WMS-C, TMS, WMTS)
• http, https, ftp 등 모든 웹표준 요
청
장점
• GeoServer에 통합되어 있어 사용
하기 편함
• SEED 기능으로 캐시를 미리 만들
어 놓을 수 있음
• 비표준 좌표계도 쉽게 캐시
• WAS와 분리된 별도 프로그램이므
로 부하 많아져도 GeoServer에 영
향 적음
단점
• EPSG:4326, EPSG:900913외의 좌
표계 지원 힘듦
• 요청이 많아지면 GeoServer 전체
서비스에 영향
• 설치가 복잡
• LastModifyTime을 위한 web.xml
변경 필요
• 타일단위 요청이 아닌 경우도 캐시
되 버림
• 캐시를 미리 만들려면 요청 스크립
트를 만들어야 함
2011-10-28GeoServer 성능향상을 위한 튜닝기법 11
GeoWebCache Setting
• 기본적으로 GeoServer와 함께 설
치되어 많이 손 델 필요 없음
• GeoServer관리자 화면의
GeoWebCache 메뉴를 눌러 설정
가능
• Enable direct WMS integration
옵션을 켜면 기본 WMS 요청도
GWC를 탄다고 되어 있으나 정상
동작되는 것을 확인 못함
• GeoServer 2.1.2 버전에서는 인터
페이스와 지원 포맷, 레이어별 설
정 등을 할 수 있는 UI가 추가되어
사용이 더욱 편리해짐
2011-10-28GeoServer 성능향상을 위한 튜닝기법 12
Layer Seeding
• 서비스 할 레이어의 캐시를 미리
생산해 놓는 기능
• GeoServer관리자 화면의
GeoWebCache 화면에서 Go to
the GWC Demos Page를 눌러 갈
수 있음
• 생성시 서비스할 좌표계와 Format
에 일치하도록 캐시를 생산해야
함(좌표계는 WGS84경위도와 구
글좌표계만 지원)
• 전 데이터 범위에 대한 캐시생산
도 가능하고 일부에 대한 생산도
가능
• 전세계 데이터는 상위 몇 레벨만
캐시 생산하고 한반도만 바닥 레
벨까지 생산하는 등도 가능
2011-10-28GeoServer 성능향상을 위한 튜닝기법 13
Using GWC Service
• 일반 WMS 인터페이스가 아닌 GWC 인터페이스를 호
출해야 동작
• 일반 WMS인터페이스가
‘http://localhost:8080/geoserver/wms’라면 GWC 인
터페이스는
‘http://localhost:8080/geoserver/gwc/service/wms’
임
• GWC를 통해 서비스된 컨텐츠의 Response Header에
는
• geowebcache-tile-index 라는 헤더가 추가됨
• WMS Tile Client Recommendation 규약을 따르지 않는
요청은 캐시 안됨
• 때문에 OpenLayers에서 WMS 레이어 설정시 레이어의
범위와 타일크기를 정확히 지정해 주어야 함
2011-10-28GeoServer 성능향상을 위한 튜닝기법 14
var maxExtent = new OpenLayers.Bounds(-20037508, -20037508, 20037508,
20037508),
restrictedExtent = maxExtent.clone(),
maxResolution = 156543.0339;
var options = {
projection: new OpenLayers.Projection("EPSG:900913"),
displayProjection: new OpenLayers.Projection("EPSG:4326"),
units: "m",
numZoomLevels: 18,
maxResolution: maxResolution,
maxExtent: maxExtent,
restrictedExtent: restrictedExtent
};
map = new OpenLayers.Map('map', options);
Install Squid
• http://wiki.squid-cache.org/SquidFaq/BinaryPackages 에 각 OS 별 다운로
드 링크가 있음
• 윈도우 버전의 경우 다운받은 압축파일을 C:에 풀어서 C:squid 폴더가 생기
게 한다.(다른 폴더로 만들 경우 바꿔야 할 설정이 많음)
• Squidetc*.default 파일들을 모두 .default 확장자 제거
• Squid.conf 파일을 편집기로 오픈
• 약 1100행에 있는 http_port 항목을 서비스 할 포트로 변경하며 서비스에 필요
한 설정 추가
http_port 118.216.255.99:8090 accel defaultsite=demo.grida.kr
cache_peer 127.0.0.1 parent 8080 0 no-query originserver name=myAccel
acl demo.grida.kr dstdomain demo.grida.kr
http_access allow demo.grida.kr
cache_peer_access myAccel allow demo.grida.kr
cache_peer_access myAccel deny all
• Cached Data Storage 생성
C:squidsbinsquid –z (C:squidvarcache 폴더가 생성됨)
• Windows Service 등록
C:squidsbinsquid –I
2011-10-28GeoServer 성능향상을 위한 튜닝기법 15
Add WAS filter for Squid
• GeoServer는 기본적으로 Contents의 Response Header에 ‘LastModifiedTime’을 넣어주
지 않는다.
• Squid는 캐시된 자료의 유효성을 확인하기 위해 LastModifiedTime이 꼭 있어야 한다.
• 때문에 WAS의 filter를 이용해 ‘LastModifiedTime’ 추가해 주어야 한다.
• Filter module Download : http://flavio.tordini.org/download/httpheaders-0.0.0.zip
• 압축파일에서 httpheaders/build/jar/httpheaders/httpheaders-0.0.0.jar 파일 압축해제
• GeoServer의 WEB-INFlib 폴더(예: C:Program FilesGeoServer
2.1.1webappsgeoserverWEB-INFlib)에 jar 파일 복사
• WEB-INFweb.xml 파일 편집기로 열어 다음 내용 추가
<filter>
<filter-name>httpHeaders</filter-name>
<filter-class>
org.ft.servlet.filters.httpheaders.HTTPHeadersFilter
</filter-class>
<init-param>
<param-name>Last-Modified</param-name>
<param-value>${now}</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>httpHeaders</filter-name>
<url-pattern>/wms</url-pattern>
</filter-mapping>
2011-10-28GeoServer 성능향상을 위한 튜닝기법 16
Using Squid Service
• 기존 GeoServer 서비스 인터페이
스의 포트만 Squid가 사용하고 있
는 포트로 변경하여 요청하면 끝
• localhost:8080/geoserver/wms
 localhost:8090/geoserver/wms
2011-10-28GeoServer 성능향상을 위한 튜닝기법 17
4. The Best Data Setting
2011-10-28GeoServer 성능향상을 위한 튜닝기법 18
http://download.osgeo.org/osgeo/foss4g/2009/SPREP/1Wed/Parkside%20GO3/1500/MakingMapsFast.pdf
Vector Data
• 서비스할 좌표계로 소스데이터 미리 변환하라!
o GeoServer는 실시간 좌표계 변환도 잘 지원한다.
o 하지만 실시간 변환은 느릴 수 밖에 없다.
• 스타일을 이용하여 적당한 정보만 표출되게 제어하라!
o 스타일 정보를 조정하여 스케일에 따라 적정한 레이어만 보이게 한다.
o 같은 레이어도 스케일에 따라 적절한 심벌이 부여되게 한다.
• 피처를 다듬어라!
o 피처를 정규화(Simplofiy)하여 불필요한 점을 없엔다.
o 각 스케일에 맞게 정규화된 어러 레이어를 사용하면 효과적이다.
o 지나치게 넓은 범위의 MBR을 가지는 피처는 적절히 분리한다.
• 느린 스타일의 사용을 최소화하라!
o 투명도(Transparecy)의 사용은 기본적으로 2배 이상의 랜더링 시간이 걸린다.
o 라벨을 뿌리는 것은 비싼 비용을 각오해야 한다.
o 라벨에 테두리(Halo)를 주는 것은 더 비산 비용이 필요하다.
2011-10-28GeoServer 성능향상을 위한 튜닝기법 19
Raster Data
• JPEG나 ArcGRID의 사용을 자제하라!
o 이런 포맷들은 디코딩에 많은 비용이 든다.
o 가능한 한 인코딩 되지 않은 GeoTiff를 사용하라.
o ECW나 JPEG2000와 같은 진보된 웨이블릿 포맷도 바람직하다.
• 다단계 타일링 된 GeoTiff를 사용하라!
o GDAL 툴인 gdaladdo 명령을 이용하면 다단계 타일링된 GeoTiff를 만들 수 있다.
o Ex) gdaladdo -r average mytiff.tif 2 4 8 16
• 가능한 한, 영상을 합쳐라!
o 여러 장의 영상을 여러 레이어로 서비스 하는 것이 가장 느리다.
o 여러 장의 영상을 레이어 그룹으로 묶어 서비스 하면 조금(아주조금) 빨라진다.
o 한 개의 영상으로 합처 서비스 하면 많이 빨라진다.
o 하지만 약 4GB 이상의 영상은 보통 GeoServer에 올릴 수 없기에 나눌 수 밖에
없다.
2011-10-28GeoServer 성능향상을 위한 튜닝기법 20
Output Format Selection
• 벡터 레이어
o png로 요청하는 것이 일반적으로 좋다. 빠르며 크지않고 투명처리가 된다.
o png8로 요청시 크기는 더 작아지지만 약간 느리고 색이 이상해질 수 있다.
o Gif는 png8과 유사하지만, 브라우저에 따라 투명처리가 안되는 경우가 있다.
o Jpeg는 느리고 투명처리 안되기에 비권장이다.
• 위성영상/항공사진
o Jpeg가 용량이 작아 일반적으로 좋다.
o Jpeg가 인코딩이 느린 것은 캐시로 해결 가능하다.
o Null value 부분을 투명처리 하려면 PNG로 요청할 수 밖에 없다.
• 안티알리어싱 비활성화
o 빠른 속도를 원한다면 요청시 “format option”에서 안티알리어싱을 끌 수 있다.
o &format_options=antialias:none
• “Web safe” palette 이용
o 이 옵션은 png8과 gif 포멧 이용시만 유효하다.
o &palette:safe
2011-10-28GeoServer 성능향상을 위한 튜닝기법 21
5. The Best Server Setting
2011-10-28GeoServer 성능향상을 위한 튜닝기법 22
JVM setting
• Java 6를 사용
• JVM Setting
o 256MB 이상의 메모리: -Xmx256m -Xms48m
o 캐시가 오래 남게 설정: -XX:SoftRefLRUPolicyMSPerMB=36000
o 영구 객체가 사용할 메모리 확보: -XX:MaxPermSize=128m
o 병렬 가베지 콜렉션: -XX:+UseParallelGC
2011-10-28GeoServer 성능향상을 위한 튜닝기법 23
GeoServer Setting
• Logging 정책 변경
o 관리 UI의 global Setting에서 조정할 수 있다.
o DEFAULT, VERBOSE, PRODUCTION,
GEOTOOLS_DEVELOPER,
GEOSERVER_DEVELOPER로 정책 변경 가능하
다.
o PRODUCTION이 가장 적은 정보를 기록하므로
빠르다.
• Service Strategy 변경
o GeoServer의 web.xml 파일에서 조정 가능하다.
o SPEED는 스트리밍만으로 결과를 보내 빠르지
만 안정성 떨어진다.
o BUFFER는 모든 결과를 메모리에 만든후 서비
스 한다.
o FILE은 모든 결과를 파일로 만든 후 서비스 한
다.
o PARTIAL-BUFFER는 BUFFER과 SPEED를 결
합한 형태로 빠르고 어느정도 안정성도 있다.
2011-10-28GeoServer 성능향상을 위한 튜닝기법 24
Q&A
2011-10-28GeoServer 성능향상을 위한 튜닝기법 25

More Related Content

What's hot

공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
 공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습 공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
HaNJiN Lee
 
PostGIS 시작하기
PostGIS 시작하기PostGIS 시작하기
PostGIS 시작하기
Byeong-Hyeok Yu
 
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례BJ Jang
 
LX 공간정보아카데미 PostGIS 강의자료
LX 공간정보아카데미 PostGIS 강의자료LX 공간정보아카데미 PostGIS 강의자료
LX 공간정보아카데미 PostGIS 강의자료
JungHwan Yun
 
오픈소스GIS를 활용한 서버기반 공간분석과 시각화
오픈소스GIS를 활용한 서버기반 공간분석과 시각화오픈소스GIS를 활용한 서버기반 공간분석과 시각화
오픈소스GIS를 활용한 서버기반 공간분석과 시각화
MinPa Lee
 
QGIS 활용
QGIS 활용QGIS 활용
QGIS 활용
Sungjin Kang
 
[FOSS4G Korea 2021]Workshop-QGIS-TIPS-20211028
[FOSS4G Korea 2021]Workshop-QGIS-TIPS-20211028[FOSS4G Korea 2021]Workshop-QGIS-TIPS-20211028
[FOSS4G Korea 2021]Workshop-QGIS-TIPS-20211028
MinPa Lee
 
State of OpenGXT: 오픈소스 공간분석엔진
State of OpenGXT: 오픈소스 공간분석엔진State of OpenGXT: 오픈소스 공간분석엔진
State of OpenGXT: 오픈소스 공간분석엔진
MinPa Lee
 
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현
MinPa Lee
 
지리정보체계(GIS) - [1] GIS 데이터 유형, 구조 알기
지리정보체계(GIS) - [1] GIS 데이터 유형, 구조 알기지리정보체계(GIS) - [1] GIS 데이터 유형, 구조 알기
지리정보체계(GIS) - [1] GIS 데이터 유형, 구조 알기
Byeong-Hyeok Yu
 
공간정보거점대학 PostGIS 고급과정
공간정보거점대학 PostGIS 고급과정공간정보거점대학 PostGIS 고급과정
공간정보거점대학 PostGIS 고급과정
JungHwan Yun
 
공간정보연구원 PostGIS 강의교재
공간정보연구원 PostGIS 강의교재공간정보연구원 PostGIS 강의교재
공간정보연구원 PostGIS 강의교재
JungHwan Yun
 
QGIS 고급 및 PyQGIS - 김기웅, 임영현
QGIS 고급 및 PyQGIS - 김기웅, 임영현 QGIS 고급 및 PyQGIS - 김기웅, 임영현
QGIS 고급 및 PyQGIS - 김기웅, 임영현
SANGHEE SHIN
 
PostGIS - National Education Center for GIS: Open Source GIS
PostGIS - National Education Center for GIS: Open Source GIS PostGIS - National Education Center for GIS: Open Source GIS
PostGIS - National Education Center for GIS: Open Source GIS
MinPa Lee
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료
BJ Jang
 
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기
MinPa Lee
 
[공간정보연구원] 1일차 - 오픈소스GIS 개요
[공간정보연구원] 1일차 - 오픈소스GIS 개요[공간정보연구원] 1일차 - 오픈소스GIS 개요
[공간정보연구원] 1일차 - 오픈소스GIS 개요
slhead1
 
[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례
[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례
[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례
BJ Jang
 
웹 접근성 평가도구 OpenWAX 뜯어보기
웹 접근성 평가도구 OpenWAX 뜯어보기웹 접근성 평가도구 OpenWAX 뜯어보기
웹 접근성 평가도구 OpenWAX 뜯어보기
Goonoo Kim
 
지리정보체계(GIS) - [2] 좌표계 이해하기
지리정보체계(GIS) - [2] 좌표계 이해하기지리정보체계(GIS) - [2] 좌표계 이해하기
지리정보체계(GIS) - [2] 좌표계 이해하기
Byeong-Hyeok Yu
 

What's hot (20)

공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
 공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습 공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
 
PostGIS 시작하기
PostGIS 시작하기PostGIS 시작하기
PostGIS 시작하기
 
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
 
LX 공간정보아카데미 PostGIS 강의자료
LX 공간정보아카데미 PostGIS 강의자료LX 공간정보아카데미 PostGIS 강의자료
LX 공간정보아카데미 PostGIS 강의자료
 
오픈소스GIS를 활용한 서버기반 공간분석과 시각화
오픈소스GIS를 활용한 서버기반 공간분석과 시각화오픈소스GIS를 활용한 서버기반 공간분석과 시각화
오픈소스GIS를 활용한 서버기반 공간분석과 시각화
 
QGIS 활용
QGIS 활용QGIS 활용
QGIS 활용
 
[FOSS4G Korea 2021]Workshop-QGIS-TIPS-20211028
[FOSS4G Korea 2021]Workshop-QGIS-TIPS-20211028[FOSS4G Korea 2021]Workshop-QGIS-TIPS-20211028
[FOSS4G Korea 2021]Workshop-QGIS-TIPS-20211028
 
State of OpenGXT: 오픈소스 공간분석엔진
State of OpenGXT: 오픈소스 공간분석엔진State of OpenGXT: 오픈소스 공간분석엔진
State of OpenGXT: 오픈소스 공간분석엔진
 
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현
 
지리정보체계(GIS) - [1] GIS 데이터 유형, 구조 알기
지리정보체계(GIS) - [1] GIS 데이터 유형, 구조 알기지리정보체계(GIS) - [1] GIS 데이터 유형, 구조 알기
지리정보체계(GIS) - [1] GIS 데이터 유형, 구조 알기
 
공간정보거점대학 PostGIS 고급과정
공간정보거점대학 PostGIS 고급과정공간정보거점대학 PostGIS 고급과정
공간정보거점대학 PostGIS 고급과정
 
공간정보연구원 PostGIS 강의교재
공간정보연구원 PostGIS 강의교재공간정보연구원 PostGIS 강의교재
공간정보연구원 PostGIS 강의교재
 
QGIS 고급 및 PyQGIS - 김기웅, 임영현
QGIS 고급 및 PyQGIS - 김기웅, 임영현 QGIS 고급 및 PyQGIS - 김기웅, 임영현
QGIS 고급 및 PyQGIS - 김기웅, 임영현
 
PostGIS - National Education Center for GIS: Open Source GIS
PostGIS - National Education Center for GIS: Open Source GIS PostGIS - National Education Center for GIS: Open Source GIS
PostGIS - National Education Center for GIS: Open Source GIS
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료
 
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기
 
[공간정보연구원] 1일차 - 오픈소스GIS 개요
[공간정보연구원] 1일차 - 오픈소스GIS 개요[공간정보연구원] 1일차 - 오픈소스GIS 개요
[공간정보연구원] 1일차 - 오픈소스GIS 개요
 
[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례
[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례
[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례
 
웹 접근성 평가도구 OpenWAX 뜯어보기
웹 접근성 평가도구 OpenWAX 뜯어보기웹 접근성 평가도구 OpenWAX 뜯어보기
웹 접근성 평가도구 OpenWAX 뜯어보기
 
지리정보체계(GIS) - [2] 좌표계 이해하기
지리정보체계(GIS) - [2] 좌표계 이해하기지리정보체계(GIS) - [2] 좌표계 이해하기
지리정보체계(GIS) - [2] 좌표계 이해하기
 

Viewers also liked

Java 기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버의 개발
Java  기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버의 개발Java  기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버의 개발
Java 기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버의 개발HaNJiN Lee
 
오픈소스 GIS와 OSGeo
오픈소스 GIS와 OSGeo 오픈소스 GIS와 OSGeo
오픈소스 GIS와 OSGeo
SANGHEE SHIN
 
Air cargo indutry week 4
Air cargo indutry  week 4 Air cargo indutry  week 4
Air cargo indutry week 4
CATC-ACM
 
Global logistics
Global logisticsGlobal logistics
Global logisticsManu Singh
 
오픈 소스 GIS와 OSGeo
오픈 소스 GIS와 OSGeo오픈 소스 GIS와 OSGeo
오픈 소스 GIS와 OSGeo
SANGHEE SHIN
 
1.develop environment
1.develop environment1.develop environment
1.develop environment
이경주 이경주
 
Info gdal 20150915
Info gdal 20150915Info gdal 20150915
Info gdal 20150915
GeoMedeelel
 
PostGIS 2.0 한국어 사용자 설명서
PostGIS 2.0 한국어 사용자 설명서PostGIS 2.0 한국어 사용자 설명서
PostGIS 2.0 한국어 사용자 설명서
SANGHEE SHIN
 
QGIS 1.7.x 한국어 사용자 지침서
QGIS 1.7.x 한국어 사용자 지침서 QGIS 1.7.x 한국어 사용자 지침서
QGIS 1.7.x 한국어 사용자 지침서
SANGHEE SHIN
 
Software Warehouse Management System ( WMS ) Indonesia Terbaik
Software Warehouse Management System ( WMS ) Indonesia TerbaikSoftware Warehouse Management System ( WMS ) Indonesia Terbaik
Software Warehouse Management System ( WMS ) Indonesia Terbaik
ERP System Indonesia
 
Warehouse Management System on Mobile Device - Integrated ERP
Warehouse Management System on Mobile Device - Integrated ERPWarehouse Management System on Mobile Device - Integrated ERP
Warehouse Management System on Mobile Device - Integrated ERP
Anirban Bhaumik
 
Optimizing Your Supply Chain for eCommerce Fulfillment: How to Set Up Your Wa...
Optimizing Your Supply Chain for eCommerce Fulfillment: How to Set Up Your Wa...Optimizing Your Supply Chain for eCommerce Fulfillment: How to Set Up Your Wa...
Optimizing Your Supply Chain for eCommerce Fulfillment: How to Set Up Your Wa...
HighJump
 
Warehouse Management System
Warehouse Management SystemWarehouse Management System
Warehouse Management SystemRRChandran
 

Viewers also liked (14)

Java 기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버의 개발
Java  기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버의 개발Java  기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버의 개발
Java 기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버의 개발
 
오픈소스 GIS와 OSGeo
오픈소스 GIS와 OSGeo 오픈소스 GIS와 OSGeo
오픈소스 GIS와 OSGeo
 
Air cargo indutry week 4
Air cargo indutry  week 4 Air cargo indutry  week 4
Air cargo indutry week 4
 
Global logistics
Global logisticsGlobal logistics
Global logistics
 
오픈 소스 GIS와 OSGeo
오픈 소스 GIS와 OSGeo오픈 소스 GIS와 OSGeo
오픈 소스 GIS와 OSGeo
 
1.develop environment
1.develop environment1.develop environment
1.develop environment
 
Info gdal 20150915
Info gdal 20150915Info gdal 20150915
Info gdal 20150915
 
PostGIS 2.0 한국어 사용자 설명서
PostGIS 2.0 한국어 사용자 설명서PostGIS 2.0 한국어 사용자 설명서
PostGIS 2.0 한국어 사용자 설명서
 
QGIS 1.7.x 한국어 사용자 지침서
QGIS 1.7.x 한국어 사용자 지침서 QGIS 1.7.x 한국어 사용자 지침서
QGIS 1.7.x 한국어 사용자 지침서
 
Software Warehouse Management System ( WMS ) Indonesia Terbaik
Software Warehouse Management System ( WMS ) Indonesia TerbaikSoftware Warehouse Management System ( WMS ) Indonesia Terbaik
Software Warehouse Management System ( WMS ) Indonesia Terbaik
 
WMS Overview
WMS OverviewWMS Overview
WMS Overview
 
Warehouse Management System on Mobile Device - Integrated ERP
Warehouse Management System on Mobile Device - Integrated ERPWarehouse Management System on Mobile Device - Integrated ERP
Warehouse Management System on Mobile Device - Integrated ERP
 
Optimizing Your Supply Chain for eCommerce Fulfillment: How to Set Up Your Wa...
Optimizing Your Supply Chain for eCommerce Fulfillment: How to Set Up Your Wa...Optimizing Your Supply Chain for eCommerce Fulfillment: How to Set Up Your Wa...
Optimizing Your Supply Chain for eCommerce Fulfillment: How to Set Up Your Wa...
 
Warehouse Management System
Warehouse Management SystemWarehouse Management System
Warehouse Management System
 

Similar to Geo server 성능향상을 위한 튜닝 기법 20111028

Alluxio: Data Orchestration on Multi-Cloud
Alluxio: Data Orchestration on Multi-CloudAlluxio: Data Orchestration on Multi-Cloud
Alluxio: Data Orchestration on Multi-Cloud
Jinwook Chung
 
WebKit at the Future Web Forum 2010
WebKit at the Future Web Forum 2010WebKit at the Future Web Forum 2010
WebKit at the Future Web Forum 2010Joone Hur
 
머신러닝 도우미, Amazon SageMaker 따라하기: SageMaker 국내 적용 사례
머신러닝 도우미, Amazon SageMaker 따라하기: SageMaker 국내 적용 사례머신러닝 도우미, Amazon SageMaker 따라하기: SageMaker 국내 적용 사례
머신러닝 도우미, Amazon SageMaker 따라하기: SageMaker 국내 적용 사례
BESPIN GLOBAL
 
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
Opennaru, inc.
 
Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구
ByungJoon Lee
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
Gruter
 
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
Jaikwang Lee
 
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018Amazon Web Services Korea
 
현실적 PWA
현실적 PWA현실적 PWA
현실적 PWA
Jae Sung Park
 
What is the meteor?
What is the meteor?What is the meteor?
What is the meteor?
Peter YoungSik Yun
 
대용량 로그분석 Bigquery로 간단히 사용하기 20160930
대용량 로그분석 Bigquery로 간단히 사용하기 20160930대용량 로그분석 Bigquery로 간단히 사용하기 20160930
대용량 로그분석 Bigquery로 간단히 사용하기 20160930
Jaikwang Lee
 
Provisioning Dedicated Game Server on Kubernetes Cluster
Provisioning Dedicated Game Server on Kubernetes ClusterProvisioning Dedicated Game Server on Kubernetes Cluster
Provisioning Dedicated Game Server on Kubernetes Cluster
Jinwoong Kim
 
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
OpenStack Korea Community
 
portfolio-subtitle-convert-김남운
portfolio-subtitle-convert-김남운portfolio-subtitle-convert-김남운
portfolio-subtitle-convert-김남운
Namwun Kim
 
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
OpenStack Korea Community
 
실전! AWS 기반 데이터베이스 마이그레이션::최홍식::AWS Summit Seoul 2018
실전! AWS 기반 데이터베이스 마이그레이션::최홍식::AWS Summit Seoul 2018실전! AWS 기반 데이터베이스 마이그레이션::최홍식::AWS Summit Seoul 2018
실전! AWS 기반 데이터베이스 마이그레이션::최홍식::AWS Summit Seoul 2018Amazon Web Services Korea
 
웹소켓 (WebSocket)
웹소켓 (WebSocket)웹소켓 (WebSocket)
웹소켓 (WebSocket)
jeongseokoh
 
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
제관 이
 

Similar to Geo server 성능향상을 위한 튜닝 기법 20111028 (20)

Redis
RedisRedis
Redis
 
Alluxio: Data Orchestration on Multi-Cloud
Alluxio: Data Orchestration on Multi-CloudAlluxio: Data Orchestration on Multi-Cloud
Alluxio: Data Orchestration on Multi-Cloud
 
WebKit at the Future Web Forum 2010
WebKit at the Future Web Forum 2010WebKit at the Future Web Forum 2010
WebKit at the Future Web Forum 2010
 
머신러닝 도우미, Amazon SageMaker 따라하기: SageMaker 국내 적용 사례
머신러닝 도우미, Amazon SageMaker 따라하기: SageMaker 국내 적용 사례머신러닝 도우미, Amazon SageMaker 따라하기: SageMaker 국내 적용 사례
머신러닝 도우미, Amazon SageMaker 따라하기: SageMaker 국내 적용 사례
 
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
 
Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
 
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
 
Pp3 devweb
Pp3 devwebPp3 devweb
Pp3 devweb
 
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018
 
현실적 PWA
현실적 PWA현실적 PWA
현실적 PWA
 
What is the meteor?
What is the meteor?What is the meteor?
What is the meteor?
 
대용량 로그분석 Bigquery로 간단히 사용하기 20160930
대용량 로그분석 Bigquery로 간단히 사용하기 20160930대용량 로그분석 Bigquery로 간단히 사용하기 20160930
대용량 로그분석 Bigquery로 간단히 사용하기 20160930
 
Provisioning Dedicated Game Server on Kubernetes Cluster
Provisioning Dedicated Game Server on Kubernetes ClusterProvisioning Dedicated Game Server on Kubernetes Cluster
Provisioning Dedicated Game Server on Kubernetes Cluster
 
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
 
portfolio-subtitle-convert-김남운
portfolio-subtitle-convert-김남운portfolio-subtitle-convert-김남운
portfolio-subtitle-convert-김남운
 
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
 
실전! AWS 기반 데이터베이스 마이그레이션::최홍식::AWS Summit Seoul 2018
실전! AWS 기반 데이터베이스 마이그레이션::최홍식::AWS Summit Seoul 2018실전! AWS 기반 데이터베이스 마이그레이션::최홍식::AWS Summit Seoul 2018
실전! AWS 기반 데이터베이스 마이그레이션::최홍식::AWS Summit Seoul 2018
 
웹소켓 (WebSocket)
웹소켓 (WebSocket)웹소켓 (WebSocket)
웹소켓 (WebSocket)
 
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
 

More from BJ Jang

Mago3D Barcelona ICGC(카탈루니아 지형 및 지질연구소) 발표자료
Mago3D Barcelona ICGC(카탈루니아 지형 및 지질연구소) 발표자료Mago3D Barcelona ICGC(카탈루니아 지형 및 지질연구소) 발표자료
Mago3D Barcelona ICGC(카탈루니아 지형 및 지질연구소) 발표자료
BJ Jang
 
공간SQL을 이용한 공간자료분석 기초실습
공간SQL을 이용한 공간자료분석 기초실습공간SQL을 이용한 공간자료분석 기초실습
공간SQL을 이용한 공간자료분석 기초실습
BJ Jang
 
2017년 나의 계획
2017년 나의 계획2017년 나의 계획
2017년 나의 계획
BJ Jang
 
오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습
BJ Jang
 
[FOSS4G Korea 2016] GeoHash를 이용한 지형도 변화탐지와 시계열 관리
[FOSS4G Korea 2016] GeoHash를 이용한 지형도 변화탐지와 시계열 관리[FOSS4G Korea 2016] GeoHash를 이용한 지형도 변화탐지와 시계열 관리
[FOSS4G Korea 2016] GeoHash를 이용한 지형도 변화탐지와 시계열 관리
BJ Jang
 
QGIS 소개 및 ArcMap과의 비교
QGIS 소개 및 ArcMap과의 비교QGIS 소개 및 ArcMap과의 비교
QGIS 소개 및 ArcMap과의 비교
BJ Jang
 
PyQGIS 개발자 쿡북
PyQGIS 개발자 쿡북PyQGIS 개발자 쿡북
PyQGIS 개발자 쿡북
BJ Jang
 
Open Source based GIS devlopment cases by Gaia3D_20150417
Open Source based GIS devlopment cases by Gaia3D_20150417Open Source based GIS devlopment cases by Gaia3D_20150417
Open Source based GIS devlopment cases by Gaia3D_20150417
BJ Jang
 
Managing Multi-DBMS on a Single UI , a Web-based Spatial DB Manager-FOSS4G A...
Managing Multi-DBMS on a Single UI, a Web-based Spatial DB Manager-FOSS4G A...Managing Multi-DBMS on a Single UI, a Web-based Spatial DB Manager-FOSS4G A...
Managing Multi-DBMS on a Single UI , a Web-based Spatial DB Manager-FOSS4G A...
BJ Jang
 
올챙이 국제스타 만들기 20141023
올챙이 국제스타 만들기 20141023올챙이 국제스타 만들기 20141023
올챙이 국제스타 만들기 20141023
BJ Jang
 
Github를 이용한 협동개발 20141001
Github를 이용한 협동개발 20141001Github를 이용한 협동개발 20141001
Github를 이용한 협동개발 20141001
BJ Jang
 
Big size meteorological data processing and mobile displaying system using ...
Big size meteorological data processing and mobile displaying system using ...Big size meteorological data processing and mobile displaying system using ...
Big size meteorological data processing and mobile displaying system using ...
BJ Jang
 
[Foss4 g2013]the architecture of mobile traffic map service final
[Foss4 g2013]the architecture of mobile traffic map service final[Foss4 g2013]the architecture of mobile traffic map service final
[Foss4 g2013]the architecture of mobile traffic map service finalBJ Jang
 
Proj4를 이용한 좌표계 변환
Proj4를 이용한 좌표계 변환Proj4를 이용한 좌표계 변환
Proj4를 이용한 좌표계 변환BJ Jang
 

More from BJ Jang (14)

Mago3D Barcelona ICGC(카탈루니아 지형 및 지질연구소) 발표자료
Mago3D Barcelona ICGC(카탈루니아 지형 및 지질연구소) 발표자료Mago3D Barcelona ICGC(카탈루니아 지형 및 지질연구소) 발표자료
Mago3D Barcelona ICGC(카탈루니아 지형 및 지질연구소) 발표자료
 
공간SQL을 이용한 공간자료분석 기초실습
공간SQL을 이용한 공간자료분석 기초실습공간SQL을 이용한 공간자료분석 기초실습
공간SQL을 이용한 공간자료분석 기초실습
 
2017년 나의 계획
2017년 나의 계획2017년 나의 계획
2017년 나의 계획
 
오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습
 
[FOSS4G Korea 2016] GeoHash를 이용한 지형도 변화탐지와 시계열 관리
[FOSS4G Korea 2016] GeoHash를 이용한 지형도 변화탐지와 시계열 관리[FOSS4G Korea 2016] GeoHash를 이용한 지형도 변화탐지와 시계열 관리
[FOSS4G Korea 2016] GeoHash를 이용한 지형도 변화탐지와 시계열 관리
 
QGIS 소개 및 ArcMap과의 비교
QGIS 소개 및 ArcMap과의 비교QGIS 소개 및 ArcMap과의 비교
QGIS 소개 및 ArcMap과의 비교
 
PyQGIS 개발자 쿡북
PyQGIS 개발자 쿡북PyQGIS 개발자 쿡북
PyQGIS 개발자 쿡북
 
Open Source based GIS devlopment cases by Gaia3D_20150417
Open Source based GIS devlopment cases by Gaia3D_20150417Open Source based GIS devlopment cases by Gaia3D_20150417
Open Source based GIS devlopment cases by Gaia3D_20150417
 
Managing Multi-DBMS on a Single UI , a Web-based Spatial DB Manager-FOSS4G A...
Managing Multi-DBMS on a Single UI, a Web-based Spatial DB Manager-FOSS4G A...Managing Multi-DBMS on a Single UI, a Web-based Spatial DB Manager-FOSS4G A...
Managing Multi-DBMS on a Single UI , a Web-based Spatial DB Manager-FOSS4G A...
 
올챙이 국제스타 만들기 20141023
올챙이 국제스타 만들기 20141023올챙이 국제스타 만들기 20141023
올챙이 국제스타 만들기 20141023
 
Github를 이용한 협동개발 20141001
Github를 이용한 협동개발 20141001Github를 이용한 협동개발 20141001
Github를 이용한 협동개발 20141001
 
Big size meteorological data processing and mobile displaying system using ...
Big size meteorological data processing and mobile displaying system using ...Big size meteorological data processing and mobile displaying system using ...
Big size meteorological data processing and mobile displaying system using ...
 
[Foss4 g2013]the architecture of mobile traffic map service final
[Foss4 g2013]the architecture of mobile traffic map service final[Foss4 g2013]the architecture of mobile traffic map service final
[Foss4 g2013]the architecture of mobile traffic map service final
 
Proj4를 이용한 좌표계 변환
Proj4를 이용한 좌표계 변환Proj4를 이용한 좌표계 변환
Proj4를 이용한 좌표계 변환
 

Geo server 성능향상을 위한 튜닝 기법 20111028

  • 2. 1. Understanding Cache Logic 2011-10-28GeoServer 성능향상을 위한 튜닝기법 2
  • 3. Web Cache Logic • Text o Text Web Browser GIS Server URI 요청 Browser Cache 확인 있는가? 유효기간? Browser Cache Hit! End 헤더에 If-Modified-Since: LastModifiedTime 붙여 요청 컨텐츠 요청 304 not modified 새 버전이 있는가? 컨텐츠 생산 (GeoServer) 서버캐시에 있는가? 200 OK + 컨텐츠 전송 컨텐츠 사용 No Yes Remain Expire No Yes 0.1 ms 10 ms 50 ms No Yes 500 ms 2011-10-28GeoServer 성능향상을 위한 튜닝기법 3
  • 4. Browser Cache vs Server Cache 2011-10-28GeoServer 성능향상을 위한 튜닝기법 4 Client A App Server Server Cache Content s Builder Browse Cache Client B Browse Cache ①RequestContents ②Check cache and ask the Production ③Storage Contents ⑧Check cache and reuse ⑥Check browser cache and reuse ⑤Request Same Contents ⑦RequestContents Server Cache • On server machine • Can share with others Browser Cache • On each client machine • Can not share with others
  • 5. 2. Using Browser Cache 2011-10-28GeoServer 성능향상을 위한 튜닝기법 5
  • 6. Response Cache Header 설정 1. GeoServer Admin 화면 접속 2. 왼쪽 Data 항목 중 Layers 선택 3. WorldCountries Layer 선택 4. Publishing 탭 선택 5. Edit Layer 아래 Response Cache Headers 체크 6. Cache Time에 초단위로 컨 텐츠 유효기간 604800 (7일) 입력. 60초 * 60분 *24시간 * 7일 = 604800 7. [Save] 눌러 완료 2011-10-28GeoServer 성능향상을 위한 튜닝기법 6
  • 7. Browser Cache Hit Test 1. GeoServer Admin 화면 접속 2. 왼쪽 Data 항목 중 Layer Preview 선 택 3. demo:WorldCountries Layer의 OpenLayers 선택 4. 지도창이 뜨면 Http 헤더 분석도구로 Response 확인 (Chrome [F12], FireFox FireBug, IE HttpWatch) 5. Response Header 부분에 Expires, Cache-Control: max-age=604800 값 이 추가되었음을 확인 6. 휠로 줌 인, 줌 아웃 반복  별로 빨라 지지 않은 것 같다 ㅠㅠ 7. 지도 우상단의 옵션버튼 클릭 8. Tiling에서 Tiled 선택 9. 휠로 줌 인, 줌 아웃 반복  이번엔 확 실히 빨라진 것이 보인다. 2011-10-28GeoServer 성능향상을 위한 튜닝기법 7 Cache가 되려면 Tiled로 호출하여야만 한다!
  • 8. How to divide tiles? 2011-10-28GeoServer 성능향상을 위한 튜닝기법 8 http://wiki.osgeo.org/wiki/WMS_Tiling_Client_Recommendation L0:0_0/00_00 L0:0_0/01_00 L1:0_0/00_01 L1:0_0/01_01 L1:0_0/00_00 L1:0_0/01_00 L2:0_0/00_ 01 L2:0_0/01_ 01 L2:0_0/00_ 00 L2:0_0/01_ 00 L2:0_0/02_ 01 L2:0_0/03_ 01 L2:0_0/02_ 00 L2:0_0/03_ 00
  • 9. 3. Using Server Cache 2011-10-28GeoServer 성능향상을 위한 튜닝기법 9
  • 10. Two similar Arcitecture 2011-10-28GeoServer 성능향상을 위한 튜닝기법 10 Using GeoWebCache (Tile Cache) Using Squid (Web Cache) http://opengeo.org/publications/geoserver-production/
  • 11. GWC vs Squid 구분 GeoWebCache Squid-cache 캐시 가능범위 • WMS Tile Client Recommendation를 따르는 요청 (WMS-C, TMS, WMTS) • http, https, ftp 등 모든 웹표준 요 청 장점 • GeoServer에 통합되어 있어 사용 하기 편함 • SEED 기능으로 캐시를 미리 만들 어 놓을 수 있음 • 비표준 좌표계도 쉽게 캐시 • WAS와 분리된 별도 프로그램이므 로 부하 많아져도 GeoServer에 영 향 적음 단점 • EPSG:4326, EPSG:900913외의 좌 표계 지원 힘듦 • 요청이 많아지면 GeoServer 전체 서비스에 영향 • 설치가 복잡 • LastModifyTime을 위한 web.xml 변경 필요 • 타일단위 요청이 아닌 경우도 캐시 되 버림 • 캐시를 미리 만들려면 요청 스크립 트를 만들어야 함 2011-10-28GeoServer 성능향상을 위한 튜닝기법 11
  • 12. GeoWebCache Setting • 기본적으로 GeoServer와 함께 설 치되어 많이 손 델 필요 없음 • GeoServer관리자 화면의 GeoWebCache 메뉴를 눌러 설정 가능 • Enable direct WMS integration 옵션을 켜면 기본 WMS 요청도 GWC를 탄다고 되어 있으나 정상 동작되는 것을 확인 못함 • GeoServer 2.1.2 버전에서는 인터 페이스와 지원 포맷, 레이어별 설 정 등을 할 수 있는 UI가 추가되어 사용이 더욱 편리해짐 2011-10-28GeoServer 성능향상을 위한 튜닝기법 12
  • 13. Layer Seeding • 서비스 할 레이어의 캐시를 미리 생산해 놓는 기능 • GeoServer관리자 화면의 GeoWebCache 화면에서 Go to the GWC Demos Page를 눌러 갈 수 있음 • 생성시 서비스할 좌표계와 Format 에 일치하도록 캐시를 생산해야 함(좌표계는 WGS84경위도와 구 글좌표계만 지원) • 전 데이터 범위에 대한 캐시생산 도 가능하고 일부에 대한 생산도 가능 • 전세계 데이터는 상위 몇 레벨만 캐시 생산하고 한반도만 바닥 레 벨까지 생산하는 등도 가능 2011-10-28GeoServer 성능향상을 위한 튜닝기법 13
  • 14. Using GWC Service • 일반 WMS 인터페이스가 아닌 GWC 인터페이스를 호 출해야 동작 • 일반 WMS인터페이스가 ‘http://localhost:8080/geoserver/wms’라면 GWC 인 터페이스는 ‘http://localhost:8080/geoserver/gwc/service/wms’ 임 • GWC를 통해 서비스된 컨텐츠의 Response Header에 는 • geowebcache-tile-index 라는 헤더가 추가됨 • WMS Tile Client Recommendation 규약을 따르지 않는 요청은 캐시 안됨 • 때문에 OpenLayers에서 WMS 레이어 설정시 레이어의 범위와 타일크기를 정확히 지정해 주어야 함 2011-10-28GeoServer 성능향상을 위한 튜닝기법 14 var maxExtent = new OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508), restrictedExtent = maxExtent.clone(), maxResolution = 156543.0339; var options = { projection: new OpenLayers.Projection("EPSG:900913"), displayProjection: new OpenLayers.Projection("EPSG:4326"), units: "m", numZoomLevels: 18, maxResolution: maxResolution, maxExtent: maxExtent, restrictedExtent: restrictedExtent }; map = new OpenLayers.Map('map', options);
  • 15. Install Squid • http://wiki.squid-cache.org/SquidFaq/BinaryPackages 에 각 OS 별 다운로 드 링크가 있음 • 윈도우 버전의 경우 다운받은 압축파일을 C:에 풀어서 C:squid 폴더가 생기 게 한다.(다른 폴더로 만들 경우 바꿔야 할 설정이 많음) • Squidetc*.default 파일들을 모두 .default 확장자 제거 • Squid.conf 파일을 편집기로 오픈 • 약 1100행에 있는 http_port 항목을 서비스 할 포트로 변경하며 서비스에 필요 한 설정 추가 http_port 118.216.255.99:8090 accel defaultsite=demo.grida.kr cache_peer 127.0.0.1 parent 8080 0 no-query originserver name=myAccel acl demo.grida.kr dstdomain demo.grida.kr http_access allow demo.grida.kr cache_peer_access myAccel allow demo.grida.kr cache_peer_access myAccel deny all • Cached Data Storage 생성 C:squidsbinsquid –z (C:squidvarcache 폴더가 생성됨) • Windows Service 등록 C:squidsbinsquid –I 2011-10-28GeoServer 성능향상을 위한 튜닝기법 15
  • 16. Add WAS filter for Squid • GeoServer는 기본적으로 Contents의 Response Header에 ‘LastModifiedTime’을 넣어주 지 않는다. • Squid는 캐시된 자료의 유효성을 확인하기 위해 LastModifiedTime이 꼭 있어야 한다. • 때문에 WAS의 filter를 이용해 ‘LastModifiedTime’ 추가해 주어야 한다. • Filter module Download : http://flavio.tordini.org/download/httpheaders-0.0.0.zip • 압축파일에서 httpheaders/build/jar/httpheaders/httpheaders-0.0.0.jar 파일 압축해제 • GeoServer의 WEB-INFlib 폴더(예: C:Program FilesGeoServer 2.1.1webappsgeoserverWEB-INFlib)에 jar 파일 복사 • WEB-INFweb.xml 파일 편집기로 열어 다음 내용 추가 <filter> <filter-name>httpHeaders</filter-name> <filter-class> org.ft.servlet.filters.httpheaders.HTTPHeadersFilter </filter-class> <init-param> <param-name>Last-Modified</param-name> <param-value>${now}</param-value> </init-param> </filter> <filter-mapping> <filter-name>httpHeaders</filter-name> <url-pattern>/wms</url-pattern> </filter-mapping> 2011-10-28GeoServer 성능향상을 위한 튜닝기법 16
  • 17. Using Squid Service • 기존 GeoServer 서비스 인터페이 스의 포트만 Squid가 사용하고 있 는 포트로 변경하여 요청하면 끝 • localhost:8080/geoserver/wms  localhost:8090/geoserver/wms 2011-10-28GeoServer 성능향상을 위한 튜닝기법 17
  • 18. 4. The Best Data Setting 2011-10-28GeoServer 성능향상을 위한 튜닝기법 18 http://download.osgeo.org/osgeo/foss4g/2009/SPREP/1Wed/Parkside%20GO3/1500/MakingMapsFast.pdf
  • 19. Vector Data • 서비스할 좌표계로 소스데이터 미리 변환하라! o GeoServer는 실시간 좌표계 변환도 잘 지원한다. o 하지만 실시간 변환은 느릴 수 밖에 없다. • 스타일을 이용하여 적당한 정보만 표출되게 제어하라! o 스타일 정보를 조정하여 스케일에 따라 적정한 레이어만 보이게 한다. o 같은 레이어도 스케일에 따라 적절한 심벌이 부여되게 한다. • 피처를 다듬어라! o 피처를 정규화(Simplofiy)하여 불필요한 점을 없엔다. o 각 스케일에 맞게 정규화된 어러 레이어를 사용하면 효과적이다. o 지나치게 넓은 범위의 MBR을 가지는 피처는 적절히 분리한다. • 느린 스타일의 사용을 최소화하라! o 투명도(Transparecy)의 사용은 기본적으로 2배 이상의 랜더링 시간이 걸린다. o 라벨을 뿌리는 것은 비싼 비용을 각오해야 한다. o 라벨에 테두리(Halo)를 주는 것은 더 비산 비용이 필요하다. 2011-10-28GeoServer 성능향상을 위한 튜닝기법 19
  • 20. Raster Data • JPEG나 ArcGRID의 사용을 자제하라! o 이런 포맷들은 디코딩에 많은 비용이 든다. o 가능한 한 인코딩 되지 않은 GeoTiff를 사용하라. o ECW나 JPEG2000와 같은 진보된 웨이블릿 포맷도 바람직하다. • 다단계 타일링 된 GeoTiff를 사용하라! o GDAL 툴인 gdaladdo 명령을 이용하면 다단계 타일링된 GeoTiff를 만들 수 있다. o Ex) gdaladdo -r average mytiff.tif 2 4 8 16 • 가능한 한, 영상을 합쳐라! o 여러 장의 영상을 여러 레이어로 서비스 하는 것이 가장 느리다. o 여러 장의 영상을 레이어 그룹으로 묶어 서비스 하면 조금(아주조금) 빨라진다. o 한 개의 영상으로 합처 서비스 하면 많이 빨라진다. o 하지만 약 4GB 이상의 영상은 보통 GeoServer에 올릴 수 없기에 나눌 수 밖에 없다. 2011-10-28GeoServer 성능향상을 위한 튜닝기법 20
  • 21. Output Format Selection • 벡터 레이어 o png로 요청하는 것이 일반적으로 좋다. 빠르며 크지않고 투명처리가 된다. o png8로 요청시 크기는 더 작아지지만 약간 느리고 색이 이상해질 수 있다. o Gif는 png8과 유사하지만, 브라우저에 따라 투명처리가 안되는 경우가 있다. o Jpeg는 느리고 투명처리 안되기에 비권장이다. • 위성영상/항공사진 o Jpeg가 용량이 작아 일반적으로 좋다. o Jpeg가 인코딩이 느린 것은 캐시로 해결 가능하다. o Null value 부분을 투명처리 하려면 PNG로 요청할 수 밖에 없다. • 안티알리어싱 비활성화 o 빠른 속도를 원한다면 요청시 “format option”에서 안티알리어싱을 끌 수 있다. o &format_options=antialias:none • “Web safe” palette 이용 o 이 옵션은 png8과 gif 포멧 이용시만 유효하다. o &palette:safe 2011-10-28GeoServer 성능향상을 위한 튜닝기법 21
  • 22. 5. The Best Server Setting 2011-10-28GeoServer 성능향상을 위한 튜닝기법 22
  • 23. JVM setting • Java 6를 사용 • JVM Setting o 256MB 이상의 메모리: -Xmx256m -Xms48m o 캐시가 오래 남게 설정: -XX:SoftRefLRUPolicyMSPerMB=36000 o 영구 객체가 사용할 메모리 확보: -XX:MaxPermSize=128m o 병렬 가베지 콜렉션: -XX:+UseParallelGC 2011-10-28GeoServer 성능향상을 위한 튜닝기법 23
  • 24. GeoServer Setting • Logging 정책 변경 o 관리 UI의 global Setting에서 조정할 수 있다. o DEFAULT, VERBOSE, PRODUCTION, GEOTOOLS_DEVELOPER, GEOSERVER_DEVELOPER로 정책 변경 가능하 다. o PRODUCTION이 가장 적은 정보를 기록하므로 빠르다. • Service Strategy 변경 o GeoServer의 web.xml 파일에서 조정 가능하다. o SPEED는 스트리밍만으로 결과를 보내 빠르지 만 안정성 떨어진다. o BUFFER는 모든 결과를 메모리에 만든후 서비 스 한다. o FILE은 모든 결과를 파일로 만든 후 서비스 한 다. o PARTIAL-BUFFER는 BUFFER과 SPEED를 결 합한 형태로 빠르고 어느정도 안정성도 있다. 2011-10-28GeoServer 성능향상을 위한 튜닝기법 24