2012-07-23 5 views
4

Geoserver 인스턴스와 Postgres/PostGIS 간의 상호 작용에 이상한 점을 발견했습니다.Geoserver - PostGIS 성능 문제

Geoserver의 로그 수준을 개발자 디버깅을 포함하도록 설정 한 후 Geoserver WMS에서 PostGIS로 단일 요청을 캡처했습니다.

사건과 타임 스탬프의 (단축) 순서 : 흥미롭게도

12:31:22,658 - SELECT query for MSG is sent to Postgres 
12:32:10,315 - Rendering for MSG layer starts 
12:32:10,356 - DB Connection Closed 
~ 48 seconds 

, 내가 직접 PgAdmin3에서 동일한 쿼리 (MSG) 실행할 때 :

SELECT "frp_mw",encode(ST_AsBinary(ST_Force_2D("the_geom")),'base64') as "the_geom" FROM "public"."af_msg_abba_datetime_today" WHERE ("the_geom" && GeometryFromText('POLYGON ((-27.67968749408379 -46.92207325648429, -27.67968749408379 -6.186892358058866, 75.67968748740275 -6.186892358058866, 75.67968748740275 -46.92207325648429, -27.67968749408379 -46.92207325648429))', 4326) AND (("frp_mw" >= -1 AND "frp_mw" <= 150) OR ("frp_mw" >= 151 AND "frp_mw" <= 300) OR ("frp_mw" >= 301 AND "frp_mw" <= 600) OR ("frp_mw" >= 601 AND "frp_mw" <= 50000))); 

을 내가 6515 행에서 얻을 380 ms.

Ie Postgres는 PgAdmin3에서 쿼리 한 경우 380ms 이내에 쿼리 결과를 반환 할 수 있지만 Geoserver는 동일한 결과 집합을 유지하는 데 약 48 초가 걸립니다.

아마도 JDBC 문제일까요? 우리의 설정에 대한

일부 세부 정보 :

마스터 포스트 그레스 데이터베이스 Geoserver에서 별도의 VM에 있지만 우리는 Geoserver VM (동일한 호스트)에 슬레이브 포스트 그레스 클러스터에 복제합니다. 따라서 Geoserver는 쿼리를 위해 'localhost'읽기 전용 Postgres 클러스터를 참조합니다.

위의 380ms 응답 시간은 Geoserver가 사용하는 것과 동일한 슬레이브 Postgres 클러스터에서 나온 것입니다.

모든 Linux (Ubuntu 11.10) 기반. Postgres 9.1 PostGIS 1.5 Geoserver 2.1.3

+0

pgadmin에서 6k 행을 모두 클라이언트에 다운로드 했습니까? –

+0

별도의 쿼리 창에서 쿼리를 실행했는데 클라이언트에 모든 행을 반환한다고 생각합니다. – Ries

답변

3

GeoServer는 많은 동시 요청의 경우 큰 메모리 공간을 차지하지 않도록 데이터를 1000 블록 단위로 가져 와서 렌더링하고 다음 블록을 가져 오는 등의 작업을 수행합니다. 따라서 48s는 데이터를로드하고로드하고 렌더링하는 시간이 아닙니다. 한 번에 데이터를로드하는 속도는 빠르지 만 메모리 사용 공간을 제어 할 수있는 방법은 없습니다.

또한 데이터 저장소 구성에서 준비된 문을 사용하고 있습니까?

+0

로그를 보면 약 48 초 후에 만 ​​렌더링이 시작된 것처럼 보입니다. 2012-07-20 12 : 32 : 10,315 DEBUG [org.geotools.rendering] - 기호 circle을 렌더링하려고 시도 중 2012-07-20 12 : 32 : 10,315 DEBUG [org.geotools.rendering] - 렌더링 mark @ PointRenderer circle 2012-07-20 12 : 32 : 10,316 DEBUG [org.geotools.rendering] - 이름 동그라미 표식 가져 오기 2012-07-20 12 : 32 : 10,316 DEBUG [org.geotools.rendering] - 동그라미 돌아 가기 – Ries

+0

준비 됨 문이 활성화되고 최대 열린 값은 50으로 설정됩니다. – Ries

+0

아, 준비된 문을 끄면 내 문제가 해결되었습니다! 힌트를 가져 주셔서 감사합니다. – Ries