3 votos

El rendimiento del GeoServer se ve afectado significativamente por el tamaño de los iconos vectoriales

Estoy teniendo la experiencia más loca de GeoServer en este momento y esperaba obtener alguna opinión sobre lo que podría estar causando este comportamiento.

Estoy utilizando Apache Bench para evaluar el rendimiento de renderización de una capa a través de la interfaz WMS de GeoServer y accidentalmente descubrí que el tamaño del icono vectorial tiene un efecto muy significativo en el rendimiento. La imagen que estoy renderizando:

  • Características de 25.000 puntos
  • Regla de renderización única en SLD
  • 1900x1200 píxeles
  • La concurrencia de solicitudes es de 5
  • GeoServer es 2.6.1
  • La JVM es Oracle Java 7 SE
  • No utilizar el JAI nativo

La regla de renderización única del SLD tiene el siguiente aspecto:

<PointSymbolizer>
    <Graphic>
      <Mark>
        <WellKnownName>circle</WellKnownName>
        <Fill>
          <CssParameter name="fill">#FF0000</CssParameter>
          <CssParameter name="fill-opacity">1.0</CssParameter>
        </Fill>
      </Mark>
      <Size>
        <ogc:Literal>50</ogc:Literal>
      </Size>
    </Graphic>
</PointSymbolizer>

Este gráfico muestra cómo varía el tiempo de respuesta para la misma solicitud en función del tamaño del icono

enter image description here

Como se trata de un icono vectorial había asumido que el renderizado de cualquier tamaño tenía tanto impacto en el rendimiento como cualquier otro tamaño, pero parece que a partir de un determinado tamaño (quizás 16px) el rendimiento empieza a resentirse y más allá de 30px baja drásticamente.

Esto tiene implicaciones obvias para la forma en que escribo futuros SLD, pero en este momento me interesa más saber por qué sucede esto. ¿Alguna idea?

EDITAR : Con un poco más de investigación he encontrado que el aumento del tamaño (a escala) de un icono PNG da un aumento mucho más lineal en el tiempo de renderizado y hay un tamaño, para esta capa en particular, cuando los iconos PNG se vuelven más rápidos que los iconos vectoriales. También he visto que la relación entre el tamaño del icono y el rendimiento es más lineal con un menor número de características. Como parece que el número de características y el tamaño de los iconos interactúan para afectar al rendimiento, sólo puedo asumir que esto está relacionado con el uso de la memoria, sólo que no estoy seguro de cómo exactamente.

2voto

NVI Puntos 121

De hecho, has olvidado mencionar, ni incluirlo en el gráfico, cómo mides el "tamaño del icono": 1) anchura/altura en el eje X, 2) área del icono en número de píxeles

Supongo que es la 1), basada en los tamaños de los iconos normales.

Esto probablemente explique su gráfico: el aumento del tamaño del área del icono, medido en número de píxeles, es cuadrático, cada vez que se duplica la anchura, aumenta el área por un factor 4.

Así pues, el número de píxeles que hay que procesar/generar/representar para sus iconos vectoriales, aumenta considerablemente con el "tamaño"/anchura del icono, lo que parece más o menos coherente con los resultados de su gráfico.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X