Re: mapcache seed speed optimization

"Rahkonen Jukka (MML)" <[email protected]> Fri, 8 Nov 2019 14:01:55 +0000
Newsgroups gmane.comp.gis.mapserver.user
Message-ID <[email protected]>
--===============0264405163454573288==
Content-Language: fi-FI
Content-Type: multipart/alternative;
	boundary="_000_46b48dd679e44694879379dd76211e8cC119S212VM042msvyvivaha_"

--_000_46b48dd679e44694879379dd76211e8cC119S212VM042msvyvivaha_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi,

When you seed tiles from WMS the slowest component is usually the WMS serve=
r. And what the WMS server is spending its time is usually rendering. And w=
hat makes rendering slow is usually that you render too much, and sometimes=
 that WMS server gets the vector data too slow because the backend data sou=
rce is slow, very often because it has poor indexes which do not for suit t=
he queries that WMS server is
sending.

If you have a slow WMS you can't get more speed out of it by bombing it wit=
h very many parallel threads. I would have a try if using 2-4, perhaps 8 th=
reads makes seeding faster but if there is no difference I would concentrat=
e on the WMS configuration. BTW. why did you
select to use 20000 threads?

I am not sure why you see just 1 core running on 100% load. I guess that yo=
u are now running WMS and MapCache on the same computer. Mapserver program =
is using only 1 core but http server should start more processes for parall=
el requests. That CPU load is at 100% is generally a good thing because it =
tells that CPU is working, instead of waiting data from a slow disk. Anothe=
r thing is that CPU may be doing something heavy and stupid.

Myself I would start by gathering  some information about how Mapserver WMS=
 is working be setting "DEBUG 2" on each layer or for the whole mapfile. By=
 looking at the rendering times of each layer the slowest layers can be fou=
nd and then it is time to think about how to make those layers faster.

You wrote that you use SQLite cache so it would be good to know that SQLite=
 database does not support parallel writes https://sqlite.org/lockingv3.htm=
l. Seeding with a few parallel threads may increase the speed if the WMS is=
 the slowest part in your chain but when you have saturated the SQLite writ=
ing speed adding threads will do no good. If you have optimized your WMS so=
 well that SQLite sets the limits then you should test other cache alternat=
ives. I guess that file cache would be faster to seed from multiple threads=
.

When is comes to ticket https://github.com/mapserver/mapcache/issues/169 th=
e latest comment is from a Mpaserver developer and their last words "I woul=
dn't mind helping to fix if there were interested parties..." feel rather p=
olite to me.

-Jukka Rahkonen-




L=E4hett=E4j=E4: mapserver-users <[email protected]> =
Puolesta Sebastiano Laini
L=E4hetetty: perjantai 8. marraskuuta 2019 14.35
Vastaanottaja: '[email protected]' <[email protected]=
eo.org>
Aihe: [mapserver-users] mapcache seed speed optimization

Hi all,

I'm evaluating new stacks but seems that I'm stuck with mapserver and mapca=
che due to the input source of our maps, so I'm trying to improve the speed=
 of the mapserver/mapcache stack and what I cannot improve is the seed spee=
d.

The -n and -p parameters seems to be useless.

-n | -nthreads: number of parallel threads that should be used to request t=
iles from the WMS source. The default is 1, but can be set higher if the WM=
S server can withstand parallel requests. (As a rule of thumb, the value ch=
osen here should never be much higher than the number of CPUs on the WMS se=
rver.)

-p | -nprocesses: number of parallel processes that should be used to reque=
st tiles from the WMS source.
I've tried to use -n 20000 and -p 60000 but for some reason the CPU load is=
 max 100% in 1 core, no way to make it use more power and speed up the seed=
 process.
Max memory used is 470MB between Centos 7 (with all the services running) a=
nd the seed process.

I've setup apache to use HTT/2 and it make quite a difference when the cach=
e is already seeded but during the seed process doesn't seems to be affecte=
d.

My MapServer build is:

./configure \
--with-ogr=3D/usr/local/bin/gdal-config \
--with-gdal=3D/usr/local/bin/gdal-config \
--with-wfsclient \
--with-wmsclient \
--with-wfs \
--enable-debug \
--with-curl-config=3D/usr/bin/curl-config \
--with-proj \
--with-jpeg \
--with-freetype \
--with-postgis=3D/usr/pgsql-9.3/bin/pg_config \
--with-geos=3D/usr/local/bin/geos-config

I know there is mapserver 7 and yet I'm using 6 for the test.

While the MapCache is:

cmake   -DCMAKE_PREFIX_PATH=3D"/usr/bin/sqlite3" \
        -DWITH_SQLITE=3D1 \
        -DWITH_BERKELEY_DB=3D0 \
        -DWITH_TIFF=3D0 \
        -DWITH_GEOTIFF=3D0 \
        -DWITH_FCGI=3D0 \
        -DWITH_PCRE=3D0 \
        -DWITH_PIXMAN=3D1 \
        -DWITH_OGR=3D1 \
        -DWITH_GEOS=3D1 \
         ../

