domingo, 28 de fevereiro de 2010

MapServer em modo FastCGI

Uma das formas de optimizar o MapServer do lado do servidor web consiste em corrê-lo em modo FastCGI.

Instalação
(Em Windows com MS4W)

1. Actualmente o MS4W vem com suporte a FastCGI sendo o módulo do Apache (mod_fcgid) necessário carregado por defeito. Instalar o MS4W em:
"c:/ms4w/"
Verificar se está instalado o Visual C++ 2008 Redistributable Package

2. Editar o ficheiro de configuração do Apache httpd.conf
  • remover o comentário da linha:
    LoadModule fcgid_module modules/mod_fcgid.so
  • remover os comentários das seguintes linhas e colocar os caminhos correctos:

    DefaultInitEnv PROJ_LIB "c:/ms4w/proj/nad/"
    DefaultInitEnv PATH "c:/ms4w/Apache/cgi-bin;
    c:/WINDOWS/system32;c:/WINDOWS;c:/WINDOWS/System32/Wbem;"
    DefaultInitEnv windir "c:/WINDOWS"
    DefaultInitEnv SystemRoot "c:/WINDOWS"
    DefaultInitEnv SystemDrive "c:"
    DefaultInitEnv GDAL_DATA "c:/ms4w/gdaldata"
    DefaultInitEnv GDAL_DRIVER_PATH "c:/ms4w/gdalplugins"
    DefaultInitEnv TMP "c:/ms4w/tmp"
    DefaultInitEnv TEMP "c:/ms4w/tmp"
  • adicionar parâmetros de configuração do FastCGI como por exemplo:

    IPCCommTimeout 60
    IdleTimeout 60
    DefaultMinClassProcessCount 2
    DefaultMaxClassProcessCount 20
    DefaultInitEnv PROJ_LIB "c:/ms4w/proj/nad/"
    DefaultInitEnv PATH "c:/ms4w/Apache/cgi-bin;
    c:/WINDOWS/system32;c:/WINDOWS;c:/WINDOWS/System32/Wbem;"
    DefaultInitEnv windir "c:/WINDOWS"
    DefaultInitEnv SystemRoot "c:/WINDOWS"
    DefaultInitEnv SystemDrive "c:"
    DefaultInitEnv GDAL_DATA "c:/ms4w/gdaldata"
    DefaultInitEnv GDAL_DRIVER_PATH "c:/ms4w/gdalplugins"
    DefaultInitEnv TMP "c:/ms4w/tmp"
    DefaultInitEnv TEMP "c:/ms4w/tmp"
  • salvar o ficheiro httpd.conf e reiniciar o Apache.
3. Modificar a aplicação CGI de forma a apontar para "/fcgi-bin/mapserv.exe" em vez de "/cgi-bin/mapserv.exe".

4. Adicionar o parâmetro seguinte às layers para as quais queremos uma ligação FastCGI:
         PROCESSING "CLOSE_CONNECTION=DEFER"
5. Testar a aplicação. Se a instalação tiver sido bem sucedida então deveremos ver o processo "mapserv.exe" no Windows Task Manager, mantendo-se aberto enquanto o utilizador interage com a aplicação.

Notas

Em modo FastCGI poderá não se verificar um aumento de performance embora haja um ganho em utilização de recursos e eficiência.

Com layers de shapefiles o parâmetro "CLOSE_CONNECTION=DEFER" é simplesmente ignorado, não havendo portanto, um ganho de performance assinalável, por maiores que sejam as shapefiles.

O FastCGI compensa em situações em que exista um "custo" de ligação elevado, por exemplo, em ligações a ArcSDE, Oracle ou PostGIS.

O melhor será sempre fazer testes de benchmarking.





Sem comentários:

Enviar um comentário