Re: [QGIS-Developer] [Server] Is QGIS Server 3 fast yet ? the 2018-02-06

2018-02-12 Thread Yves Jacolin
Hello,

One tells me that Camptocamp had wrote a proposition about performance
issue with PNG format. I will ask to Patrick if he can do more
performance profiling and if this proposition is still up to date.
Unfortunately not before next 2 weeks :(

Y.


Le 09/02/2018 à 14:54, Yves Jacolin a écrit :
> Hello all,
>
> Thanks René-Luc for this first analysis and all other for your though.
> Here some informations :)
>
> First I won't be at Madeira and this is the 2nd hackfest I missed in one
> year. That's a pity but I have a onsite trip for a customer each French
> holiday.
>
> But, I think Camptocamp has some R on QGIS performance so I will check
> this afternoon's meeting how we can start this. Performance improvement
> could be either analyze QGIS, add new test (GetFeatureInfo, etc.).
>
> René-Luc, could you open a ticket (if not already did) about any changes
> you think valuable?!
>
> Y.
>
>
>
> Le 08/02/2018 à 19:41, René-Luc Dhont a écrit :
>> Hi Régis
>>
>> Le 08/02/2018 à 17:12, Régis Haubourg a écrit :
>>> Hi René Luc,
>>> thanks a lot for starting that analysis!
>>>
>>> Do you plan to be in Madeira? Elaborating a complete test suite
>>> together would be perfectly fitted for that task .
>> I could not be in Madeira. But we can discuss about perf test suite.
>>
>>> Some questions:
>>>
>>> - Trust option is only there to not query datasource when this one
>>> has no metadata for PK and extent. So it should only make sense to
>>> compare the first getcapabilities or project load with and without
>>> trust option. Other following requests should not have any impact, so
>>> we need to make sure the platform is not measuring something else in
>>> the differences you note. So I don't see what you mean by
>>> "completing" the trust option. Can you be more explicit ?
>> Trust option can be usefull with Apache. When you use QGIS Server with
>> Apache, the QGIS Server processes are regularly reset. So the QGIS
>> Server cache is regularly cleaned, and the project is regularly
>> reloaded. So the trust option can affect all the request not only
>> GetCapabilities.
>> So the average time request is affected by trust option, but I was
>> thinking that this option make QGIS Server 3 faster at all scale and
>> it's not the case for high scale.
>> I have open an issue to request min,max, median requests time to have
>> an idea of the time needed to load project.
>>
>>> - Is the test  platform requesting wms layer groups, and did you test
>>> the multithread rendering? How many cores? How many cores really
>>> available when testing?
>> The platform requesting layers, not layer groups and multithreading
>> rendering has been activated. the environnment variables are:
>>     QGIS_SERVER_PARALLEL_RENDERING: "true"
>>    QGIS_SERVER_MAX_THREADS: 8
>>
>>> I think we should first elaborate a common reference test suite and
>>> couple a system monitoring at the same time to be sure we don't have
>>> external noise in the tests, and find system bottlenecks. Then only
>>> we can consider some conclusions over development priorities I think.
>> The platform provided by camptomcamp is a good start and some
>> enhancement has been already opened :
>> * test GetCapabilties
>> * test GetFeatureInfo
>> * test with labels
>>
>> And we have multi options to test:
>> * with and without multithreading
>> * with and without local simplification (for postgres)
>> * with and without data projection (here form EPSG:4326 to EPSG:3857)
>>
>> And we have other server configuration to test
>> * Nginx/Supervisor
>> * Embedding QGIS Server in Tornado or other Python server
>>
>>> Many thanks !
>>>
>>> Régis
>>>
>>>
>> Regards,
>> René-Luc
>>
>> ___
>> QGIS-Developer mailing list
>> QGIS-Developer@lists.osgeo.org
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

-- 
http://yjacolin.gloobe.org


___
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Re: [QGIS-Developer] [Server] Is QGIS Server 3 fast yet ? the 2018-02-06

2018-02-08 Thread Nyall Dawson
On 9 February 2018 at 03:29, Saber Razmjooei
 wrote:
> I think the performance could be related to this:
> https://issues.qgis.org/issues/17809
>

I spent some time today looking into this issue. The end result was
https://github.com/qgis/QGIS/pull/6300, but it's mostly
micro-optimisations and definitely not of the order of 50% like the
report describes.

I can only think it's a speed regression somewhere in Qt itself...