MapCache is the latest version and this is my mapcache.xml file, we use sql=
ite as a cache method

  <cache name=3D"cache_sqlite" type=3D"sqlite3">
  <dbfile>/home/www/html/maps/cache/{tileset}/{grid}/{z}/{x}-{y}.sqlite3</d=
bfile>
  <xcount>10000</xcount>
  <ycount>10000</ycount>
  <pragma name=3D"max_page_count">1573741823</pragma>
  </cache>

  <tileset name=3D"bccache">
    <source>bcmaps</source>
    <cache>cache_sqlite</cache>
    <grid>bcgrid</grid>
    <format>PNG</format>
    <metatile>16 16</metatile>
    <metabuffer>0</metabuffer>
    <expires>2628000</expires>
  </tileset>

  <grid name=3D"bcgrid">
               <metadata>
               <title>BC custom grid</title>
               </metadata>
               <srs>EPSG:27700</srs>
               <size>256 256</size>
               <extent>0 0 700000 1250000</extent>
               <resolutions>70 28 14 7 2.8 1.4 0.7</resolutions>
  </grid>

  <format name=3D"mypng" type=3D"PNG">
               <compression>best</compression>
  </format>

  <service type=3D"wms" enabled=3D"true">
    <full_wms>assemble</full_wms>
    <resample_mode>bilinear</resample_mode>
    <format>mypng</format>
    <maxsize>4096</maxsize>
  </service>

I've also tried to use -DWITH_MAPSERVER but seems that the integration is n=
ot working and they doen't care? https://github.com/mapserver/mapcache/issu=
es/169 this issue was open 2 years ago and still open, not even a reply fro=
m the developers.

How can I improve the seed process?
Should I increase the maxsize and metatile to requests more tiles and cache=
 faster?

Regards,

Sebastiano Laini
Web Developer
Buchanan Computing


--_000_46b48dd679e44694879379dd76211e8cC119S212VM042msvyvivaha_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:"Segoe UI";
	panose-1:2 11 5 2 4 2 4 2 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
code
	{mso-style-priority:99;
	font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-style-priority:99;
	mso-margin-top-alt:auto;
	margin-right:0cm;
	mso-margin-bottom-alt:auto;
	margin-left:0cm;
	font-size:12.0pt;
	font-family:"Times New Roman",serif;}
span.Shkpostityyli20
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.Shkpostityyli22
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"FI" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Hi,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">When you seed tiles from WMS th=
e slowest component is usually the WMS server. And what the WMS server is s=
pending its time is usually rendering. And what makes rendering slow is usu=
ally that you render too much, and sometimes
 that WMS server gets the vector data too slow because the backend data sou=
rce is slow, very often because it has poor indexes which do not for suit t=
he queries that WMS server is
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">sending.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">If you have a slow WMS you can&=
#8217;t get more speed out of it by bombing it with very many parallel thre=
ads. I would have a try if using 2-4, perhaps 8 threads makes seeding faste=
r but if there is no difference I would concentrate
 on the WMS configuration. BTW. why did you <o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">select to use 20000 threads?<o:=
p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">I am not sure why you see just =
1 core running on 100% load. I guess that you are now running WMS and MapCa=
che on the same computer. Mapserver program is using only 1 core but http s=
erver should start more processes for
 parallel requests. That CPU load is at 100% is generally a good thing beca=
use it tells that CPU is working, instead of waiting data from a slow disk.=
 Another thing is that CPU may be doing something heavy and stupid.<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Myself I would start by gatheri=
ng &nbsp;some information about how Mapserver WMS is working be setting &#8=
220;DEBUG 2&#8221; on each layer or for the whole mapfile. By looking at th=
e rendering times of each layer the slowest layers can
 be found and then it is time to think about how to make those layers faste=
r.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">You wrote that you use SQLite c=
ache so it would be good to know that SQLite database does not support para=
llel writes
<a href=3D"https://sqlite.org/lockingv3.html">https://sqlite.org/lockingv3.=
html</a>. Seeding with a few parallel threads may increase the speed if the=
 WMS is the slowest part in your chain but when you have saturated the SQLi=
te writing speed adding threads will
 do no good. If you have optimized your WMS so well that SQLite sets the li=
mits then you should test other cache alternatives. I guess that file cache=
 would be faster to seed from multiple threads.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">When is comes to ticket </span>=
<span lang=3D"EN-GB"><a href=3D"https://github.com/mapserver/mapcache/issue=
s/169">https://github.com/mapserver/mapcache/issues/169</a> the latest comm=
ent is from a Mpaserver developer and their
 last words &#8220;</span><span lang=3D"EN-US" style=3D"font-size:10.5pt;fo=
