[mapserver-users] Slow and degrading performance with radar (but not satellite) on mapserver-6.0.1-3_0.el6.x86_64
Daniel Morissette
dmorissette at mapgears.com
Thu Jul 23 14:24:16 PDT 2020
Actually, I think this specific error means that the map parameter
"MAP=wmst" is missing a ".map" extension in the mapfile name.
I'd suggest renaming the mapfile to wmst.map, and also passing the full
path in the MAP= param.
Daniel
On 2020-07-23 16:54, Stephen Woodbridge wrote:
> Paul,
>
> This sounds like you have error in your mapfile. you might try posting
> it to the list if you can't figure it out yourself.
>
> There also might be some mapfile tools or sites that can validate the
> mapfile, but I've never needed them so I don't have them bookmarked
> anywhere. Can anyone on the list make a suggestion to Paul?
>
> -Steve W
>
>
> On 7/23/2020 12:48 PM, English Paul wrote:
>>
>> Thanks again Steve – progress:
>>
>> $ /usr/libexec/mapserv -nh
>> QUERY_STRING="MAP=wmst?FORMAT=image%2Fpng&LAYERS=winter1km_5min&TRANSPARENT=TRUE&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&TIME=2020-07-23T16%3A40%3A00Z&SRS=EPSG%3A900913&BBOX=-9392582.0328932,4383204.9527744,-9236038.9989652,4539747.9867024&WIDTH=256&HEIGHT=256"
>> > junk.png
>>
>> Gives the following in junk.png:
>>
>> Content-type: text/html
>>
>> <HTML>
>>
>> <HEAD><TITLE>MapServer Message</TITLE></HEAD>
>>
>> <!-- MapServer version 6.0.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG
>> OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=CAIRO SUPPORTS=FREETYPE S
>>
>> UPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT
>> SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPP
>>
>> ORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS
>> INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE -->
>>
>> <BODY BGCOLOR="#FFFFFF">
>>
>> msLoadMap(): Regular expression error. MS_DEFAULT_MAPFILE_PATTERN
>> validation failed.
>>
>> msEvalRegex(): R
>>
>> *From: *mapserver-users <mapserver-users-bounces at lists.osgeo.org> on
>> behalf of Stephen Woodbridge <stephenwoodbridge37 at gmail.com>
>> *Date: *Wednesday, July 22, 2020 at 19:53
>> *To: *"mapserver-users at lists.osgeo.org" <mapserver-users at lists.osgeo.org>
>> *Subject: *Re: [mapserver-users] Slow and degrading performance with
>> radar (but not satellite) on mapserver-6.0.1-3_0.el6.x86_64
>>
>> you need to include in your QUERY_STRING=MAP=....&
>>
>> it is probably hard coded in the fcgi config.
>>
>> -Steve W
>>
>> On 7/22/2020 7:15 PM, English Paul wrote:
>>
>> So you have a complex historical "mess" and its not clear where
>> the performance issue is. So you need to divide the problem into
>> small problems that you can verify are or are not contributing. I
>> would start with something like this:
>>
>> Thank you – I would not have thought to try it outside of CGI
>> entirely!
>>
>> Take one slow image request and try that as cgi or cli and not
>> fcgi and turn on debugging.
>>
>> - copy and rename you mapfile so it doesn't mess with the
>> production requests
>>
>> Not a major worry in this case – I’m working in an entirely dev
>> environment. I did make backup copies though!
>>
>> - turn on the debugging and send it to stderr in the debug mapfile
>>
>> - you can manually run that image request from the commandline like:
>>
>> if mapserv is not in your path you might need to find it and your
>> the path to it below
>>
>> mapserv -nh QUERY_STRING="everything after the ? in the original
>> query" >junk.png 2>error.txt
>>
>> -nh suppresses headers from being output before the image data
>>
>> error.txt will be stderr output and should contain the debug messages
>>
>> I couldn’t quite get there – which this is what I ended up running:
>>
>> # /usr/libexec/mapserv -nh
>> QUERY_STRING="FORMAT=image%2Fpng&LAYERS=winter1km_5min&TRANSPARENT=TRUE&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&TIME=2020-07-22T22%3A30%3A00Z&SRS=EPSG%3A900913&BBOX=-11584184.507886,4070118.8849183,-11271098.44003,4383204.9527744&WIDTH=256&HEIGHT=256"
>> > junk.png 2>error.txt
>>
>> I first tried it with our current map file(s), and then with
>> MS_ERRORFILE set to stderr and DEBUG set to 5, in both cases, I
>> got an empty error.txt, and the following in junk.png:
>>
>> Content-type: text/html
>>
>> <HTML>
>>
>> <HEAD><TITLE>MapServer Message</TITLE></HEAD>
>>
>> <!-- MapServer version 6.0.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG
>> OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=CAIRO SUPPORTS=FREETYPE
>>
>> SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER
>> SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT
>> SUPPORTS=WCS_SERVER SU
>>
>> PPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS
>> INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE -->
>>
>> <BODY BGCOLOR="#FFFFFF">
>>
>> loadMap(): Web application error. CGI variable "map" is
>> not set.
>>
>> </BODY></HTML>
>>
>> I noticed that if I ran it with just -nh, I get the following:
>>
>> #/usr/libexec/mapserv -nh
>>
>> This script can only be used to decode form results and
>>
>> should be initiated as a CGI process via a httpd server.
>>
>> So maybe this older version just really doesn’t want to be run on
>> the CLI? Or maybe I’m messing up the QUERY_STRING, or need to set
>> the CGI variable to something as the junk.png output suggests?
>>
>> Thanks again and thanks SO MUCH for the super quick reply!!
>>
>> Paul
>>
>> On 7/22/2020 1:47 PM, English Paul wrote:
>>
>> Hi,
>>
>> Newbie here, just got a work assignment to look into some
>> performance issues with mapserver-6.0.1-3_0.el6.x86_64 –
>> specifically, at one time, it rendered radar images very fast,
>> then it degraded and seemed to consume a lot more CPU. So –
>> the EC2 instance side was upgraded significantly – and it
>> still performs badly and uses a lot of CPU. It also seems to
>> be getting slowly worse over time (days/months, not
>> seconds/minutes). I asked this on IRC, but it looks like email
>> might be a better route.
>>
>> During all of this, the same mapserver instance renders
>> satellite images quickly. These seem to be a similar, or in
>> some cases larger size png to start with, rendered onto the
>> same final map/size.
>>
>> So – the obvious answer is that it isn’t using the CPU to
>> render/re-render, but rather spending it on something else –
>> I/O most likely – eg: a network request, disk I/O, SQL query?
>>
>> The previous person working on it tried turning on debug at
>> various levels – but unfortunately that made it even slower,
>> making it tricky to answer “what is making it slow when debug
>> is turned off?”
>>
>> My first instinct was to try an strace and nothing was
>> obvious. Next up – a flame graph from strace, and/or trying
>> dtrace – but my understanding is that dtrace is a little weak
>> on RHEL/CentOS/Amazon Linux 6.0 **and** I’m not particularly
>> good at that. Also, we’re using fcgi, so attaching to the
>> correct process is a bit tricky.
>>
>> My next instinct was to look at release notes and see if the
>> current stable has anything fixes/improvements that directly
>> address this – there aren’t any that are obvious to my eyes,
>> but you developers have been busy! So many things! Including
>> some performance fixes and one “significant” performance fix.
>>
>> Current config file:
>>
>> AddHandler fcgid-script fcgi
>>
>> FcgidIPCDir /var/run/mod_fcgid
>>
>> FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm
>>
>> FcgidMaxProcesses 10
>>
>> FcgidMaxProcessesPerClass 10
>>
>> FcgidMaxRequestInMem 196608
>>
>> FcgidInitialEnv PROJ_LIB /usr/share/proj
>>
>> FcgidInitialEnv LD_LIBRARY_PATH
>> "/usr/local/lib:/usr/pgsql-9.1/lib"
>>
>> So – suggestions for my next move? I currently plan to take a
>> quick swing at building 7.6 for RHEL 6.0, knowing there might
>> be old libraries and whatnot that make that a non-starter. Of
>> course – we’ve got other infra running on this same instance,
>> so upgrading everything is a much bigger task.
>>
>> Strace flame graph?
>>
>> Stretch and try dtrace?
>>
>> A better way to use debug?
>>
>> Something else I’m missing – eg: differences between the
>> image types that make them perform so differently?
>>
>> Thanks,
>>
>> Paul
>>
>> _______________________________________________
>>
>> mapserver-users mailing list
>>
>> mapserver-users at lists.osgeo.org <mailto:mapserver-users at lists.osgeo.org>
>>
>> https://lists.osgeo.org/mailman/listinfo/mapserver-users
>>
>>
>>
>> _______________________________________________
>>
>> mapserver-users mailing list
>>
>> mapserver-users at lists.osgeo.org <mailto:mapserver-users at lists.osgeo.org>
>>
>> https://lists.osgeo.org/mailman/listinfo/mapserver-users
>>
>>
>> _______________________________________________
>> mapserver-users mailing list
>> mapserver-users at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/mapserver-users
>
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/mapserver-users
>
--
Daniel Morissette
Mapgears Inc
T: +1 418-696-5056 #201
More information about the MapServer-users
mailing list