Nyall
___
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Re: [QGIS-Developer] [Server] Is QGIS Server 3 fast yet ? the 2018-02-06

2018-02-08 Thread Martin Dobias
Hi Rene-Luc

On Thu, Feb 8, 2018 at 7:58 PM, René-Luc Dhont  wrote:
>
> The problem with Apache is that the QGIS Server processes are regularly
> reset. So the QGIS Server cache is regularly cleaned, and the project is
> regularly reloaded. So the project is not loading every time a request is
> being made but some time.

Any idea why the QGIS processes are regularly reset? mod_fcgi has
config option FcgidMaxRequestsPerProcess that terminates FastCGI
process after processing certain number of requests, but that should
be zero (= disabled) by default. Then there is FcgidProcessLifeTime
option which is set to 1 hour by default, so it should not really
affect the tests.

Or is it possible that the processes crash sometimes and that is why
they are restarted?

Cheers
Martin
___
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Re: [QGIS-Developer] [Server] Is QGIS Server 3 fast yet ? the 2018-02-06

2018-02-08 Thread René-Luc Dhont

Hi Andreas,

The problem with Apache is that the QGIS Server processes are regularly 
reset. So the QGIS Server cache is regularly cleaned, and the project is 
regularly reloaded. So the project is not loading every time a request 
is being made but some time.


I have opened an issue to have min, max and median requests time to have 
a better idea of the performances. But I have no skill in SCALA and 
Gatling to propose a PR.


It will be great to test other Web Server like Nginx/Supervisor or 
Tornado embedding QGIS Server.


Regards,
René-Luc

Le 08/02/2018 à 15:59, Andreas Neumann a écrit :


Hi René Luc,

Good points. I also had a look at these stats and was disappointed.

So I agree that it would be worth-wile working on improving the 
performance of QGIS server version 3.


On the QgsProject loading performance issue: is this only an issue at 
the first loading of the project or every time a request is being made?


Definitely I would welcome a submission at the next round of QGIS 
grants to further study the issues and improve perfomance were possible.


Thanks for your thoughts,

Andreas

On 2018-02-08 15:19, René-Luc Dhont wrote:


Hi Devs,

I have made some analyse of the performances data generated by 
CampToCamp test platform.
The data are downloadable here 
https://gmf-test.sig.cloud.camptocamp.net/ms_perfs/
And the tests are based on this docker-pull: 
https://github.com/camptocamp/ms_perfs


The QGIS Server docker used for these tests are based on the Kartoza 
one updated by CampToCamp
https://github.com/kartoza/docker-qgis-server It is based on Apache 
Server and FCGI.


The data comes from OpenStreetMap and are stored in a 
PostgreSQL/PostGIS database.
One type of request is tested, GetMap. Varoious number of 
simultaneous users and various scale

are tested.

To give an answer to the question : Is QGIS Server 3 fast yet ? , I 
only used the values for 10 simultaneous

users.

If the reference to the question is QGIS Server 2: QGIS Server 3 is 
NOT faster even with the trust option activated in the project.
QGIS Server 3 is always slower than QGIS Server 2, when only one 
layer is requested.
In the tests, QGIS Sever 3 is faster than QGIS Server 2 with 
multi-layers and complex styles.


This result can be easily explain by the new way QGIS Server is 
loaded project. QGIS Server 3 uses the QgsProject class, so all the
project : layers and layouts are loaded even if only one layer is 
requested.


About the trust project option, the results are a little bit 
disappointing. The performances are not always better than without.
For higher scale (1° by 800px), requests are slower, but for lower 
scale (0.015625° by 800px), they are faster.


Now if we consired GeoServer-jai as a reference, QGIS Server 3 is 
slower in lower sacle (0.03125° by 800px)

Now if we consired Mapserver as a reference, QGIS Server 3 is slower!

We have to test some configuration:
* disable simplify local
* change simplify max scale

Points of enhancement have to be explored :
* Faster QgsProject loading based on project parsing
* Simplify configuration at layer level
* Completing trust option

Regards,
René-Luc
* Enhance simplification

___
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org 
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer





___
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Re: [QGIS-Developer] [Server] Is QGIS Server 3 fast yet ? the 2018-02-06

2018-02-08 Thread René-Luc Dhont

Hi Régis

Le 08/02/2018 à 17:12, Régis Haubourg a écrit :

Hi René Luc,
thanks a lot for starting that analysis!

