Sebastjan Trepca | 9 Aug 10:12

Performance/Scalability tips

Hi all!

We're starting a new project that will be quite big (1-2 million users) so now I'm choosing a web framework to use.
It seems that Wicket is a very good framework but what worries me is the performance and scalability. I installed wicket-examples on my machine and stress-tested them a bit, just for curiosity, and always got OutOfMemory error which didn't look very promising. Then I read about detached models and created a project using them and it didn't crash anymore, but still, memory was quite high.
Now I searched thru wiki and didn't find any other tips about performance etc.

So, do you have any tips for me, on design level or maybe links to other docs, whatever really :)

Thank you, Sebastjan

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Gwyn Evans | 9 Aug 10:38

Re: Performance/Scalability tips

There's this on the subject that Martijn posted a little while ago,
http://www.nabble.com/Re%3A-Wicket-in-large-scale-production-scenarios--p5374359.html
but maybe someone on the list might have more comments.

The main technical issues are to ensure that you use detatched models
& to try & be careful that you're not inadvertantly holding references
to instances of things that might themselves hold large amounts of
data in your pages.  Of course, it's often not obvious that that's the
case.

I've not tried it myself for a long time, but maybe running the app
under a profiler would help to with checking this particular issue -
must try when I get some spare time...

/Gwyn

On 09/08/06, Sebastjan Trepca <trepca <at> gmail.com> wrote:
> Hi all!
>
> We're starting a new project that will be quite big (1-2 million users) so
> now I'm choosing a web framework to use.
> It seems that Wicket is a very good framework but what worries me is the
> performance and scalability. I installed wicket-examples on my machine and
> stress-tested them a bit, just for curiosity, and always got OutOfMemory
> error which didn't look very promising. Then I read about detached models
> and created a project using them and it didn't crash anymore, but still,
> memory was quite high.
> Now I searched thru wiki and didn't find any other tips about performance
> etc.
>
> So, do you have any tips for me, on design level or maybe links to other
> docs, whatever really :)
>
> Thank you, Sebastjan
>

--

-- 
Download Wicket 1.2.1 now! - http://wicketframework.org

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Johan Compagner | 9 Aug 11:39

Re: Performance/Scalability tips

I also stress tested the examples quite a lot.

Which part did you test that you get an out of memory? And how much memory did you give your server?

Memory usage can be cut down in several ways:

1> use for heavy hit pages stateless pages (in 1.2 just use bookmarkable links and no forms on it), in 2.0 you have much more choices for working stateless.
2> For none stateless pages, do use detachable models. Make sure that you don't hold large (db) objects in your pages when they are serialized to the http session.
3> Tweak how many of those pages should be in memory. (this depends on how far you want to go with the back button support)
       in 2.0 we have a different session store that only keeps 1 page in mem. And the rest is cached and stored to disk.

johan


On 8/9/06, Sebastjan Trepca <trepca <at> gmail.com> wrote:
Hi all!

We're starting a new project that will be quite big (1-2 million users) so now I'm choosing a web framework to use.
It seems that Wicket is a very good framework but what worries me is the performance and scalability. I installed wicket-examples on my machine and stress-tested them a bit, just for curiosity, and always got OutOfMemory error which didn't look very promising. Then I read about detached models and created a project using them and it didn't crash anymore, but still, memory was quite high.
Now I searched thru wiki and didn't find any other tips about performance etc.

So, do you have any tips for me, on design level or maybe links to other docs, whatever really :)

Thank you, Sebastjan

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

_______________________________________________
Wicket-user mailing list
Wicket-user <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Sebastjan Trepca | 9 Aug 13:39

Re: Performance/Scalability tips

I used the default resin3pro configuration. I tested it like this:
ab2 -n 1000 -c 100 http://localhost:8080/wicket-examples-1.2/repeater?wicket:bookmarkablePage=:wicket.examples.repeater.DataGridPage

It died after eating 100MB of memory and serving 600-800 requests*100 threads. The problem is also that the CPU was on 100%.

This version 2.0 sounds very nice, is it usable yet?

How can I set a page to be stateless in 1.2.1 ? Is there some attribute to do this or does it just mean that you use detachable models?

I would definetly like to handle sessions separately and have all my pages stateless. So forms are saved into sessions or what is the problem with them? They seem very nice though.

Thanks for help.

Sebastjan

On 8/9/06, Johan Compagner <jcompagner <at> gmail.com> wrote:
I also stress tested the examples quite a lot.

Which part did you test that you get an out of memory? And how much memory did you give your server?

Memory usage can be cut down in several ways:

1> use for heavy hit pages stateless pages (in 1.2 just use bookmarkable links and no forms on it), in 2.0 you have much more choices for working stateless.
2> For none stateless pages, do use detachable models. Make sure that you don't hold large (db) objects in your pages when they are serialized to the http session.
3> Tweak how many of those pages should be in memory. (this depends on how far you want to go with the back button support)
       in 2.0 we have a different session store that only keeps 1 page in mem. And the rest is cached and stored to disk.

