Re: mapcache seed speed optimization

Sebastiano Laini <[email protected]> Fri, 8 Nov 2019 14:30:26 +0000
Newsgroups gmane.comp.gis.mapserver.user
Message-ID <f990b13955834c9eb3b1d79b5bc4a2cf@BCExchange.BuchananComputing.co.uk>
--===============3248099636586610893==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_f990b13955834c9eb3b1d79b5bc4a2cfBCExchangeBuchananCompu_"

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

My MapServer is on the same server as MapCache and my network is pretty fas=
t.

I was just trying to experiment with the -n and -p value and checking the C=
PU load and I didn't seen any difference, but now that I read the responses=
 I'm trying -n 6 and the CPU and the RAM is more in use now and seems to se=
ed faster than before. I reach that numbers because the last time I was see=
ding with -n 10 was incredibly slow so I started to increase the numbers.

Now in HTOP I can actually see 6 mapcache processes and not just 2

Sadly to seed the whole UK in disk cache we run out of inodes, I would like=
 to use SSD.

About our data we use a mix of everything, here the final result https://ww=
w.buchananmapping.co.uk/

We use raster, vector and tab files; the reason I can't move out from mapse=
rver are mainly the mapinfo tables (tab), possibly those tab files are the =
slowest layers
Even though some of the vector layers are very huge, some of them the data =
is about 21GB.

I'll try to debug layer by layer through MapServer and strip down to the mi=
nimum or replace some layers.

Lastly, the last time I've tried to seed the whole UK it took me more than =
a month and I simply stop it because was unacceptable to seed 7 levels of r=
esolutions 70, 28, 14, 7, 2.8, 1.4, 0.7 that correspond to these scales 250=
0, 5000, 10000, 25000, 50000, 100000, 250000, 500000

Sebastiano Laini
Web Developer

From: Rahkonen Jukka (MML) [mailto:[email protected]]
Sent: 08 November 2019 14:02
To: Sebastiano Laini <[email protected]>; 'mapserver=
[email protected]' <[email protected]>
Subject: Re: mapcache seed speed optimization

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]<m=
ailto:[email protected]>> Puolesta Sebastiano Laini
L=E4hetetty: perjantai 8. marraskuuta 2019 14.35
Vastaanottaja: '[email protected]' <[email protected]=
eo.org<mailto:[email protected]>>
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_f990b13955834c9eb3b1d79b5bc4a2cfBCExchangeBuchananCompu_
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:x=3D"urn:schemas-microsoft-com:office:excel" xmlns:m=3D"http://schema=
s.microsoft.com/office/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html=
40">
<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;}
p
	{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;}
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.EmailStyle20
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.EmailStyle21
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.EmailStyle22
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
.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"EN-GB" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">My MapServer is on the=
 same server as MapCache and my network is pretty fast.<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">I was just trying to e=
xperiment with the &#8211;n and &#8211;p value and checking the CPU load an=
d I didn&#8217;t seen any difference, but now that I read the responses I&#=
8217;m trying &#8211;n 6 and the CPU and the RAM is more in use now
 and seems to seed faster than before. I reach that numbers because the las=
t time I was seeding with &#8211;n 10 was incredibly slow so I started to i=
ncrease the numbers.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Now in HTOP I can actu=
ally see 6 mapcache processes and not just 2<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Sadly to seed the whol=
e UK in disk cache we run out of inodes, I would like to use SSD.<o:p></o:p=
></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">About our data we use =
a mix of everything, here the final result
</span><a href=3D"https://www.buchananmapping.co.uk/">https://www.buchananm=
apping.co.uk/</a><span style=3D"color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">We use raster, vector =
and tab files; the reason I can&#8217;t move out from mapserver are mainly =
the mapinfo tables (tab), possibly those tab files are the slowest layers<o=
:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Even though some of th=
e vector layers are very huge, some of them the data is about 21GB.<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">I&#8217;ll try to debu=
g layer by layer through MapServer and strip down to the minimum or replace=
 some layers.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Lastly, the last time =
I&#8217;ve tried to seed the whole UK it took me more than a month and I si=
mply stop it because was unacceptable to seed 7 levels of resolutions 70, 2=
8, 14, 7, 2.8, 1.4, 0.7 that correspond to
 these scales 2500, 5000, 10000, 25000, 50000, 100000, 250000, 500000<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-GB">Sebastiano Laini<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-GB">Web Developer<o:p></o:p></span></p>