Do you plan to be in Madeira? Elaborating a complete test suite 
together would be perfectly fitted for that task .


I could not be in Madeira. But we can discuss about perf test suite.



Some questions:

- Trust option is only there to not query datasource when this one has 
no metadata for PK and extent. So it should only make sense to compare 
the first getcapabilities or project load with and without trust 
option. Other following requests should not have any impact, so we 
need to make sure the platform is not measuring something else in the 
differences you note. So I don't see what you mean by "completing" the 
trust option. Can you be more explicit ?


Trust option can be usefull with Apache. When you use QGIS Server with 
Apache, the QGIS Server processes are regularly reset. So the QGIS 
Server cache is regularly cleaned, and the project is regularly 
reloaded. So the trust option can affect all the request not only 
GetCapabilities.
So the average time request is affected by trust option, but I was 
thinking that this option make QGIS Server 3 faster at all scale and 
it's not the case for high scale.
I have open an issue to request min,max, median requests time to have an 
idea of the time needed to load project.




- Is the test  platform requesting wms layer groups, and did you test 
the multithread rendering? How many cores? How many cores really 
available when testing?


The platform requesting layers, not layer groups and multithreading 
rendering has been activated. the environnment variables are:

    QGIS_SERVER_PARALLEL_RENDERING: "true"
   QGIS_SERVER_MAX_THREADS: 8



I think we should first elaborate a common reference test suite and 
couple a system monitoring at the same time to be sure we don't have 
external noise in the tests, and find system bottlenecks. Then only we 
can consider some conclusions over development priorities I think.


The platform provided by camptomcamp is a good start and some 
enhancement has been already opened :

* test GetCapabilties
* test GetFeatureInfo
* test with labels

And we have multi options to test:
* with and without multithreading
* with and without local simplification (for postgres)
* with and without data projection (here form EPSG:4326 to EPSG:3857)

And we have other server configuration to test
* Nginx/Supervisor
* Embedding QGIS Server in Tornado or other Python server



Many thanks !

Régis




Regards,
René-Luc

___
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Re: [QGIS-Developer] [Server] Is QGIS Server 3 fast yet ? the 2018-02-06

2018-02-08 Thread Saber Razmjooei
I think the performance could be related to this:
https://issues.qgis.org/issues/17809

Regards
Saber

On 8 Feb 2018 16:34, "Paolo Cavallini"  wrote:

Hi all,

Il 08/02/2018 15:59, Andreas Neumann ha scritto:

> Definitely I would welcome a submission at the next round of QGIS grants
> to further study the issues and improve perfomance were possible.

+1
merci René
--
Paolo Cavallini - www.faunalia.eu
QGIS & PostGIS courses: http://www.faunalia.eu/training.html
https://www.google.com/trends/explore?date=all=IT=qgis,arcgis
___
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
___
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Re: [QGIS-Developer] [Server] Is QGIS Server 3 fast yet ? the 2018-02-06

2018-02-08 Thread Régis Haubourg
Hi René Luc,
thanks a lot for starting that analysis!

Do you plan to be in Madeira? Elaborating a complete test suite together
would be perfectly fitted for that task .

Some questions:

- Trust option is only there to not query datasource when this one has no
metadata for PK and extent. So it should only make sense to compare the
first getcapabilities or project load with and without trust option. Other
following requests should not have any impact, so we need to make sure the
platform is not measuring something else in the differences you note. So I
don't see what you mean by "completing" the trust option. Can you be more
explicit ?

- Is the test  platform requesting wms layer groups, and did you test the
multithread rendering? How many cores? How many cores really available when
testing?

I think we should first elaborate a common reference test suite and couple
a system monitoring at the same time to be sure we don't have external
noise in the tests, and find system bottlenecks. Then only we can consider
some conclusions over development priorities I think.

Many thanks !

Régis




2018-02-08 15:19 GMT+01:00 René-Luc Dhont :

