My experience with SQLite is that it is significantly slower than a disk based cache. My guess is this is related to how mapcache structures the transaction and inserts into the sqlitedb. It appears that the mapcache creates a transaction based on the <metatile> defined in the config, if the metatile is set to 5 5, mapcache will create a transaction with 25 inserts per process. Problems seem to arise when multiple threads / processes attempt to concurrently seed the cache and are backlogged / waiting due to a transaction in progress. Disk cache appear to be only limited based on disk io.
On Wed, 17 Oct 2018 at 08:47, Sebastiano Laini < sebastiano.la...@buchanancomputing.co.uk> wrote: > This is my cache setup > > > > <cache name="cache_sqlite" type="sqlite3"> > > > <dbfile>/var/www/path…./maps/cache/{tileset}/{grid}/{z}/{x}-{y}.sqlite3</dbfile> > > <xcount>10000</xcount> > > <ycount>10000</ycount> > > <pragma name="max_page_count">1573741823</pragma> > > </cache> > > > > <grid name="bcgrid"> > > <metadata> > > <title>this is a custom grid I made up for > an example</title> > > </metadata> > > <srs>EPSG:27700</srs> > > <size>128 128</size> > > <extent>0 0 700000 1250000</extent> > > <resolutions>70 28 14 7 6.16 2.8 1.4 0.7 0.28 0.14 0.07</resolutions> > > </grid> > > > > <tileset name="bccache"> > > <source>bcmaps</source> > > <cache>cache_sqlite</cache> > > <grid>bcgrid</grid> > > <format>JPEG</format> > > <metatile>4 4</metatile> > > <metabuffer>0</metabuffer> > > <expires>31536000</expires> > > </tileset> > > > > > > Sebastiano Laini > > Web Developer > > Buchanan Computing > > 227 Shepherds Bush Road London W6 7AS > > 020 8846 3220 > > > > Web: http://www.BuchananComputing.co.uk > <http://www.buchanancomputing.co.uk/> > > For general or urgent enquiries please write to: > *supp...@buchanancomputing.co.uk > <supp...@buchanancomputing.co.uk>* > > > > Buchanan Computing Ltd. Registered at the above office, no. 3274424 > (England & Wales) > > > > This message is intended solely for the individual/entity to whom it is > addressed. It may contain confidential or legally privileged information. > Any unauthorised disclosure or copying is prohibited and my be unlawful. > If you have received this communication in error, please notify the sender > immediately and delete it from your system. > > > > *From:* Sebastiano Laini > *Sent:* 17 October 2018 13:39 > *To:* 'mapserver-users@lists.osgeo.org' <mapserver-users@lists.osgeo.org> > *Cc:* 'Rahkonen Jukka (MML)' <jukka.rahko...@maanmittauslaitos.fi> > *Subject:* RE: mapcache fastcgi > > > > Hi, > > > > It appears in both ways, when I’m seeding and when is requested from a > pre-seeded cache, today I can’t because I need to move the dev domain in > another server but tomorrow I will pass you the link to the 2 cache so you > can see the difference. > > > > Tonight I will let it seed the whole area. > > > > The cache is on a normal HDD, I think all out servers are 10000 RPM, and > the test was done on a brand new server so the disk is new. > > > > Sebastiano Laini > > Web Developer > > Buchanan Computing > > *From:* Rahkonen Jukka (MML) [mailto:jukka.rahko...@maanmittauslaitos.fi > <jukka.rahko...@maanmittauslaitos.fi>] > *Sent:* 17 October 2018 13:35 > *To:* Sebastiano Laini <sebastiano.la...@buchanancomputing.co.uk>; ' > mapserver-users@lists.osgeo.org' <mapserver-users@lists.osgeo.org> > *Subject:* RE: mapcache fastcgi > > > > Hi, > > > > In which way does the slowness appear? Is it when seeding or when serving > from a pre-seeded cache? Can you give metrics about the difference in speed? > > > > In this comparison the differences were rather small > http://blog.sogeo.services/blog/2016/07/01/mapcache-disk-vs-sqlite.html > > > > Also by the documentation the speed should be only “a bit slower” > > > > The SQLite based caches are a bit slower than the disk based caches, and > may have write-locking issues at seed time if a high number of threads all > try to insert new tiles concurrently. > > > > You wrote that SQLite cache is very slow for you which makes me think that > there is something sub-optimal in your installation. First thing to check > is if the SQLite database is on a fast disk. > If SQLite cache is slow then MBTiles cache should be slow as well but I > would make a test to be sure. > > > > -Jukka Rahkonen- > > > > > > *Lähettäjä:* Sebastiano Laini [ > mailto:sebastiano.la...@buchanancomputing.co.uk > <sebastiano.la...@buchanancomputing.co.uk>] > *Lähetetty:* 17. lokakuuta 2018 15:00 > *Vastaanottaja:* 'mapserver-users@lists.osgeo.org' < > mapserver-users@lists.osgeo.org> > *Kopio:* Rahkonen Jukka (MML) <jukka.rahko...@maanmittauslaitos.fi> > *Aihe:* RE: mapcache fastcgi > > > > Is there a way to improve the speed and match the speed of the sqLite3 > cache with the disk one? > > > > We have 80 websites connected to MapCache and when I tried the sqLite3 I > was testing it just on one website and on a complete different server with > nothing in it. > > > > Sebastiano Laini > > Web Developer > > Buchanan Computing > > *From:* Sebastiano Laini > *Sent:* 17 October 2018 12:43 > *To:* 'mapserver-users@lists.osgeo.org' <mapserver-users@lists.osgeo.org> > *Cc:* 'Rahkonen Jukka (MML)' <jukka.rahko...@maanmittauslaitos.fi> > *Subject:* RE: mapcache fastcgi > > > > Still it redirect you to that link, and btw it seems that mapcache can be > used also as a fastCGI. > > > > > https://mapserver.org/mapcache/install.html#cgi-fastcgi-specific-instructions > > > > Though is true that I’m reading now in the CMaker Builder section > > > > MapCache can run as a FastCGI executable. Note that the overhead of > FastCGI is non-negligible with respect to the throughput you may obtain > with a native Apache module. The FastCGI build is less tested, and may lag > behind the Apache module version on some minor details. YMMV. > > > > Sebastiano Laini > > Web Developer > > Buchanan Computing > > > > *From:* Rahkonen Jukka (MML) [mailto:jukka.rahko...@maanmittauslaitos.fi > <jukka.rahko...@maanmittauslaitos.fi>] > *Sent:* 17 October 2018 12:39 > *To:* Sebastiano Laini <sebastiano.la...@buchanancomputing.co.uk>; ' > mapserver-users@lists.osgeo.org' <mapserver-users@lists.osgeo.org> > *Subject:* VS: mapcache fastcgi > > > > Hi, > > > > That documentation is about Mapserver, Mapcache is another software. It > does belong to the same Mapserver but is not the same. > > > > MapCache is documented here: > https://mapserver.org/mapcache/index.html#mapcache > > > > -Jukka Rahkonen- > > > > *Lähettäjä:* Sebastiano Laini [ > mailto:sebastiano.la...@buchanancomputing.co.uk > <sebastiano.la...@buchanancomputing.co.uk>] > *Lähetetty:* 17. lokakuuta 2018 14:33 > *Vastaanottaja:* 'mapserver-users@lists.osgeo.org' < > mapserver-users@lists.osgeo.org> > *Kopio:* Rahkonen Jukka (MML) <jukka.rahko...@maanmittauslaitos.fi> > *Aihe:* RE: mapcache fastcgi > > > > Well, for what I can read in the documentation of mapserver: > > https://mapserver.org/optimization/fastcgi.html > > FastCGI is a protocol for keeping cgi-bin style web applications running > as a daemon to take advantage of preserving memory caches, and amortizing > other high startup costs (like heavy database connections) over many > requests. > > > > It seems that using mapcache as fastCGI over apache modules it that should > improve speed also. > > > > Sebastiano Laini > > Web Developer > > Buchanan Computing > > > > *From:* Rahkonen Jukka (MML) [mailto:jukka.rahko...@maanmittauslaitos.fi > <jukka.rahko...@maanmittauslaitos.fi>] > *Sent:* 17 October 2018 12:30 > *To:* Sebastiano Laini <sebastiano.la...@buchanancomputing.co.uk>; ' > mapserver-users@lists.osgeo.org' <mapserver-users@lists.osgeo.org> > *Subject:* Re: mapcache fastcgi > > > > Hi, > > > > Could you explain your plan with some more details? What I have understood > is that you have experienced that SQLite cache is slower than disk cache in > your environment. > > > > What I do not understand is what you are going to reach by running > Mapcache as fastcgi instead of running it as Apache module which should be > the faster option, and if this has some connection with the SQLite cache > vs. disk cache comparison. Do you guess that fastcgi woud make SQLite cache > faster? > > > > -Jukka Rahkonen- > > > > > > *Lähettäjä:* mapserver-users [ > mailto:mapserver-users-boun...@lists.osgeo.org > <mapserver-users-boun...@lists.osgeo.org>] *Puolesta *Sebastiano Laini > *Lähetetty:* 17. lokakuuta 2018 12:16 > *Vastaanottaja:* 'mapserver-users@lists.osgeo.org' < > mapserver-users@lists.osgeo.org> > *Aihe:* [mapserver-users] mapcache fastcgi > > > > Hi all, > > > > In the end I tried MapCache with sqlite3 cache but it’s very slow compared > with the disk cache, so I want to setup MapCache with fastCGI on CentOS 7. > > > > I don’t understand what I need to install as the fastCGI link in the > documentation is broken and I don’t know if is up to date. > > > > I already have apache fgcid installed from default in the httpd folder and > I use PHP in fastCGI in all the domains, so I’m sure that fastCGI it works, > though, I still need the fastCGI library? How can I install it in CentOS 7? > > > > In my apache conf I’ve already added the lines to load the mapcache module > and the mapcache.xml file > > > > LoadModule mapcache_module modules/mod_mapcache.so > > > > <IfModule mapcache_module> > > <Directory /path/to/directory> > > Require all granted > > </Directory> > > MapCacheAlias /mapcache "/path/to/directory/mapcache.xml" > > </IfModule> > > > > > > I need to leave the previous configuration and add these new lines in the > conf files? > > > > FcgidInitialEnv "MAPCACHE_CONFIG_FILE" "/path/to/mapcache/mapcache.xml > > > > <IfModule mod_fcgid.c> > > IPCCommTimeout 120 > > MaxProcessCount 10 > > FcgidInitialEnv "MAPCACHE_CONFIG_FILE" "/path/to/mapcache/mapcache.xml" > > <Location /map.fcgi> > > Order Allow,Deny > > Allow from all > > SetHandler fcgid-script > > </Location> > > ScriptAlias /map.fcgi "/path/to/mapcache/src/mapcache" > > </IfModule> > > > > > > And then instead of http://myserver/mapcache I need to use > http://myserver/fcgi-bin to access mapcache fcgi? > > > > Regards, > > > > Sebastiano Laini > > Web Developer > > Buchanan Computing > _______________________________________________ > 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