</div>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></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 lang=3D"EN-US" style=3D"mso-fareast-languag=
e:EN-GB">From:</span></b><span lang=3D"EN-US" style=3D"mso-fareast-language=
:EN-GB"> Rahkonen Jukka (MML) [mailto:[email protected]]
<br>
<b>Sent:</b> 08 November 2019 14:02<br>
<b>To:</b> Sebastiano Laini &lt;[email protected]&gt=
;; '[email protected]' &lt;[email protected]&gt=
;<br>
<b>Subject:</b> Re: 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"FI">Hi,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FI"><o:p>&nbsp;</o:p></span></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
</span><a href=3D"https://sqlite.org/lockingv3.html"><span lang=3D"EN-US">h=
ttps://sqlite.org/lockingv3.html</span></a><span lang=3D"EN-US">. Seeding w=
ith 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 writing 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 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>=
<a href=3D"https://github.com/mapserver/mapcache/issues/169">https://github=
.com/mapserver/mapcache/issues/169</a> the latest comment is from a Mpaserv=
er developer and their last words &#8220;<span lang=3D"EN-US" style=3D"font=
-size:10.5pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:#24292E;back=
ground: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 lang=3D"FI" style=3D"mso-fareast-language:F=
I">L=E4hett=E4j=E4:</span></b><span lang=3D"FI" style=3D"mso-fareast-langua=
ge:FI"> mapserver-users &lt;</span><a href=3D"mailto:mapserver-users-bounce=
[email protected]"><span lang=3D"FI" style=3D"mso-fareast-language:FI">maps=
[email protected]</span></a><span lang=3D"FI" style=3D"ms=
o-fareast-language:FI">&gt;
<b>Puolesta </b>Sebastiano Laini<br>
<b>L=E4hetetty:</b> perjantai 8. marraskuuta 2019 14.35<br>
<b>Vastaanottaja:</b> '[email protected]' &lt;</span><a href=
=3D"mailto:[email protected]"><span lang=3D"FI" style=3D"mso-=
fareast-language:FI">[email protected]</span></a><span lang=
=3D"FI" style=3D"mso-fareast-language:FI">&gt;<br>
<b>Aihe:</b> [mapserver-users] mapcache seed speed optimization<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"FI"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal">Hi all,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">I&#8217;m evaluating new stacks but seems that I&#82=
17;m stuck with mapserver and mapcache due to the input source of our maps,=
 so I&#8217;m trying to improve the speed of the mapserver/mapcache stack a=
nd what I cannot improve is the seed speed.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The &#8211;n and &#8211;p parameters seems to be use=
less.<o:p></o:p></p>
<p style=3D"line-height:18.0pt;background:white"><strong><span style=3D"fon=
t-size:9.5pt;font-family:&quot;Arial&quot;,sans-serif;color:#3E4349">-n | &=
#8211;nthreads</span></strong><span style=3D"font-size:9.5pt;font-family:&q=
uot;Arial&quot;,sans-serif;color:#3E4349">: number of parallel threads
 that should be used to request tiles from the WMS source. The default is 1=