johan


On 8/9/06, Sebastjan Trepca < trepca <at> gmail.com> wrote:
Hi all!

We're starting a new project that will be quite big (1-2 million users) so now I'm choosing a web framework to use.
It seems that Wicket is a very good framework but what worries me is the performance and scalability. I installed wicket-examples on my machine and stress-tested them a bit, just for curiosity, and always got OutOfMemory error which didn't look very promising. Then I read about detached models and created a project using them and it didn't crash anymore, but still, memory was quite high.
Now I searched thru wiki and didn't find any other tips about performance etc.

So, do you have any tips for me, on design level or maybe links to other docs, whatever really :)

Thank you, Sebastjan

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

_______________________________________________
Wicket-user mailing list
Wicket-user <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user




-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

_______________________________________________
Wicket-user mailing list
Wicket-user <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Johan Compagner | 9 Aug 14:46

Re: Performance/Scalability tips

What is ab2 for a thing?
It looks like you are 1000 times getting that same bookmarkable page for 100 threads?
That page is because of the source code viewer link not stateless so you a creating pages that will go into the sessions.
Now is the question does ab2 work with cookies or not? If not then it does create 100 * 1000 sessions and for all those it creates 1 page...

johan


On 8/9/06, Sebastjan Trepca <trepca <at> gmail.com> wrote:
I used the default resin3pro configuration. I tested it like this:
ab2 -n 1000 -c 100 http://localhost:8080/wicket-examples-1.2/repeater?wicket:bookmarkablePage=:wicket.examples.repeater.DataGridPage

It died after eating 100MB of memory and serving 600-800 requests*100 threads. The problem is also that the CPU was on 100%.

This version 2.0 sounds very nice, is it usable yet?

How can I set a page to be stateless in 1.2.1 ? Is there some attribute to do this or does it just mean that you use detachable models?

I would definetly like to handle sessions separately and have all my pages stateless. So forms are saved into sessions or what is the problem with them? They seem very nice though.

Thanks for help.

Sebastjan


On 8/9/06, Johan Compagner <jcompagner <at> gmail.com> wrote:
I also stress tested the examples quite a lot.

Which part did you test that you get an out of memory? And how much memory did you give your server?

Memory usage can be cut down in several ways:

1> use for heavy hit pages stateless pages (in 1.2 just use bookmarkable links and no forms on it), in 2.0 you have much more choices for working stateless.
2> For none stateless pages, do use detachable models. Make sure that you don't hold large (db) objects in your pages when they are serialized to the http session.
3> Tweak how many of those pages should be in memory. (this depends on how far you want to go with the back button support)
       in 2.0 we have a different session store that only keeps 1 page in mem. And the rest is cached and stored to disk.

johan


On 8/9/06, Sebastjan Trepca < trepca <at> gmail.com> wrote:
Hi all!

We're starting a new project that will be quite big (1-2 million users) so now I'm choosing a web framework to use.
It seems that Wicket is a very good framework but what worries me is the performance and scalability. I installed wicket-examples on my machine and stress-tested them a bit, just for curiosity, and always got OutOfMemory error which didn't look very promising. Then I read about detached models and created a project using them and it didn't crash anymore, but still, memory was quite high.
Now I searched thru wiki and didn't find any other tips about performance etc.

So, do you have any tips for me, on design level or maybe links to other docs, whatever really :)

Thank you, Sebastjan

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

_______________________________________________
Wicket-user mailing list
Wicket-user <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user




-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

_______________________________________________
Wicket-user mailing list
Wicket-user <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user




-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

_______________________________________________
Wicket-user mailing list
Wicket-user <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Gwyn Evans | 9 Aug 15:15

Re: Performance/Scalability tips

http://httpd.apache.org/docs/2.2/programs/ab.html

I think you're correct with the params, but I've no idea about the cookies.

I think that basic lesson is that the benchmark that was done is only
of use if the OP intended to be serving the Wicket-Examples app out at
that rate - otherwise a more representative web-app would be much
better!

/Gwyn

