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-boun...@lists.osgeo.org> on behalf of Stephen Woodbridge <stephenwoodbridg...@gmail.com>
*Date: *Wednesday, July 22, 2020 at 19:53
*To: *"mapserver-users@lists.osgeo.org" <mapserver-users@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 &quot;map&quot; 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@lists.osgeo.org  
<mailto:mapserver-users@lists.osgeo.org>

        https://lists.osgeo.org/mailman/listinfo/mapserver-users



    _______________________________________________

    mapserver-users mailing list

    mapserver-users@lists.osgeo.org  <mailto:mapserver-users@lists.osgeo.org>

    https://lists.osgeo.org/mailman/listinfo/mapserver-users


_______________________________________________
mapserver-users mailing list
mapserver-users@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/mapserver-users
_______________________________________________
mapserver-users mailing list
mapserver-users@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to