, but can be set higher if the WMS server can withstand parallel requests. =
(As a rule of thumb, the value chosen here should 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 style=3D"fon=
t-size:9.5pt;font-family:&quot;Arial&quot;,sans-serif;color:#3E4349">-p | &=
#8211;nprocesses</span></strong><span 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">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 mak=
e it use more power and speed up the seed process.<o:p></o:p></p>
<p class=3D"MsoNormal">Max memory used is 470MB between Centos 7 (with all =
the services running) and the seed process.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">I&#8217;ve setup apache to use HTT/2 and it make qui=
te a difference when the cache is already seeded but during the seed proces=
s doesn&#8217;t seems to be affected.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">My MapServer build is:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><code><span style=3D"font-size:10.0pt">./configure \=
</span></code><code><span lang=3D"FI" style=3D"font-size:10.0pt"><o:p></o:p=
></span></code></p>
<p class=3D"MsoNormal"><code><span 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 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 style=3D"font-size:10.0pt">--with-wfscli=
ent \<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span style=3D"font-size:10.0pt">--with-wmscli=
ent \<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span style=3D"font-size:10.0pt">--with-wfs \<=
o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span style=3D"font-size:10.0pt">--enable-debu=
g \<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span style=3D"font-size:10.0pt">--with-curl-c=
onfig=3D/usr/bin/curl-config \<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span style=3D"font-size:10.0pt">--with-proj \=
<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span style=3D"font-size:10.0pt">--with-jpeg \=
<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span style=3D"font-size:10.0pt">--with-freety=
pe \<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span style=3D"font-size:10.0pt">--with-postgi=
s=3D/usr/pgsql-9.3/bin/pg_config \<o:p></o:p></span></code></p>
<p class=3D"MsoNormal"><code><span 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"><span lang=3D"FI"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal">I know there is mapserver 7 and yet I&#8217;m using =
6 for the test.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">While the MapCache is: <o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">cmake&nbsp;&nbsp; -DCMAKE_PREFIX_PATH=3D&quot;/usr/b=
in/sqlite3&quot; \<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -DWITH_SQ=
LITE=3D1 \<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -DWITH_BE=
RKELEY_DB=3D0 \<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -DWITH_TI=
FF=3D0 \<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -DWITH_GE=
OTIFF=3D0 \<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -DWITH_FC=
GI=3D0 \<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -DWITH_PC=
RE=3D0 \<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -DWITH_PI=
XMAN=3D1 \<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -DWITH_OG=
R=3D1 \<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -DWITH_GE=
OS=3D1 \<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ../=
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">MapCache is the latest version and this is my mapcac=
he.xml file, we use sqlite as a cache method<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp; &lt;cache name=3D&quot;cache_sqlite&quot; typ=
e=3D&quot;sqlite3&quot;&gt;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp; &lt;dbfile&gt;/home/www/html/maps/cache/{tile=
set}/{grid}/{z}/{x}-{y}.sqlite3&lt;/dbfile&gt;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp; &lt;xcount&gt;10000&lt;/xcount&gt;<o:p></o:p>=
</p>
<p class=3D"MsoNormal">&nbsp; &lt;ycount&gt;10000&lt;/ycount&gt;<o:p></o:p>=
</p>
<p class=3D"MsoNormal">&nbsp; &lt;pragma name=3D&quot;max_page_count&quot;&=
gt;1573741823&lt;/pragma&gt;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp; &lt;/cache&gt;<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp; &lt;tileset name=3D&quot;bccache&quot;&gt;<o:=
p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; &lt;source&gt;bcmaps&lt;/source&g=
t;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; &lt;cache&gt;cache_sqlite&lt;/cac=
he&gt;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; &lt;grid&gt;bcgrid&lt;/grid&gt;<o=
:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; &lt;format&gt;PNG&lt;/format&gt;<=
o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; &lt;metatile&gt;16 16&lt;/metatil=
e&gt;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; &lt;metabuffer&gt;0&lt;/metabuffe=
r&gt;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; &lt;expires&gt;2628000&lt;/expire=
s&gt;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp; &lt;/tileset&gt;<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp; &lt;grid name=3D&quot;bcgrid&quot;&gt;<o:p></=
o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;metadata&gt;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;BC custom grid&lt;/title&gt;<=
o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/metadata&gt;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;srs&gt;EPSG:27700&lt;/srs&gt;<o:p></o:=
p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;size&gt;256 256&lt;/size&gt;<o:p></o:p=
></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;extent&gt;0 0 700000 1250000&lt;/exten=
t&gt;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&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></p>
<p class=3D"MsoNormal">&nbsp; &lt;/grid&gt;<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp; &lt;format name=3D&quot;mypng&quot; type=3D&q=
uot;PNG&quot;&gt;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;compression&gt;best&lt;/compression&gt=
;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp; &lt;/format&gt;<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp; &lt;service type=3D&quot;wms&quot; enabled=3D=
&quot;true&quot;&gt;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; &lt;full_wms&gt;assemble&lt;/full=
_wms&gt;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; &lt;resample_mode&gt;bilinear&lt;=
/resample_mode&gt;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; &lt;format&gt;mypng&lt;/format&gt=
;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; &lt;maxsize&gt;4096&lt;/maxsize&g=
t;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp; &lt;/service&gt;<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">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></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">How can I improve the seed process?<o:p></o:p></p>
<p class=3D"MsoNormal">Should I increase the maxsize and metatile to reques=
ts more tiles and cache faster?<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Regards,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-GB">Sebastiano Laini<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-GB">Web Developer<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D;mso-fareast-language:EN=
-GB">Buchanan Computing<o:p></o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_f990b13955834c9eb3b1d79b5bc4a2cfBCExchangeBuchananCompu_--

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

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbWFwc2VydmVy
LXVzZXJzIG1haWxpbmcgbGlzdAptYXBzZXJ2ZXItdXNlcnNAbGlzdHMub3NnZW8ub3JnCmh0dHBz
Oi8vbGlzdHMub3NnZW8ub3JnL21haWxtYW4vbGlzdGluZm8vbWFwc2VydmVyLXVzZXJz

--===============3248099636586610893==--