On 09/08/06, Johan Compagner <jcompagner <at> gmail.com> wrote:
> What is ab2 for a thing?
> It looks like you are 1000 times getting that same bookmarkable page for 100
> threads?
> That page is because of the source code viewer link not stateless so you a
> creating pages that will go into the sessions.
> Now is the question does ab2 work with cookies or not? If not then it does
> create 100 * 1000 sessions and for all those it creates 1 page...
>
>
> johan
>
>
> On 8/9/06, Sebastjan Trepca <trepca <at> gmail.com> wrote:
> >
> > I used the default resin3pro configuration. I tested it like this:
> > ab2 -n 1000 -c 100
> http://localhost:8080/wicket-examples-1.2/repeater?wicket:bookmarkablePage=:wicket.examples.repeater.DataGridPage
> >
> > It died after eating 100MB of memory and serving 600-800 requests*100
> threads. The problem is also that the CPU was on 100%.
> >
> > This version 2.0 sounds very nice, is it usable yet?
> >
> > How can I set a page to be stateless in 1.2.1 ? Is there some attribute to
> do this or does it just mean that you use detachable models?
> >
> > I would definetly like to handle sessions separately and have all my pages
> stateless. So forms are saved into sessions or what is the problem with
> them? They seem very nice though.
> >
> > Thanks for help.
> >
> >
> > Sebastjan
> >
> >
> >
> > On 8/9/06, Johan Compagner <jcompagner <at> gmail.com> wrote:
> > >
> > > I also stress tested the examples quite a lot.
> > >
> > > Which part did you test that you get an out of memory? And how much
> memory did you give your server?
> > >
> > > Memory usage can be cut down in several ways:
> > >
> > > 1> use for heavy hit pages stateless pages (in 1.2 just use bookmarkable
> links and no forms on it), in 2.0 you have much more choices for working
> stateless.
> > > 2> For none stateless pages, do use detachable models. Make sure that
> you don't hold large (db) objects in your pages when they are serialized to
> the http session.
> > > 3> Tweak how many of those pages should be in memory. (this depends on
> how far you want to go with the back button support)
> > >        in 2.0 we have a different session store that only keeps 1 page
> in mem. And the rest is cached and stored to disk.
> > >
> > >
> > > johan
> > >
> > >
> > >
> > >
> > >
> > > On 8/9/06, Sebastjan Trepca < trepca <at> gmail.com> wrote:
> > >
> > > >
> > >
> > >
> > > Hi all!
> > >
> > > We're starting a new project that will be quite big (1-2 million users)
> so now I'm choosing a web framework to use.
> > > It seems that Wicket is a very good framework but what worries me is the
> performance and scalability. I installed wicket-examples on my machine and
> stress-tested them a bit, just for curiosity, and always got OutOfMemory
> error which didn't look very promising. Then I read about detached models
> and created a project using them and it didn't crash anymore, but still,
> memory was quite high.
> > > Now I searched thru wiki and didn't find any other tips about
> performance etc.
> > >
> > > So, do you have any tips for me, on design level or maybe links to other
> docs, whatever really :)
> > >

--

-- 
Download Wicket 1.2.1 now! - http://wicketframework.org

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Sebastjan Trepca | 9 Aug 15:24

Re: Performance/Scalability tips

The cookies are not handled. Every request creates a new session.
I didn't say that this is a representative case for anything, just a
simple test that should not be taken very seriously and as I
mentioned, the webapp didn't crash when I used datachable models.

On 8/9/06, Gwyn Evans <gwyn.evans <at> gmail.com> wrote:
> http://httpd.apache.org/docs/2.2/programs/ab.html
>
> I think you're correct with the params, but I've no idea about the cookies.
>
> I think that basic lesson is that the benchmark that was done is only
> of use if the OP intended to be serving the Wicket-Examples app out at
> that rate - otherwise a more representative web-app would be much
> better!
>
> /Gwyn

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Matej Knopp | 9 Aug 15:06

Re: Performance/Scalability tips

Well.. ab2 is an apache benchmarking tool. But I'm under the impression 
that it's intended to measure the performance of static pages.

It doesn't use cookies, does it? If I recall correctly there should be a 
possibility to specify a cookie value there, so you might be able to 
reduce the number of created sessions somehow.

-Matej

