cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric E. Meyer" <eric.meyer.coc...@quoininc.com>
Subject Re: Cocoon Performance Woes, Is it flow? I don't know!
Date Sat, 19 Mar 2005 22:00:51 GMT
Eric E. Meyer wrote:

> Sylvain Wallez wrote:
>
>> Eric E. Meyer wrote:
>>
>>> Also, for curiosity, I re-ran the tests with the embedded form in 
>>> the search results page removed. That had a positive impact on 
>>> performance:
>>>
>>> With refine-search form:
>>>
>>> users overall home  search1 search2 search3  detail  total
>>>      avg ms  page                                   num reqs
>>>
>>> 10      486    208      637    588     644     355    500
>>> 20     1704    378     2684   1837    2875     745    500
>>> 30     3725    682     5987   4626    6270    1059    450
>>> 40    19461   1411    36021  23089   34726    2059    600
>>> 50    72942   3213   130482  90993  131666    8356    500
>>>
>>> Without refine-search form:
>>> 10     645     518      646    725     711     627    500
>>> 20     800     266     1116    963    1024     629    500
>>> 30    2539     634     4451   3003    3908     698    450
>>> 40    4716    1430     6936   4829    8040    2347    600
>>> 50    7978    1328    13063   8669   14122    2710    500
>>
>>
>>
>>
>> The difference is impressive. Do I read well that it's 10 times 
>> faster with 50 users without forms? How are the parallel users defined?
>
>
> Using JMeter, 50 threads each requesting the five pages in sequence - 
> with an approximately 3 second wait time between page requests. 
> Looking with Ethereal, I can seen that the client is not using 
> cookies, and that each thread appears to have it's own keep-alive 
> connection.
>
> Note that flow is used even in the case when I removed the 
> refine-search form, as the top-level configuration of the search based 
> upon the URL is done by some flowscript that ultimately calls 
> cocoon.sendPage() to serve the results page. That second pipeline 
> normally has top-level flow to create and bind the refine search form, 
> and that's what I removed.
>
>> Execution of a flowscript is synchronized on the global variable 
>> scope, which is bound to the session. Although this shouldn't be a 
>> problem in real world as a single user is not very likely to send 
>> parallel requests, you should verify that your load testing engine 
>> uses different sessions (or no session at all) for the simulated 
>> concurrent users. That may explain these numbers.
>>
So could there be contention in this scenario:
the top-level sitemap match for /luxury_hotels/**/*.html invokes 
flowscript which sets some request and session parameters and then calls 
cocoon.sendPage("/find_luxury_hotels/hotelSearchResults_1.html"). The 
match for /find_luxury_hotels/hotelSearchResults_*.html in a separate 
mounted sub-sitemap calls flowscript which pulls somethings out of the 
request and session and uses CForms to create and bind the refine search 
form, ultimately calling form.showForm with a xhtml template that 
presents the search results page with the embedded form xincluded.

Regards,
Eric

Mime
View raw message