nt-family:&quot;Segoe UI&quot;,sans-serif;color:#24292E;background:white">I=
 wouldn't mind helping to fix if there were interested parties...&#8221; fe=
el rather polite to me.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.5pt;font-=
family:&quot;Segoe UI&quot;,sans-serif;color:#24292E;background:white"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.5pt;font-=
family:&quot;Segoe UI&quot;,sans-serif;color:#24292E;background:white">-Juk=
ka Rahkonen-</span><span lang=3D"EN-US"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"mso-fareast-language:FI">L=E4hett=
=E4j=E4:</span></b><span style=3D"mso-fareast-language:FI"> mapserver-users=
 &lt;[email protected]&gt;
<b>Puolesta </b>Sebastiano Laini<br>
<b>L=E4hetetty:</b> perjantai 8. marraskuuta 2019 14.35<br>
<b>Vastaanottaja:</b> '[email protected]' &lt;mapserver-users=
@lists.osgeo.org&gt;<br>
<b>Aihe:</b> [mapserver-users] mapcache seed speed optimization<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Hi all,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">I&#8217;m evaluating new stacks=
 but seems that I&#8217;m stuck with mapserver and mapcache due to the inpu=
t source of our maps, so I&#8217;m trying to improve the speed of the mapse=
rver/mapcache stack and what I cannot improve is the seed
 speed.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">The &#8211;n and &#8211;p param=
eters seems to be useless.<o:p></o:p></span></p>
<p style=3D"line-height:18.0pt;background:white"><strong><span lang=3D"EN-G=
B" style=3D"font-size:9.5pt;font-family:&quot;Arial&quot;,sans-serif;color:=
#3E4349">-n | &#8211;nthreads</span></strong><span lang=3D"EN-GB" style=3D"=
font-size:9.5pt;font-family:&quot;Arial&quot;,sans-serif;color:#3E4349">:
 number of parallel threads that should be used to request tiles from the W=
MS source. The default is 1, but can be set higher if the WMS server can wi=
thstand parallel requests. (As a rule of thumb, the value chosen here shoul=
d never be much higher than the
 number of CPUs on the WMS server.)<o:p></o:p></span></p>
<p style=3D"line-height:18.0pt;background:white"><strong><span lang=3D"EN-G=
B" style=3D"font-size:9.5pt;font-family:&quot;Arial&quot;,sans-serif;color:=
#3E4349">-p | &#8211;nprocesses</span></strong><span lang=3D"EN-GB" style=
=3D"font-size:9.5pt;font-family:&quot;Arial&quot;,sans-serif;color:#3E4349"=
>:
 number of parallel processes that should be used to request tiles from the=
 WMS source.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">I&#8217;ve tried to use &#8211;=
n 20000 and &#8211;p 60000 but for some reason the CPU load is max 100% in =
1 core, no way to make it use more power and speed up the seed process.<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Max memory used is 470MB betwee=
n Centos 7 (with all the services running) and the seed process.<o:p></o:p>=
</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">I&#8217;ve setup apache to use =
HTT/2 and it make quite a difference when the cache is already seeded but d=
uring the seed process doesn&#8217;t seems to be affected.<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">My MapServer build is:<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><code><span lang=3D"EN-GB" style=3D"font-size:10.0pt=
">./configure \</span></code><code><span style=3D"font-size:10.0pt"><o:p></=
o:p></span></code></p>
<p class=3D"MsoNormal"><code><span lang=3D"EN-GB" style=3D"font-size:10.0pt=
">--with-ogr=3D/usr/local/bin/gdal-config \<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span lang=3D"EN-GB" style=3D"font-size:10.0pt=
">--with-gdal=3D/usr/local/bin/gdal-config \<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span lang=3D"EN-GB" style=3D"font-size:10.0pt=
">--with-wfsclient \<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span lang=3D"EN-GB" style=3D"font-size:10.0pt=
">--with-wmsclient \<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span lang=3D"EN-GB" style=3D"font-size:10.0pt=
">--with-wfs \<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span lang=3D"EN-GB" style=3D"font-size:10.0pt=
">--enable-debug \<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span lang=3D"EN-GB" style=3D"font-size:10.0pt=
">--with-curl-config=3D/usr/bin/curl-config \<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span lang=3D"EN-GB" style=3D"font-size:10.0pt=
">--with-proj \<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span lang=3D"EN-GB" style=3D"font-size:10.0pt=
">--with-jpeg \<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span lang=3D"EN-GB" style=3D"font-size:10.0pt=
">--with-freetype \<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span lang=3D"EN-GB" style=3D"font-size:10.0pt=
">--with-postgis=3D/usr/pgsql-9.3/bin/pg_config \<o:p></o:p></span></code><=
/p>
<p class=3D"MsoNormal"><code><span lang=3D"EN-GB" style=3D"font-size:10.0pt=
">--with-geos=3D/usr/local/bin/geos-config<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">I know there is mapserver 7 and=
 yet I&#8217;m using 6 for the test.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">While the MapCache is: <o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">cmake&nbsp;&nbsp; -DCMAKE_PREFI=