Sebastjan Trepca wrote:
> I used the default resin3pro configuration. I tested it like this:
> ab2 -n 1000 -c 100 
>
http://localhost:8080/wicket-examples-1.2/repeater?wicket:bookmarkablePage=:wicket.examples.repeater.DataGridPage 
> <http://localhost:8080/wicket-examples-1.2/repeater?wicket:bookmarkablePage=:wicket.examples.repeater.DataGridPage>
> 
> It died after eating 100MB of memory and serving 600-800 requests*100 
> threads. The problem is also that the CPU was on 100%.
> 
> This version 2.0 sounds very nice, is it usable yet?
> 
> How can I set a page to be stateless in 1.2.1 ? Is there some attribute 
> to do this or does it just mean that you use detachable models?
> 
> I would definetly like to handle sessions separately and have all my 
> pages stateless. So forms are saved into sessions or what is the problem 
> with them? They seem very nice though.
> 
> Thanks for help.
> 
> Sebastjan
> 
> On 8/9/06, *Johan Compagner* <jcompagner <at> gmail.com 
> <mailto:jcompagner <at> gmail.com>> wrote:
> 
>     I also stress tested the examples quite a lot.
> 
>     Which part did you test that you get an out of memory? And how much
>     memory did you give your server?
> 
>     Memory usage can be cut down in several ways:
> 
>     1> use for heavy hit pages stateless pages (in 1.2 just use
>     bookmarkable links and no forms on it), in 2.0 you have much more
>     choices for working stateless.
>     2> For none stateless pages, do use detachable models. Make sure
>     that you don't hold large (db) objects in your pages when they are
>     serialized to the http session.
>     3> Tweak how many of those pages should be in memory. (this depends
>     on how far you want to go with the back button support)
>            in 2.0 we have a different session store that only keeps 1
>     page in mem. And the rest is cached and stored to disk.
> 
>     johan
> 
> 
>     On 8/9/06, *Sebastjan Trepca* < trepca <at> gmail.com
>     <mailto:trepca <at> gmail.com>> wrote:
> 
>     Hi all!
> 
>     We're starting a new project that will be quite big (1-2 million
>     users) so now I'm choosing a web framework to use.
>     It seems that Wicket is a very good framework but what worries me is
>     the performance and scalability. I installed wicket-examples on my
>     machine and stress-tested them a bit, just for curiosity, and always
>     got OutOfMemory error which didn't look very promising. Then I read
>     about detached models and created a project using them and it didn't
>     crash anymore, but still, memory was quite high.
>     Now I searched thru wiki and didn't find any other tips about
>     performance etc.
> 
>     So, do you have any tips for me, on design level or maybe links to
>     other docs, whatever really :)
> 
>     Thank you, Sebastjan
> 
>     -------------------------------------------------------------------------
>     Using Tomcat but need to do more? Need to support web services,
>     security?
>     Get stuff done quickly with pre-integrated technology to make your
>     job easier
>     Download IBM WebSphere Application Server v.1.0.1 based on Apache
>     Geronimo
>     http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>     <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642>
> 
>     _______________________________________________
>     Wicket-user mailing list
>     Wicket-user <at> lists.sourceforge.net
>     <mailto:Wicket-user <at> lists.sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/wicket-user
>     <https://lists.sourceforge.net/lists/listinfo/wicket-user>
> 
> 
> 
> 
>     -------------------------------------------------------------------------
>     Using Tomcat but need to do more? Need to support web services,
>     security?
>     Get stuff done quickly with pre-integrated technology to make your
>     job easier
>     Download IBM WebSphere Application Server v.1.0.1 based on Apache
>     Geronimo
>     http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>     <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642>
> 
>     _______________________________________________
>     Wicket-user mailing list
>     Wicket-user <at> lists.sourceforge.net
>     <mailto:Wicket-user <at> lists.sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/wicket-user
>     <https://lists.sourceforge.net/lists/listinfo/wicket-user>
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Wicket-user mailing list
> Wicket-user <at> lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Sebastjan Trepca | 9 Aug 15:20

Re: Performance/Scalability tips

> Well.. ab2 is an apache benchmarking tool. But I'm under the impression
> that it's intended to measure the performance of static pages.

Yep, it's mostly used for creating traffic. Just a basic test of
performance. The description of AB is:
ab is a tool for benchmarking your Apache Hypertext Transfer Protocol
(HTTP) server. It is designed to give you an impression of how your
current Apache installation performs. This especially shows you how
many requests per second your Apache installation is capable of
serving.

It sure seems that sessions are used heavily, but i knew that anyway,
from documentation.

I would just need some pointers about reimplementing session handling.

Sebastjan

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Juergen Donnerstag | 9 Aug 17:27

Re: Performance/Scalability tips

> It sure seems that sessions are used heavily, but i knew that anyway,
> from documentation.
>

I don't think that sessions are used heavily compared to other
web-apps. The difference is that Wicket does most of the Sessions
tasks for you and it is consistent whereas with Struts etc you end up
doing everything yourself. From my experience, many web-apps end up
with much worse session usage as it is a developers tasks compared to
a similar Wicket app. In Wicket, we try to keep the developer in
control, but most standard session use case are already in place.
Overall and IMO it makes Session handling and usage much saver in the
long run. I don't have hard figures, but I think that Wicket web apps
don't use more session memory than any other normal web-app (no matter
which framework) which implements the same business functionality. Of
course there are always well-tuned apps which do it better, but I
think Wicket does a decent job for most use cases.

Juergen

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Igor Vaynberg | 9 Aug 17:38

Re: Performance/Scalability tips

the advantage that wicket provides in session handling is that it evicts objects from it for you. what you had to put into a session in lets say a struts app to be accessed across requests you now put into a Page and pass references from page instance to page instance if it is needed across pages. now when those pages are evicted from session by wicket so is that object you stored. from what i have seen in a lot of non-wicket projects - the things are put into session, but are never removed so they stay in there until the session times out - and thats a huge waste. sometimes when there is a wizard the laste page of the wizard does the cleanup, but the user can start a wizard and then decide to move on to something else w/out pressing the cancel button - this is another common source of session leakage that does not effect wicket.

-Igor


On 8/9/06, Juergen Donnerstag <juergen.donnerstag <at> gmail.com> wrote:
> It sure seems that sessions are used heavily, but i knew that anyway,
> from documentation.
>

I don't think that sessions are used heavily compared to other
web-apps. The difference is that Wicket does most of the Sessions
tasks for you and it is consistent whereas with Struts etc you end up
doing everything yourself. From my experience, many web-apps end up
with much worse session usage as it is a developers tasks compared to
a similar Wicket app. In Wicket, we try to keep the developer in
control, but most standard session use case are already in place.
Overall and IMO it makes Session handling and usage much saver in the
long run. I don't have hard figures, but I think that Wicket web apps
don't use more session memory than any other normal web-app (no matter
which framework) which implements the same business functionality. Of
course there are always well-tuned apps which do it better, but I
think Wicket does a decent job for most use cases.

Juergen

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Wicket-user mailing list
Wicket-user <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Eelco Hillenius | 9 Aug 19:58

Re: Performance/Scalability tips

> It died after eating 100MB of memory and serving 600-800 requests*100
> threads.

That is probably because - like said elsewhere in this thread - a new
session was started for every request.

> The problem is also that the CPU was on 100%.

Hmm, that's interesting. We (or rather Johan and Jonathan) really
worked hard at making Wicket as efficient as possible. Even with the
whole object tree creation etc it should still perform very well. If
you find certain hotspots, please share.

> This version 2.0 sounds very nice, is it usable yet?

We're also planning on backporting those features from 2.0 to our
upcomming 1.3 release. All 1.2.x release are meant to be binary
compatible. 1.3. will have a couple of API breaks that will make new
functionality possible. When we release 1.3. it will probably be
immediately usable for production as it mainly consists of back ports.

You can use 2.0 - in fact we think 2.0 has a few things that makes it
a lot better than 1.x, but at this time we don't guarantee API
stability yet. But we plan on stabilize 2.0 in about 2 months, also
because of the fact that we are writing Wicket In Action for that
version.

> How can I set a page to be stateless in 1.2.1 ? Is there some attribute to
> do this or does it just mean that you use detachable models?

Stateless means the page isn't even stored in the session. We started
out implementing that automatically for pages that don't have any call
backs to themselves (Links, Forms, etc). So for 1.2, if you implement
all your functionality using bookmarkable pages and passing 'state'
using RequestParameters objects, you'll have hardly any session usage.
I say hardly here, because 1.2 still creates a session for each
client. Deferred session creation was implemented for 2.0 and is on
the list to be backported for 1.3. With this, you can write Wicket
applications that do not even create a session for a client ever.

Stateless pages for Wicket 2.0 is currently under heavy development.
>From an end-user's point of view, it will support the same use case I
mentioned above, and  in addition to that, you can even use forms and
links with stateless pages in 2.0.

I lost track myself of the status of the whole stateless business in
2.0, so I started a WIKI page here:
http://www.wicket-wiki.org.uk/wiki/index.php/Stateless_pages and I
hope someone else (specifically Johan and Matej) can finish that page.

There are several other ways to customize session usage too, btw. Most
notably tweaking the number of history items that are stored in the
session (IPageSettings#setMaxPageVersions), using a custom
ISessionStore (the default in 1.2 just stores everything in the
HttpSession object, but any other scheme is possible, including what
will probably the default in 2.0: a first level that stores pages in
the http session and a second level (for back button support) that
stores on disk).

Hope this helps.

Eelco

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Johan Compagner | 9 Aug 20:17

Re: Performance/Scalability tips


> The problem is also that the CPU was on 100%.

Hmm, that's interesting. We (or rather Johan and Jonathan) really
worked hard at making Wicket as efficient as possible. Even with the
whole object tree creation etc it should still perform very well. If
you find certain hotspots, please share.

I think this was just object creation and io overhead and the GC working on its top..
If you do everything in your local computer. And you do a test that does everything
just in mem (no data/db io) then the CPU will be the bottleneck so it should go to 100%
Where else can it go to?



Stateless pages for Wicket 2.0 is currently under heavy development.
>From an end-user's point of view, it will support the same use case I
mentioned above, and  in addition to that, you can even use forms and
links with stateless pages in 2.0.

But of course with some exceptions!
You can't rely on model data in the Link.onClick() method ofcourse because there
is not data. With forms most state is already pushed from the browser (the data you submit)
so for forms the onSubmit() it is almost as it was normally.


I lost track myself of the status of the whole stateless business in
2.0, so I started a WIKI page here:
http://www.wicket-wiki.org.uk/wiki/index.php/Stateless_pages and I
hope someone else (specifically Johan and Matej) can finish that page.

Matej! how nice that you are doing that! :)

johan
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Jean-Baptiste Quenot | 10 Aug 12:35

Re: Performance/Scalability tips

* Eelco Hillenius:

> > How can I set a page to be stateless in 1.2.1 ? Is there some attribute to
> > do this or does it just mean that you use detachable models?
> 
> Stateless means the page isn't even stored in the session. We started
> out implementing that automatically for pages that don't have any call
> backs to themselves (Links, Forms, etc). So for 1.2, if you implement
> all your functionality using bookmarkable pages and passing 'state'
> using RequestParameters objects, you'll have hardly any session usage.

Do you mean that setResponsePage(java.lang.Class) or
setResponsePage(java.lang.Class, PageParameters) should be used in
favour of setResponsePage(Page) when possible?
--

-- 
     Jean-Baptiste Quenot
aka  John Banana Qwerty
http://caraldi.com/jbq/

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Johan Compagner | 10 Aug 14:58

Re: Performance/Scalability tips

setResponsePage(Page) can be used just fine.
Except you have to do then setRedirect(false)
because if you redirect it (what is default when for example submitting a form)
then the page is statefull because it has to be there after the redirect so that we can render it.

johan


On 8/10/06, Jean-Baptiste Quenot <jbq <at> caraldi.com> wrote:
* Eelco Hillenius:

> > How can I set a page to be stateless in 1.2.1 ? Is there some attribute to
> > do this or does it just mean that you use detachable models?
>
> Stateless means the page isn't even stored in the session. We started
> out implementing that automatically for pages that don't have any call
> backs to themselves (Links, Forms, etc). So for 1.2, if you implement
> all your functionality using bookmarkable pages and passing 'state'
> using RequestParameters objects, you'll have hardly any session usage.

Do you mean that setResponsePage(java.lang.Class) or
setResponsePage(java.lang.Class, PageParameters) should be used in
favour of setResponsePage(Page) when possible?
--
     Jean-Baptiste Quenot
aka  John Banana Qwerty
http://caraldi.com/jbq/

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Wicket-user mailing list
Wicket-user <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Jean-Baptiste Quenot | 10 Aug 18:23

Re: Performance/Scalability tips

* Johan Compagner:

> setResponsePage(Page) can be used just fine.  Except you have to
> do then setRedirect(false)  because if you redirect  it (what is
> default when  for example  submitting a form)  then the  page is
> statefull because it has to be  there after the redirect so that
> we can render it.

Thanks for your helpful answer.

Shall I also  use BookmarkablePageLink instead of  PageLink when I
don't have any parameter to pass, or is it the same?
--

-- 
     Jean-Baptiste Quenot
aka  John Banana Qwerty
http://caraldi.com/jbq/

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Eelco Hillenius | 10 Aug 19:52

Re: Performance/Scalability tips

It's an optimization. So it depends on the kind of application you're
building whether you 'need' it. Typically, I'd consider using
bookmarkable pages for pages that have to be accessible regardless of
any session (e.g. a bookmark). You can code your whole app using
bookmarkable pages, but you will loose a lot of expressiveness of
Wicket by doing that.

In general, stateless pages are probably good for public facing sites
(or a public part of a site) where you can expect large fluctuations
in the number of users and where you want to avoid creating sessions
(and storing pages in those sessions) until you really need it. Just
keep in mind that it's an extra feature to help you make Wicket apps
better scalable; we don't encourage using stateless pages as the
default.

Eelco

On 8/10/06, Jean-Baptiste Quenot <jbq <at> caraldi.com> wrote:
> * Johan Compagner:
>
> > setResponsePage(Page) can be used just fine.  Except you have to
> > do then setRedirect(false)  because if you redirect  it (what is
> > default when  for example  submitting a form)  then the  page is
> > statefull because it has to be  there after the redirect so that
> > we can render it.
>
> Thanks for your helpful answer.
>
> Shall I also  use BookmarkablePageLink instead of  PageLink when I
> don't have any parameter to pass, or is it the same?
> --
>      Jean-Baptiste Quenot
> aka  John Banana Qwerty
> http://caraldi.com/jbq/
>
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Wicket-user mailing list
> Wicket-user <at> lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Jean-Baptiste Quenot | 11 Aug 10:21

Re: Performance/Scalability tips

* Eelco Hillenius:

> It's an optimization.

So you confirm that PageLink is not optimized for stateless
webapps.

Reading the PageLink code, I wonder why setResponsePage(Page) is used instead
of setResponsePage(Class):

        public void onClick()
        {
                // Set page source's page as response page
                setResponsePage(pageLink.getPage());
        }

Why not writing:

        public void onClick()
        {
                // Set page source's page as response page
                setResponsePage(pageLink.getPageIdentity());
        }

I intend to write the result of our discussion on the Wiki page,
to give concrete examples:
http://www.wicket-wiki.org.uk/wiki/index.php/Stateless_pages
--

-- 
     Jean-Baptiste Quenot
aka  John Banana Qwerty
http://caraldi.com/jbq/

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Jean-Baptiste Quenot | 11 Aug 10:26

Re: Performance/Scalability tips

I mean when the PageLink is instantiated using  PageLink(String, Class)
of course.
--

-- 
     Jean-Baptiste Quenot
aka  John Banana Qwerty
http://caraldi.com/jbq/

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Johan Compagner | 11 Aug 10:28

Re: Performance/Scalability tips

We could change that a bit.
But only if the pagelink was not created with an page instance already
Because if you use the contructor:

new PageLink("xx", myPageInstance)

then we really need to serve that page instance..

Maybe if we added a method to IPageLink so that we can ask what it really has (the class or the page)
then we can decide what to do.

For example you can also give your own IPageLink instance in the constuctor.

But all this doesn't really help the stateless nature of the page.
it doesn't help the page where the PageLink is on
And it doesn't help the page that is set as response page (except the redirect that can the page make statefull)

johan


On 8/11/06, Jean-Baptiste Quenot <jbq <at> caraldi.com> wrote:
* Eelco Hillenius:

> It's an optimization.

So you confirm that PageLink is not optimized for stateless
webapps.

Reading the PageLink code, I wonder why setResponsePage(Page) is used instead
of setResponsePage(Class):

        public void onClick()
        {
                // Set page source's page as response page
                setResponsePage(pageLink.getPage());
        }

Why not writing:

        public void onClick()
        {
                // Set page source's page as response page
                setResponsePage(pageLink.getPageIdentity());
        }

I intend to write the result of our discussion on the Wiki page,
to give concrete examples:
http://www.wicket-wiki.org.uk/wiki/index.php/Stateless_pages
--
     Jean-Baptiste Quenot
aka  John Banana Qwerty
http://caraldi.com/jbq/

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Wicket-user mailing list
Wicket-user <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Jean-Baptiste Quenot | 11 Aug 11:09

Re: Performance/Scalability tips

What about this:

Index: wicket/src/java/wicket/markup/html/link/PageLink.java
===================================================================
--- wicket/src/java/wicket/markup/html/link/PageLink.java	(revision 6861)
+++ wicket/src/java/wicket/markup/html/link/PageLink.java	(working copy)
@@ -64,7 +64,7 @@
 			public Page getPage()
 			{
 				// Create page using page factory
-				return PageLink.this.getPage().getPageFactory().newPage(c);
+				return null;
 			}

 			public Class getPageIdentity()
@@ -143,6 +143,9 @@
 	public void onClick()
 	{
 		// Set page source's page as response page
-		setResponsePage(pageLink.getPage());
+		if (pageLink.getPage() != null)
+			setResponsePage(pageLink.getPage());
+		else
+			setResponsePage(pageLink.getPageIdentity());
 	}
}

With this patch I've got a failing test in
wicket.markup.html.header.testing3.HeaderTest however.
--

-- 
     Jean-Baptiste Quenot
aka  John Banana Qwerty
http://caraldi.com/jbq/

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Korbinian Bachl | 9 Aug 14:16

Re: Performance/Scalability tips

Hi Johan,
 
1> use for heavy hit pages stateless pages (in 1.2 just use bookmarkable links and no forms on it), in 2.0 you have much more choices for working stateless.
 
question: is this done by using the mount functions in the init() of the application file ? 
 
Regards 
Von: wicket-user-bounces <at> lists.sourceforge.net [mailto:wicket-user-bounces <at> lists.sourceforge.net] Im Auftrag von Johan Compagner
Gesendet: Mittwoch, 9. August 2006 11:39
An: wicket-user <at> lists.sourceforge.net
Betreff: Re: [Wicket-user] Performance/Scalability tips

I also stress tested the examples quite a lot.

Which part did you test that you get an out of memory? And how much memory did you give your server?

Memory usage can be cut down in several ways:

1> use for heavy hit pages stateless pages (in 1.2 just use bookmarkable links and no forms on it), in 2.0 you have much more choices for working stateless.
2> For none stateless pages, do use detachable models. Make sure that you don't hold large (db) objects in your pages when they are serialized to the http session.
3> Tweak how many of those pages should be in memory. (this depends on how far you want to go with the back button support)
       in 2.0 we have a different session store that only keeps 1 page in mem. And the rest is cached and stored to disk.

johan


On 8/9/06, Sebastjan Trepca <trepca <at> gmail.com> wrote:
Hi all!

We're starting a new project that will be quite big (1-2 million users) so now I'm choosing a web framework to use.
It seems that Wicket is a very good framework but what worries me is the performance and scalability. I installed wicket-examples on my machine and stress-tested them a bit, just for curiosity, and always got OutOfMemory error which didn't look very promising. Then I read about detached models and created a project using them and it didn't crash anymore, but still, memory was quite high.
Now I searched thru wiki and didn't find any other tips about performance etc.

So, do you have any tips for me, on design level or maybe links to other docs, whatever really :)

Thank you, Sebastjan

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

_______________________________________________
Wicket-user mailing list
Wicket-user <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Johan Compagner | 9 Aug 14:38

Re: Performance/Scalability tips

