<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:v = 
"urn:schemas-microsoft-com:vml" xmlns:o = 
"urn:schemas-microsoft-com:office:office" xmlns:w = 
"urn:schemas-microsoft-com:office:word" xmlns:m = 
"http://schemas.microsoft.com/office/2004/12/omml"><HEAD><TITLE>Message</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.3429" name=GENERATOR>
<STYLE>@font-face {
        font-family: Calibri;
}
@font-face {
        font-family: Tahoma;
}
@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.0in 1.0in 1.0in; }
P.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; COLOR: black; FONT-FAMILY: "Times New Roman","serif"
}
LI.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; COLOR: black; FONT-FAMILY: "Times New Roman","serif"
}
DIV.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; COLOR: black; FONT-FAMILY: "Times New Roman","serif"
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.EmailStyle17 {
        COLOR: #1f497d; FONT-FAMILY: "Calibri","sans-serif"; mso-style-type: personal-reply
}
.MsoChpDefault {
        FONT-SIZE: 10pt; mso-style-type: export-only
}
DIV.Section1 {
        page: Section1
}
</STYLE>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]--></HEAD>
<BODY lang=EN-US vLink=purple link=blue bgColor=white>
<DIV><FONT face=Verdana color=#0000ff size=2><SPAN class=513565815-12122008>Here 
is a message published&nbsp;by Alexandre Dubé a few weeks ago - 
helpfull</SPAN></FONT></DIV>
<DIV><FONT face=Verdana color=#0000ff size=2><SPAN 
class=513565815-12122008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Verdana color=#0000ff size=2><SPAN 
class=513565815-12122008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Verdana color=#0000ff size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>
<P>Here's how to install and setup fastCGI with Apache 2.2.8 contained in </P>
<P>the MS4W 2.2.7 version.</P>
<P>1- MS4W 2.2.7 contains a MapServer compiled to support FastCGI so </P>
<P>nothing needs to be done there.</P>
<P>2- But, Apache 2.2.8 that comes with MS4W 2.2.7 doesn't include the </P>
<P>mod_fcgi module. This module can be dowloaded at </P>
<P></FONT><A href="http://www.apachelounge.com/download/"><U><FONT color=#0000ff 
size=2>http://www.apachelounge.com/download/</U></FONT></A><FONT size=2> ... 
Take the </P>
<P>mod_fcgid-2.2a-w32.zip which will work with Apache 2.2.8.</P>
<P>3- Copy mod_fcgid.so to your apache/modules folder</P>
<P>4- Install the Visual C++ 2008 Redistributable Package (the binary is </P>
<P>build with VC 2008). Download and install, if it isn't already done, </P>
<P>from: </P>
<P></FONT><A 
href="outbind://14/www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&amp;displaylang=en"><U><FONT 
color=#0000ff 
size=2>www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&amp;displaylang=en</U></FONT></A></P><FONT 
size=2>
<P>5- Modify your /ms4w/Apache/conf/httpd.conf</P>
<P>a) Add :</P>
<P>LoadModule fcgid_module modules/mod_fcgid.so</P>
<P>b) Add :</P>
<P>ScriptAlias /cgi-bin/ "/ms4w/Apache/cgi-bin/"</P>
<P>ScriptAlias /fcgi-bin/ "/ms4w/Apache/cgi-bin/"</P>
<P>c) Remove :</P>
<P>&lt;Directory "/ms4w/Apache/cgi-bin"&gt;</P>
<P>AllowOverride All</P>
<P>Options None</P>
<P>Order allow,deny</P>
<P>Allow from all</P>
<P>&lt;/Directory&gt;</P>
<P>d) Add :</P>
<P>&lt;Location "/cgi-bin"&gt;</P>
<P>Options None</P>
<P>Order allow,deny</P>
<P>Allow from all</P>
<P>&lt;/Location&gt;</P>
<P>e) Add :</P>
<P>&lt;Location "/fcgi-bin"&gt;</P>
<P># The following line activates the fastCGI script to all files </P>
<P>in location</P>
<P>SetHandler fcgid-script</P>
<P>Options None</P>
<P>Order allow,deny</P>
<P>Allow from all</P>
<P>&lt;/Location&gt;</P>
<P>f) Add :</P>
<P>&lt;IfModule fcgid_module&gt;</P>
<P>IPCCommTimeout 60</P>
<P>IdleTimeout 60</P>
<P>DefaultMinClassProcessCount 2</P>
<P>DefaultMaxClassProcessCount 20</P>
<P>DefaultInitEnv PROJ_LIB "c:/ms4w/proj/nad/"</P>
<P>DefaultInitEnv PATH </P>
<P>"c:/ms4w/Apache/cgi-bin;c:/WINDOWS/system32;c:/WINDOWS;c:/WINDOWS/System32/Wbem;"</P>
<P>DefaultInitEnv windir "c:/WINDOWS"</P>
<P>DefaultInitEnv SystemRoot "c:/WINDOWS"</P>
<P>DefaultInitEnv SystemDrive "c:"</P>
<P>DefaultInitEnv GDAL_DATA "c:/ms4w/gdaldata"</P>
<P>DefaultInitEnv GDAL_DRIVER_PATH "c:/ms4w/gdalplugins"</P>
<P>DefaultInitEnv TMP "c:/ms4w/tmp"</P>
<P>DefaultInitEnv TEMP "c:/ms4w/tmp"</P>
<P>&lt;/IfModule&gt;</P>
<P>6- Restart Apache : /ms4w/apache-restart.bat</P>
<P>7- In your mapfile, set a PROCESSING directive to tell FastCGI to cache </P>
<P>the connections and layer information on all layers for which connection </P>
<P>caching is desired - ie. all slow layers.</P>
<P>a) Add :</P>
<P>PROCESSING "CLOSE_CONNECTION=DEFER"</P>
<P>8- Now you can load your map using either normal CGI or FastCGI :</P>
<P>a) CGI :</P>
<P></FONT><A href="http://host:port/cgi-bin/mapserv.exe"><U><FONT color=#0000ff 
size=2>http://host:port/cgi-bin/mapserv.exe</U></FONT></A><FONT size=2>?...</P>
<P>b) fastCGI :</P>
<P></FONT><A href="http://host:port/fcgi-bin/mapserv.exe"><U><FONT color=#0000ff 
size=2>http://host:port/fcgi-bin/mapserv.exe</U></FONT></A><FONT size=2>?...</P>
<P>That way, your original cgi-bin folder wont be affected by fastCGI </P>
<P>unless you use the modified url with "fcti-bin" which is the alias you </P>
<P>added to your httpd.conf file at 5b).</P>
<P>Special thanks to Jeff McKenna and Daniel Morissette who helped me a lot </P>
<P>with this.</P>
<P>&nbsp;</P>
<P><FONT face=Verdana color=#0000ff></FONT>&nbsp;</P></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV class=Section1>
<P align=left><SPAN lang=FR-CA 
style="COLOR: navy; FONT-FAMILY: 'Arial Black'; mso-ansi-language: FR-CA">______________________________________________________</SPAN></P>
<P><SPAN lang=FR-CA 
style="COLOR: navy; FONT-FAMILY: 'Arial Black'; mso-ansi-language: FR-CA"><FONT 
size=2><FONT face=Verdana><FONT size=4><STRONG>JAMES 
LÉVEILLÉ<BR></STRONG></FONT>Service des systèmes de Mission<BR>Direction des 
technologies de l'information<BR>Ministère des Transports du 
Québec</FONT></FONT></SPAN></P>
<P><SPAN lang=FR-CA 
style="COLOR: navy; FONT-FAMILY: 'Arial Black'; mso-ansi-language: FR-CA"><FONT 
face=Verdana size=2>5833, boul. Pierre-Bertrand, 2ième étage<BR>Québec (Québec) 
G2K 1K7<BR>Téléphone:&nbsp;&nbsp; (418) 380-2005 poste 227<BR>Télécopieur: (418) 
644-6653<BR><A href="mailto:james.leveille@mtq.gouv.qc.ca"><FONT 
color=#000080>james.leveille@mtq.gouv.qc.ca</FONT></A><BR></FONT></SPAN></P>
<P><FONT color=#000080></FONT>&nbsp;</P></DIV>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
  <DIV></DIV>
  <DIV class=OutlookMessageHeader lang=fr dir=ltr align=left><FONT face=Tahoma 
  size=2>-----Message d'origine-----<BR><B>De&nbsp;:</B> 
  mapserver-users-bounces@lists.osgeo.org 
  [mailto:mapserver-users-bounces@lists.osgeo.org] <B>De la part de</B> Rahkonen 
  Jukka<BR><B>Envoyé&nbsp;:</B> 12 décembre 2008 10:39<BR><B>À&nbsp;:</B> 
  Marcelo Oliveira; mapserver-users@lists.osgeo.org<BR><B>Objet&nbsp;:</B> Re: 
  [mapserver-users] How to make MapServer WMS super fast?<BR><BR></FONT></DIV>
  <DIV dir=ltr align=left><SPAN class=019313015-12122008><FONT face=Arial 
  color=#0000ff size=2>Hi,</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=019313015-12122008><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=019313015-12122008><FONT face=Arial 
  color=#0000ff size=2>Thanks, I will try Fast CGI.&nbsp; Are there some simple 
  enough document for a ms4w users about how to turn the system to use Fast 
  CGI?</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=019313015-12122008><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=019313015-12122008><FONT face=Arial 
  color=#0000ff size=2>-Jukka-</FONT></SPAN></DIV><BR>
  <BLOCKQUOTE dir=ltr 
  style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
    <DIV class=OutlookMessageHeader lang=fi dir=ltr align=left>
    <HR tabIndex=-1>
    <FONT face=Tahoma size=2><B>Lähettäjä:</B> Marcelo Oliveira 
    [mailto:moliveira@GEOSTATS.com] <BR><B>Lähetetty:</B> 12. joulukuuta 2008 
    17:05<BR><B>Vastaanottaja:</B> Rahkonen Jukka; 
    mapserver-users@lists.osgeo.org<BR><B>Aihe:</B> RE: [mapserver-users] How to 
    make MapServer WMS super fast?<BR></FONT><BR></DIV>
    <DIV></DIV>
    <DIV class=Section1>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'">Try 
    using Fast CGI, it should improve your latency problem you are seeing.&nbsp; 
    It is also possible that using other raster formats could 
    help.<o:p></o:p></SPAN></P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"><o:p>&nbsp;</o:p></SPAN></P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'">Good 
    luck! M<o:p></o:p></SPAN></P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"><o:p>&nbsp;</o:p></SPAN></P>
    <DIV>
    <P class=MsoNormal><SPAN lang=PT-BR 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'">--------------<o:p></o:p></SPAN></P>
    <P class=MsoNormal><SPAN lang=PT-BR 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'">Marcelo 
    Simas Oliveira<o:p></o:p></SPAN></P>
    <P class=MsoNormal><SPAN lang=PT-BR 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'">GeoStats 
    LP<o:p></o:p></SPAN></P>
    <P class=MsoNormal><SPAN lang=PT-BR 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'">530 
    Means St., Ste. 310<o:p></o:p></SPAN></P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'">Atlanta, 
    Georgia 30318<o:p></o:p></SPAN></P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'">(404) 
    588-1004<o:p></o:p></SPAN></P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'">www.geostats.com<o:p></o:p></SPAN></P></DIV>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"><o:p>&nbsp;</o:p></SPAN></P>
    <DIV>
    <DIV 
    style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
    <P class=MsoNormal><B><SPAN 
    style="FONT-SIZE: 10pt; COLOR: windowtext; FONT-FAMILY: 'Tahoma','sans-serif'">From:</SPAN></B><SPAN 
    style="FONT-SIZE: 10pt; COLOR: windowtext; FONT-FAMILY: 'Tahoma','sans-serif'"> 
    mapserver-users-bounces@lists.osgeo.org 
    [mailto:mapserver-users-bounces@lists.osgeo.org] <B>On Behalf Of 
    </B>Rahkonen Jukka<BR><B>Sent:</B> Friday, December 12, 2008 10:01 
    AM<BR><B>To:</B> mapserver-users@lists.osgeo.org<BR><B>Subject:</B> 
    [mapserver-users] How to make MapServer WMS super 
    fast?<o:p></o:p></SPAN></P></DIV></DIV>
    <P class=MsoNormal><o:p>&nbsp;</o:p></P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">Hi,</SPAN><o:p></o:p></P>
    <P class=MsoNormal>&nbsp;<o:p></o:p></P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">Are 
    there any&nbsp;effective tricks for&nbsp;making MapServer to Top-Fuel 
    class?&nbsp;&nbsp;We have now a typical ms4w installation on a rather good 
    server platform with SCSI&nbsp;drives and 2 four-core processors running on 
    Windows 2003 server.&nbsp;Our images are tiled, uncompressed geotiffs with 
    overviews, vector sample data set is shapefile with shptree index.&nbsp; I 
    have a shortened epsg file and my mapfile is extra short. Bandwith is not 
    the limit. We are getting out now about 450 orthoimage pictures per 
    minute&nbsp;(size 500 by 500 pixels) and 550 pictures from the vector layer 
    in png24 image format.&nbsp; I consider that rather good, but we are 
    required to reach 20 images per second, thus 1200 images per minute or 0.05 
    seconds per image.&nbsp; I wonder if anybody has tuned MapServer that 
    far.</SPAN><o:p></o:p></P>
    <P class=MsoNormal>&nbsp;<o:p></o:p></P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">I am 
    willing to try however exotic solutions to reach the 20 WMS output 
    images/second goal if somebody could suggest me what to try next.&nbsp; In 
    our system there seems to be about 0.1 second ballast with WMS getMap 
    requests and I cannot get any faster response even if I try with on empty 
    data layer with nothing to render.&nbsp; Have anybody tried to keep 
    mapfile,&nbsp; epsg-file or even tileindex&nbsp;files&nbsp;in RAM 
    drive?&nbsp; </SPAN><o:p></o:p></P>
    <P class=MsoNormal>&nbsp;<o:p></o:p></P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">Having 
    about&nbsp;20 parallel users seems to be optimal for our server and if 
    I&nbsp;drive just WMS getCapabilities request against my mapfile I can get 
    about 1300 responses per minute.&nbsp; That leads me to think that 1200 
    rendered images per minute might be possible to reach with optimal 
    set-up.</SPAN><o:p></o:p></P>
    <P class=MsoNormal>&nbsp;<o:p></o:p></P>
    <P class=MsoNormal><SPAN 
    style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">-Jukka 
    Rahkonen-</SPAN><o:p></o:p></P></DIV></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>