X_PATH=3D&quot;/usr/bin/sqlite3&quot; \<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; -DWITH_SQLITE=3D1 \<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; -DWITH_BERKELEY_DB=3D0 \<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; -DWITH_TIFF=3D0 \<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; -DWITH_GEOTIFF=3D0 \<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; -DWITH_FCGI=3D0 \<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; -DWITH_PCRE=3D0 \<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; -DWITH_PIXMAN=3D1 \<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; -DWITH_OGR=3D1 \<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; -DWITH_GEOS=3D1 \<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; ../<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">MapCache is the latest version =
and this is my mapcache.xml file, we use sqlite as a cache method<o:p></o:p=
></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp; &lt;cache name=3D&quot;c=
ache_sqlite&quot; type=3D&quot;sqlite3&quot;&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp; &lt;dbfile&gt;/home/www/=
html/maps/cache/{tileset}/{grid}/{z}/{x}-{y}.sqlite3&lt;/dbfile&gt;<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp; &lt;xcount&gt;10000&lt;/=
xcount&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp; &lt;ycount&gt;10000&lt;/=
ycount&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp; &lt;pragma name=3D&quot;=
max_page_count&quot;&gt;1573741823&lt;/pragma&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp; &lt;/cache&gt;<o:p></o:p=
></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp; &lt;tileset name=3D&quot=
;bccache&quot;&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp; &lt;source&g=
t;bcmaps&lt;/source&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp; &lt;cache&gt=
;cache_sqlite&lt;/cache&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp; &lt;grid&gt;=
bcgrid&lt;/grid&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp; &lt;format&g=
t;PNG&lt;/format&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp; &lt;metatile=
&gt;16 16&lt;/metatile&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp; &lt;metabuff=
er&gt;0&lt;/metabuffer&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp; &lt;expires&=
gt;2628000&lt;/expires&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp; &lt;/tileset&gt;<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp; &lt;grid name=3D&quot;bc=
grid&quot;&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;metadata&gt;<o:p>=
</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;BC custo=
m grid&lt;/title&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/metadata&gt;<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;srs&gt;EPSG:27700=
&lt;/srs&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;size&gt;256 256&l=
t;/size&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;extent&gt;0 0 700=
000 1250000&lt;/extent&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;resolutions&gt;70=
 28 14 7 2.8 1.4 0.7&lt;/resolutions&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp; &lt;/grid&gt;<o:p></o:p>=
</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp; &lt;format name=3D&quot;=
mypng&quot; type=3D&quot;PNG&quot;&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;compression&gt;be=
st&lt;/compression&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp; &lt;/format&gt;<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp; &lt;service type=3D&quot=
;wms&quot; enabled=3D&quot;true&quot;&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp; &lt;full_wms=
&gt;assemble&lt;/full_wms&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp; &lt;resample=
_mode&gt;bilinear&lt;/resample_mode&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp; &lt;format&g=
t;mypng&lt;/format&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp;&nbsp;&nbsp; &lt;maxsize&=
gt;4096&lt;/maxsize&gt;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">&nbsp; &lt;/service&gt;<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">I&#8217;ve also tried to use &#=
8211;DWITH_MAPSERVER but seems that the integration is not working and they=
 doen&#8217;t care?
<a href=3D"https://github.com/mapserver/mapcache/issues/169">https://github=
.com/mapserver/mapcache/issues/169</a> this issue was open 2 years ago and =
still open, not even a reply from the developers.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">How can I improve the seed proc=
ess?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Should I increase the maxsize a=
nd metatile to requests more tiles and cache faster?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Regards,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:#1F497D;mso-fare=
ast-language:EN-GB">Sebastiano Laini<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:#1F497D;mso-fare=
ast-language:EN-GB">Web Developer<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:#1F497D;mso-fare=
ast-language:EN-GB">Buchanan Computing<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB"><o:p>&nbsp;</o:p></span></p>
</div>
</body>
</html>

--_000_46b48dd679e44694879379dd76211e8cC119S212VM042msvyvivaha_--

--===============0264405163454573288==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbWFwc2VydmVy
LXVzZXJzIG1haWxpbmcgbGlzdAptYXBzZXJ2ZXItdXNlcnNAbGlzdHMub3NnZW8ub3JnCmh0dHBz
Oi8vbGlzdHMub3NnZW8ub3JnL21haWxtYW4vbGlzdGluZm8vbWFwc2VydmVyLXVzZXJz

--===============0264405163454573288==--