no mounting is just making a url nicely bookmarkable.
It has nothing to do if the page that is rendered by it is stateless.

johan


On 8/9/06, Korbinian Bachl <korbinian <at> whiskyworld.de> wrote:
Hi Johan,
 
1> use for heavy hit pages stateless pages (in 1.2 just use bookmarkable links and no forms on it), in 2.0 you have much more choices for working stateless.
 
question: is this done by using the mount functions in the init() of the application file ? 
 
Regards 
Von: wicket-user-bounces <at> lists.sourceforge.net [mailto:wicket-user-bounces <at> lists.sourceforge.net] Im Auftrag von Johan Compagner
Gesendet: Mittwoch, 9. August 2006 11:39
An: wicket-user <at> lists.sourceforge.net
Betreff: Re: [Wicket-user] Performance/Scalability tips

I also stress tested the examples quite a lot.

Which part did you test that you get an out of memory? And how much memory did you give your server?

Memory usage can be cut down in several ways:

1> use for heavy hit pages stateless pages (in 1.2 just use bookmarkable links and no forms on it), in 2.0 you have much more choices for working stateless.
2> For none stateless pages, do use detachable models. Make sure that you don't hold large (db) objects in your pages when they are serialized to the http session.
3> Tweak how many of those pages should be in memory. (this depends on how far you want to go with the back button support)
       in 2.0 we have a different session store that only keeps 1 page in mem. And the rest is cached and stored to disk.

johan


On 8/9/06, Sebastjan Trepca <trepca <at> gmail.com> wrote:
Hi all!

We're starting a new project that will be quite big (1-2 million users) so now I'm choosing a web framework to use.
It seems that Wicket is a very good framework but what worries me is the performance and scalability. I installed wicket-examples on my machine and stress-tested them a bit, just for curiosity, and always got OutOfMemory error which didn't look very promising. Then I read about detached models and created a project using them and it didn't crash anymore, but still, memory was quite high.
Now I searched thru wiki and didn't find any other tips about performance etc.

So, do you have any tips for me, on design level or maybe links to other docs, whatever really :)

Thank you, Sebastjan

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

_______________________________________________
Wicket-user mailing list
Wicket-user <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user




-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

_______________________________________________
Wicket-user mailing list
Wicket-user <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Gwyn Evans | 9 Aug 14:43

Re: Performance/Scalability tips

As Johan said, no.  Take a look at the Javadocs for
BookmarkablePageLink & WebPage (links below)

/Gwyn

http://wicket.sourceforge.net/apidocs/wicket/markup/html/link/BookmarkablePageLink.html
http://wicket.sourceforge.net/apidocs/wicket/markup/html/link/BookmarkablePageLink.html

On 09/08/06, Korbinian Bachl <korbinian <at> whiskyworld.de> wrote:
>
> 1> use for heavy hit pages stateless pages (in 1.2 just use bookmarkable
> links and no forms on it), in 2.0 you have much more choices for working
> stateless.
>
>
> question: is this done by using the mount functions in the init() of the
> application file ?

--

-- 
Download Wicket 1.2.1 now! - http://wicketframework.org

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Korbinian Bachl | 9 Aug 14:17

Re: Performance/Scalability tips

He Sebastjan,
 
where did you read about the detached models ?
 
Regards

Von: wicket-user-bounces <at> lists.sourceforge.net [mailto:wicket-user-bounces <at> lists.sourceforge.net] Im Auftrag von Sebastjan Trepca
Gesendet: Mittwoch, 9. August 2006 10:17
An: wicket-user <at> lists.sourceforge.net
Betreff: [Wicket-user] Performance/Scalability tips

Hi all!

We're starting a new project that will be quite big (1-2 million users) so now I'm choosing a web framework to use.
It seems that Wicket is a very good framework but what worries me is the performance and scalability. I installed wicket-examples on my machine and stress-tested them a bit, just for curiosity, and always got OutOfMemory error which didn't look very promising. Then I read about detached models and created a project using them and it didn't crash anymore, but still, memory was quite high.
Now I searched thru wiki and didn't find any other tips about performance etc.

So, do you have any tips for me, on design level or maybe links to other docs, whatever really :)

Thank you, Sebastjan
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Gwyn Evans | 9 Aug 14:36

Re: Performance/Scalability tips

On 09/08/06, Korbinian Bachl <korbinian <at> whiskyworld.de> wrote:
> where did you read about the detached models ?

Here's a good place to start -
http://www.wicket-wiki.org.uk/wiki/index.php/Models#Detachable_Models.

Then check the entries for the specific classes (e.g.
AbstractDetachableModel) mentioned either on the Wiki or the JavaDoc.
If nothing else, the Wiki page (e.g.
http://www.wicket-wiki.org.uk/wiki/index.php/AbstractDetachableModel)
will have a link to the Javadoc page.)

/Gwyn
--

-- 
Download Wicket 1.2.1 now! - http://wicketframework.org

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

Gmane