> Hi Devs,
>
> I have made some analyse of the performances data generated by CampToCamp
> test platform.
> The data are downloadable here https://gmf-test.sig.cloud.
> camptocamp.net/ms_perfs/
> And the tests are based on this docker-pull:
> https://github.com/camptocamp/ms_perfs
>
> The QGIS Server docker used for these tests are based on the Kartoza one
> updated by CampToCamp
> https://github.com/kartoza/docker-qgis-server It is based on Apache
> Server and FCGI.
>
> The data comes from OpenStreetMap and are stored in a PostgreSQL/PostGIS
> database.
> One type of request is tested, GetMap. Varoious number of simultaneous
> users and various scale
> are tested.
>
> To give an answer to the question : Is QGIS Server 3 fast yet ? , I only
> used the values for 10 simultaneous
> users.
>
> If the reference to the question is QGIS Server 2: QGIS Server 3 is NOT
> faster even with the trust option activated in the project.
> QGIS Server 3 is always slower than QGIS Server 2, when only one layer is
> requested.
> In the tests, QGIS Sever 3 is faster than QGIS Server 2 with multi-layers
> and complex styles.
>
> This result can be easily explain by the new way QGIS Server is loaded
> project. QGIS Server 3 uses the QgsProject class, so all the
> project : layers and layouts are loaded even if only one layer is
> requested.
>
> About the trust project option, the results are a little bit disappointing.
> The performances are not always better than without.
> For higher scale (1° by 800px), requests are slower, but for lower scale (
> 0.015625° by 800px), they are faster.
>
> Now if we consired GeoServer-jai as a reference, QGIS Server 3 is slower
> in lower sacle (0.03125° by 800px)
> Now if we consired Mapserver as a reference, QGIS Server 3 is slower!
>
> We have to test some configuration:
> * disable simplify local
> * change simplify max scale
>
> Points of enhancement have to be explored :
> * Faster QgsProject loading based on project parsing
> * Simplify configuration at layer level
> * Completing trust option
>
> Regards,
> René-Luc
> * Enhance simplification
>
> ___
> QGIS-Developer mailing list
> QGIS-Developer@lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>
___
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Re: [QGIS-Developer] [Server] Is QGIS Server 3 fast yet ? the 2018-02-06

2018-02-08 Thread Andreas Neumann
Hi René Luc, 

Good points. I also had a look at these stats and was disappointed. 

So I agree that it would be worth-wile working on improving the
performance of QGIS server version 3. 

On the QgsProject loading performance issue: is this only an issue at
the first loading of the project or every time a request is being made? 

Definitely I would welcome a submission at the next round of QGIS grants
to further study the issues and improve perfomance were possible. 

Thanks for your thoughts, 

Andreas 

On 2018-02-08 15:19, René-Luc Dhont wrote:

> Hi Devs,
> 
> I have made some analyse of the performances data generated by CampToCamp 
> test platform.
> The data are downloadable here 
> https://gmf-test.sig.cloud.camptocamp.net/ms_perfs/
> And the tests are based on this docker-pull: 
> https://github.com/camptocamp/ms_perfs
> 
> The QGIS Server docker used for these tests are based on the Kartoza one 
> updated by CampToCamp
> https://github.com/kartoza/docker-qgis-server It is based on Apache Server 
> and FCGI.
> 
> The data comes from OpenStreetMap and are stored in a PostgreSQL/PostGIS 
> database.
> One type of request is tested, GetMap. Varoious number of simultaneous users 
> and various scale 
> are tested.
> 
> To give an answer to the question : Is QGIS Server 3 fast yet ? , I only used 
> the values for 10 simultaneous
> users.
> 
> If the reference to the question is QGIS Server 2: QGIS Server 3 is NOT 
> faster even with the trust option activated in the project.
> QGIS Server 3 is always slower than QGIS Server 2, when only one layer is 
> requested.
> In the tests, QGIS Sever 3 is faster than QGIS Server 2 with multi-layers and 
> complex styles.
> 
> This result can be easily explain by the new way QGIS Server is loaded 
> project. QGIS Server 3 uses the QgsProject class, so all the 
> project : layers and layouts are loaded even if only one layer is requested.
> 
> About the trust project option, the results are a little bit disappointing. 
> The performances are not always better than without.
> For higher scale (1° by 800px), requests are slower, but for lower scale 
> (0.015625° by 800px), they are faster.
> 
> Now if we consired GeoServer-jai as a reference, QGIS Server 3 is slower in 
> lower sacle (0.03125° by 800px)
> Now if we consired Mapserver as a reference, QGIS Server 3 is slower!
> 
> We have to test some configuration:
> * disable simplify local
> * change simplify max scale
> 
> Points of enhancement have to be explored :
> * Faster QgsProject loading based on project parsing 
> * Simplify configuration at layer level
> * Completing trust option
> 
> Regards,
> René-Luc
> * Enhance simplification
> 
> ___
> QGIS-Developer mailing list
> QGIS-Developer@lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer___
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer