Orbeon performance/scalability issues - suggestions?

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Orbeon performance/scalability issues - suggestions?

vivek.agarwal
We are running Orbeon PE v3.8, and in our very basic usage/load testing, we are
seeing very significant performance and scalability issues. With a handful of
concurrent users (~5-10) and a simple form with a couple of text fields, we
start seeing significant performance issues. Performance degrades quickly (20+
seconds for basic form loads/saves), and memory/CPU usage spikes tremendously.
We have performed some basic tweaks based on the wiki tuning notes, but nothing
has had any big bang effect. I am seriously concerned whether Orbeon Forms can
come close to handling our desired user load levels (100s of users).

Broadly speaking (and I have seen some posts from folks asking the same kind of
questions) – on a JBoss server running Orbeon Forms, with 1.5GB of heap
space, on a box with a decent quad-core processor and 4GB RAM, how many
concurrent users should we be able to support with an acceptable response time
of ~2-4seconds? Is this 5 users? Is this tens of users? Is this 100+ users?

Thanks for any advice and experience in setting up Orbeon in a high-throughput
site.

Regards, Vivek.


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Orbeon performance/scalability issues - suggestions?

Erik Bruchez
Administrator
Vivek,

You should definitely be able to support dozens of concurrent users,
and that 20 s for loading one page with so few users is definitely not
acceptable.

Since 3.8, we have already implemented a number of performance-related
fixes, including:

#315252 ] RFE: Implement XForms static state caching based on static
state digest
http://github.com/orbeon/orbeon-forms/commit/b081a90adc769b8b069f7efa4d848c3cb4b2da34

[ #315208 ] PERF: Store XForms namespace mappings in more compact way
and use hash to index XPath expressions in cache
http://github.com/orbeon/orbeon-forms/commit/d3e588e47f50d4af5574c2cb5070c0698ae805e6

[ #315116 ] PERF: xforms:refresh should not force refresh if the
refresh flag is not set". Refactoring to make handling of flags
clearer
http://github.com/orbeon/orbeon-forms/commit/be8067191fbc2c04ad24d79712e707c414617370

[ #315112 ] PERF: Do not check and run validation at all if
validate="false" on xforms:submission
http://github.com/orbeon/orbeon-forms/commit/296dca854a3fea379570d74897f863595c50801c

[ #315017 ] RFE: XForms cache/store must not serialize state at every request
http://github.com/orbeon/orbeon-forms/commit/3597caf5d6f0f0a2727bc8ed978149b59fea6c11

It might be worth giving a recent build a try.

-Erik

On Fri, Aug 27, 2010 at 10:33 PM,  <[hidden email]> wrote:

> We are running Orbeon PE v3.8, and in our very basic usage/load testing, we are
> seeing very significant performance and scalability issues. With a handful of
> concurrent users (~5-10) and a simple form with a couple of text fields, we
> start seeing significant performance issues. Performance degrades quickly (20+
> seconds for basic form loads/saves), and memory/CPU usage spikes tremendously.
> We have performed some basic tweaks based on the wiki tuning notes, but nothing
> has had any big bang effect. I am seriously concerned whether Orbeon Forms can
> come close to handling our desired user load levels (100s of users).
>
> Broadly speaking (and I have seen some posts from folks asking the same kind of
> questions) – on a JBoss server running Orbeon Forms, with 1.5GB of heap
> space, on a box with a decent quad-core processor and 4GB RAM, how many
> concurrent users should we be able to support with an acceptable response time
> of ~2-4seconds? Is this 5 users? Is this tens of users? Is this 100+ users?
>
> Thanks for any advice and experience in setting up Orbeon in a high-throughput
> site.
>
> Regards, Vivek.
>
>
> --
> You receive this message as a subscriber of the [hidden email] mailing list.
> To unsubscribe: mailto:[hidden email]
> For general help: mailto:[hidden email]?subject=help
> OW2 mailing lists service home page: http://www.ow2.org/wws
>
>


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

RE: Re: Orbeon performance/scalability issues - suggestions?

Vivek Agarwal
Erik - thanks for your response and ideas. We will certainly look into
getting the fixes you mentioned applied to our PE build. Given that we have
performed some significant functional testing with the PE version that we
have, and that we are fairly close to launching Orbeon in production, I am
not keen to migrate to the nightly build. We will apply the point fixes you
mention and see how the performance improves.

I am assuming/hoping that some of these will have the big improvement effect
that we are looking for.

Best regards,
 
Vivek.
 
-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Erik
Bruchez
Sent: Saturday, August 28, 2010 1:54 AM
To: [hidden email]
Subject: [ops-users] Re: Orbeon performance/scalability issues -
suggestions?

Vivek,

You should definitely be able to support dozens of concurrent users,
and that 20 s for loading one page with so few users is definitely not
acceptable.

Since 3.8, we have already implemented a number of performance-related
fixes, including:

#315252 ] RFE: Implement XForms static state caching based on static
state digest
http://github.com/orbeon/orbeon-forms/commit/b081a90adc769b8b069f7efa4d848c3
cb4b2da34

[ #315208 ] PERF: Store XForms namespace mappings in more compact way
and use hash to index XPath expressions in cache
http://github.com/orbeon/orbeon-forms/commit/d3e588e47f50d4af5574c2cb5070c06
98ae805e6

[ #315116 ] PERF: xforms:refresh should not force refresh if the
refresh flag is not set". Refactoring to make handling of flags
clearer
http://github.com/orbeon/orbeon-forms/commit/be8067191fbc2c04ad24d79712e707c
414617370

[ #315112 ] PERF: Do not check and run validation at all if
validate="false" on xforms:submission
http://github.com/orbeon/orbeon-forms/commit/296dca854a3fea379570d74897f8635
95c50801c

[ #315017 ] RFE: XForms cache/store must not serialize state at every
request
http://github.com/orbeon/orbeon-forms/commit/3597caf5d6f0f0a2727bc8ed978149b
59fea6c11

It might be worth giving a recent build a try.

-Erik

On Fri, Aug 27, 2010 at 10:33 PM,  <[hidden email]> wrote:
> We are running Orbeon PE v3.8, and in our very basic usage/load testing,
we are
> seeing very significant performance and scalability issues. With a handful
of
> concurrent users (~5-10) and a simple form with a couple of text fields,
we
> start seeing significant performance issues. Performance degrades quickly
(20+
> seconds for basic form loads/saves), and memory/CPU usage spikes
tremendously.
> We have performed some basic tweaks based on the wiki tuning notes, but
nothing
> has had any big bang effect. I am seriously concerned whether Orbeon Forms
can
> come close to handling our desired user load levels (100s of users).
>
> Broadly speaking (and I have seen some posts from folks asking the same
kind of
> questions) - on a JBoss server running Orbeon Forms, with 1.5GB of heap
> space, on a box with a decent quad-core processor and 4GB RAM, how many
> concurrent users should we be able to support with an acceptable response
time
> of ~2-4seconds? Is this 5 users? Is this tens of users? Is this 100+
users?
>
> Thanks for any advice and experience in setting up Orbeon in a
high-throughput
> site.
>
> Regards, Vivek.
>
>
> --
> You receive this message as a subscriber of the [hidden email] mailing
list.
> To unsubscribe: mailto:[hidden email]
> For general help: mailto:[hidden email]?subject=help
> OW2 mailing lists service home page: http://www.ow2.org/wws
>
>



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: RE: Re: Orbeon performance/scalability issues - suggestions?

npujol73
Vivek,

 I am encountering issues in production right now. Same symptoms High cpu usage and unacceptable response time. We are on 3.7.1 and exploring moving to the nightly build. I will keep you updated with our status - if you could do the same it would be great.

thanks

Nicolas

Sent from my iPhone

On Aug 28, 2010, at 8:09, "Vivek Agarwal" <[hidden email]> wrote:

> Erik - thanks for your response and ideas. We will certainly look into
> getting the fixes you mentioned applied to our PE build. Given that we have
> performed some significant functional testing with the PE version that we
> have, and that we are fairly close to launching Orbeon in production, I am
> not keen to migrate to the nightly build. We will apply the point fixes you
> mention and see how the performance improves.
>
> I am assuming/hoping that some of these will have the big improvement effect
> that we are looking for.
>
> Best regards,
>
> Vivek.
>
> -----Original Message-----
> From: [hidden email] [mailto:[hidden email]] On Behalf Of Erik
> Bruchez
> Sent: Saturday, August 28, 2010 1:54 AM
> To: [hidden email]
> Subject: [ops-users] Re: Orbeon performance/scalability issues -
> suggestions?
>
> Vivek,
>
> You should definitely be able to support dozens of concurrent users,
> and that 20 s for loading one page with so few users is definitely not
> acceptable.
>
> Since 3.8, we have already implemented a number of performance-related
> fixes, including:
>
> #315252 ] RFE: Implement XForms static state caching based on static
> state digest
> http://github.com/orbeon/orbeon-forms/commit/b081a90adc769b8b069f7efa4d848c3
> cb4b2da34
>
> [ #315208 ] PERF: Store XForms namespace mappings in more compact way
> and use hash to index XPath expressions in cache
> http://github.com/orbeon/orbeon-forms/commit/d3e588e47f50d4af5574c2cb5070c06
> 98ae805e6
>
> [ #315116 ] PERF: xforms:refresh should not force refresh if the
> refresh flag is not set". Refactoring to make handling of flags
> clearer
> http://github.com/orbeon/orbeon-forms/commit/be8067191fbc2c04ad24d79712e707c
> 414617370
>
> [ #315112 ] PERF: Do not check and run validation at all if
> validate="false" on xforms:submission
> http://github.com/orbeon/orbeon-forms/commit/296dca854a3fea379570d74897f8635
> 95c50801c
>
> [ #315017 ] RFE: XForms cache/store must not serialize state at every
> request
> http://github.com/orbeon/orbeon-forms/commit/3597caf5d6f0f0a2727bc8ed978149b
> 59fea6c11
>
> It might be worth giving a recent build a try.
>
> -Erik
>
> On Fri, Aug 27, 2010 at 10:33 PM,  <[hidden email]> wrote:
>> We are running Orbeon PE v3.8, and in our very basic usage/load testing,
> we are
>> seeing very significant performance and scalability issues. With a handful
> of
>> concurrent users (~5-10) and a simple form with a couple of text fields,
> we
>> start seeing significant performance issues. Performance degrades quickly
> (20+
>> seconds for basic form loads/saves), and memory/CPU usage spikes
> tremendously.
>> We have performed some basic tweaks based on the wiki tuning notes, but
> nothing
>> has had any big bang effect. I am seriously concerned whether Orbeon Forms
> can
>> come close to handling our desired user load levels (100s of users).
>>
>> Broadly speaking (and I have seen some posts from folks asking the same
> kind of
>> questions) - on a JBoss server running Orbeon Forms, with 1.5GB of heap
>> space, on a box with a decent quad-core processor and 4GB RAM, how many
>> concurrent users should we be able to support with an acceptable response
> time
>> of ~2-4seconds? Is this 5 users? Is this tens of users? Is this 100+
> users?
>>
>> Thanks for any advice and experience in setting up Orbeon in a
> high-throughput
>> site.
>>
>> Regards, Vivek.
>>
>>
>> --
>> You receive this message as a subscriber of the [hidden email] mailing
> list.
>> To unsubscribe: mailto:[hidden email]
>> For general help: mailto:[hidden email]?subject=help
>> OW2 mailing lists service home page: http://www.ow2.org/wws
>>
>>
>
>
> --
> You receive this message as a subscriber of the [hidden email] mailing list.
> To unsubscribe: mailto:[hidden email]
> For general help: mailto:[hidden email]?subject=help
> OW2 mailing lists service home page: http://www.ow2.org/wws


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

RE: Orbeon performance/scalability issues - suggestions?

Mark Dijkstra
In reply to this post by vivek.agarwal
Hi Vivek,

I would advise you to find out which part of your application is causing
the problem.

You are saying you are using a simple form. Does your form rely on other
components like webservices,database,etc?
What exactly is the bottleneck? Is your CPU 100% and/or Memory
constantly full (use JCONOLE). Is your system swapping memory?
(http://linux.about.com/od/commands/l/blcmdl1_top.htm)? Which java and
jboss versions are you using. Which garbage collection strategy are you
using? Are you running more applications on your Jboss server? Also,if
it's a simple form, show us the code.

How do you test your forms? Do you take a pause between each form
request? An user will need some time to fill in a form. So the question
is, is your test realistic?

Regard,
Mark

-----Oorspronkelijk bericht-----
Van: [hidden email] [mailto:[hidden email]]
Verzonden: zaterdag 28 augustus 2010 7:33
Aan: [hidden email]
Onderwerp: [ops-users] Orbeon performance/scalability issues -
suggestions?

We are running Orbeon PE v3.8, and in our very basic usage/load testing,
we are seeing very significant performance and scalability issues. With
a handful of concurrent users (~5-10) and a simple form with a couple of
text fields, we start seeing significant performance issues. Performance
degrades quickly (20+ seconds for basic form loads/saves), and
memory/CPU usage spikes tremendously.
We have performed some basic tweaks based on the wiki tuning notes, but
nothing has had any big bang effect. I am seriously concerned whether
Orbeon Forms can come close to handling our desired user load levels
(100s of users).

Broadly speaking (and I have seen some posts from folks asking the same
kind of
questions) - on a JBoss server running Orbeon Forms, with 1.5GB of heap
space, on a box with a decent quad-core processor and 4GB RAM, how many
concurrent users should we be able to support with an acceptable
response time of ~2-4seconds? Is this 5 users? Is this tens of users? Is
this 100+ users?

Thanks for any advice and experience in setting up Orbeon in a
high-throughput site.

Regards, Vivek.


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

RE: RE: Orbeon performance/scalability issues - suggestions?

Vivek Agarwal
Hello Mark -

We had even scaled back our Orbeon performance testing to test a basic form
(source below) with exactly one text field, with absolutely no integration
with any other applications or databases. This is just Orbeon Forms v3.8
running on JBoss 4.2.3 with Sun JDK 1.6 on Linux, and the system is NOT
swapping memory. Note that we have tried this with Orbeon on Windows as well
with the same results.

In terms of a realistic load test, I understand what you are saying about
realistic think and "form fill" time, but we have even scaled back our load
test to simply open up this form (/orbeon/fr/gaurav/form3/new) and not fill
it. We have seen that as we ramp up the threads from 5 to 10 to 20, the form
load time doubles and then triples.

From your questions, should I deduce that my performance woes are unusual
and that your experience is quite different? What kind of load are you able
to sustain and with what hardware? And is your acceptable response time in
the same range as mine - 2-4s?

Thanks a bunch for your help.

Best regards,
 
Vivek.

Form Source
======================================================================

<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"
            xmlns:xxi="http://orbeon.org/oxf/xml/xinclude"
            xmlns:xxforms="http://orbeon.org/oxf/xml/xforms"
            xmlns:exforms="http://www.exforms.org/exf/1-0"
            xmlns:fr="http://orbeon.org/oxf/xml/form-runner"
            xmlns:saxon="http://saxon.sf.net/"
            xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:oxf="http://www.orbeon.com/oxf/processors"
            xmlns:ev="http://www.w3.org/2001/xml-events"
            xmlns:xi="http://www.w3.org/2001/XInclude"
            xmlns:pwc="http://www.principal.com/pwc"
            xmlns:sql="http://orbeon.org/oxf/xml/sql"
            xmlns:xforms="http://www.w3.org/2002/xforms"
 
xmlns:pipeline="java:org.orbeon.oxf.processor.pipeline.PipelineFunctionLibra
ry"
            xmlns:p="http://www.orbeon.com/oxf/pipeline"
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:odt="http://orbeon.org/oxf/xml/datatypes"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <xhtml:head>
        <xhtml:title>Gaurav Form</xhtml:title>
        <xforms:model id="fr-form-model">

           
            <xforms:instance id="fr-form-instance">
                <form>
                    <section-1>
                        <control-1/>
                    </section-1>
                </form>
            </xforms:instance>

           
            <xforms:bind id="fr-form-binds"
nodeset="instance('fr-form-instance')">
                <xforms:bind id="section-1-bind" nodeset="section-1">
                    <xforms:bind id="control-1-bind" name="control-1"
nodeset="control-1"/>
                </xforms:bind>
            </xforms:bind>

           
            <xforms:instance id="fr-form-metadata" xxforms:readonly="true">
                <metadata>
                    <application-name>gaurav</application-name>
                    <form-name>form3</form-name>
                    <title xml:lang="en">Gaurav Form</title>
                    <description xml:lang="en"/>
                    <author/>
                    <logo mediatype="" filename="" size=""/>
                </metadata>
            </xforms:instance>

           
            <xforms:instance id="fr-form-attachments">
                <attachments>
                    <css mediatype="text/css" filename="" size=""/>
                    <pdf mediatype="application/pdf" filename="" size=""/>
                </attachments>
            </xforms:instance>

           
           
            <xforms:instance id="fr-form-resources"
xxforms:readonly="false">
                <resources>
                    <resource xml:lang="en">
                        <section-1>
                            <label>My Section</label>
                            <help/>
                        </section-1>
                        <control-1>
                            <label/>
                            <hint/>
                            <help/>
                            <alert/>
                        </control-1>
                    </resource>
                </resources>
            </xforms:instance>

           
            <xforms:instance id="fr-service-request-instance"
xxforms:exclude-result-prefixes="#all">
                <request/>
            </xforms:instance>

            <xforms:instance id="fr-service-response-instance"
xxforms:exclude-result-prefixes="#all">
                <response/>
            </xforms:instance>

        </xforms:model>
    </xhtml:head>
    <xhtml:body>
        <fr:view>
            <xforms:label ref="instance('fr-form-metadata')/title"/>
            <fr:body>
                <fr:section id="section-1-section" bind="section-1-bind">
                    <xforms:label ref="$form-resources/section-1/label"/>
                    <xforms:help ref="$form-resources/section-1/help"/>
                    <fr:grid columns="2">
                        <xhtml:tr>
                            <xhtml:td>
                                <xforms:input id="control-1-control"
bind="control-1-bind">
                                    <xforms:label
ref="$form-resources/control-1/label"/>
                                    <xforms:hint
ref="$form-resources/control-1/hint"/>
                                    <xforms:help
ref="$form-resources/control-1/help"/>
                                    <xforms:alert
ref="$fr-resources/detail/labels/alert"/>
                                </xforms:input>
                            </xhtml:td>
                            <xhtml:td/>
                        </xhtml:tr>
                    </fr:grid>
                </fr:section>
            </fr:body>
        </fr:view>
    </xhtml:body>
</xhtml:html>
 
======================================================================
-----Original Message-----
From: Mark Dijkstra [mailto:[hidden email]]
Sent: Tuesday, August 31, 2010 3:35 AM
To: [hidden email]
Subject: [ops-users] RE: Orbeon performance/scalability issues -
suggestions?

Hi Vivek,

I would advise you to find out which part of your application is causing
the problem.

You are saying you are using a simple form. Does your form rely on other
components like webservices,database,etc?
What exactly is the bottleneck? Is your CPU 100% and/or Memory
constantly full (use JCONOLE). Is your system swapping memory?
(http://linux.about.com/od/commands/l/blcmdl1_top.htm)? Which java and
jboss versions are you using. Which garbage collection strategy are you
using? Are you running more applications on your Jboss server? Also,if
it's a simple form, show us the code.

How do you test your forms? Do you take a pause between each form
request? An user will need some time to fill in a form. So the question
is, is your test realistic?

Regard,
Mark

-----Oorspronkelijk bericht-----
Van: [hidden email] [mailto:[hidden email]]
Verzonden: zaterdag 28 augustus 2010 7:33
Aan: [hidden email]
Onderwerp: [ops-users] Orbeon performance/scalability issues -
suggestions?

We are running Orbeon PE v3.8, and in our very basic usage/load testing,
we are seeing very significant performance and scalability issues. With
a handful of concurrent users (~5-10) and a simple form with a couple of
text fields, we start seeing significant performance issues. Performance
degrades quickly (20+ seconds for basic form loads/saves), and
memory/CPU usage spikes tremendously.
We have performed some basic tweaks based on the wiki tuning notes, but
nothing has had any big bang effect. I am seriously concerned whether
Orbeon Forms can come close to handling our desired user load levels
(100s of users).

Broadly speaking (and I have seen some posts from folks asking the same
kind of
questions) - on a JBoss server running Orbeon Forms, with 1.5GB of heap
space, on a box with a decent quad-core processor and 4GB RAM, how many
concurrent users should we be able to support with an acceptable
response time of ~2-4seconds? Is this 5 users? Is this tens of users? Is
this 100+ users?

Thanks for any advice and experience in setting up Orbeon in a
high-throughput site.

Regards, Vivek.



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

RE: RE: RE: Orbeon performance/scalability issues - suggestions?

Mark Dijkstra
 
Hi ViVek,

With a pause of 1 second between pages we can handle (tested) at least
25 users.  We probably could handle far more but we did not test that
(We are using Tomcat 6,Java 6 on a virtual machine (1 core and 2GB)).
The main difference is that we are not using form runner and/or XBL
components.

I am wondering what happens to your test if you remove all XBL
components in your Xforms. Also wondering about your Garbage Collector,
do it run often? Do you have screenshot/export of your JCONSOLE while
running the test?

Kind regards,
Mark

-----Oorspronkelijk bericht-----
Van: Vivek Agarwal [mailto:[hidden email]]
Verzonden: dinsdag 31 augustus 2010 15:18
Aan: [hidden email]
Onderwerp: [ops-users] RE: RE: Orbeon performance/scalability issues -
suggestions?

Hello Mark -

We had even scaled back our Orbeon performance testing to test a basic
form (source below) with exactly one text field, with absolutely no
integration with any other applications or databases. This is just
Orbeon Forms v3.8 running on JBoss 4.2.3 with Sun JDK 1.6 on Linux, and
the system is NOT swapping memory. Note that we have tried this with
Orbeon on Windows as well with the same results.

In terms of a realistic load test, I understand what you are saying
about realistic think and "form fill" time, but we have even scaled back
our load test to simply open up this form (/orbeon/fr/gaurav/form3/new)
and not fill it. We have seen that as we ramp up the threads from 5 to
10 to 20, the form load time doubles and then triples.

From your questions, should I deduce that my performance woes are
unusual and that your experience is quite different? What kind of load
are you able to sustain and with what hardware? And is your acceptable
response time in the same range as mine - 2-4s?

Thanks a bunch for your help.

Best regards,
 
Vivek.

Form Source
======================================================================

<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"
            xmlns:xxi="http://orbeon.org/oxf/xml/xinclude"
            xmlns:xxforms="http://orbeon.org/oxf/xml/xforms"
            xmlns:exforms="http://www.exforms.org/exf/1-0"
            xmlns:fr="http://orbeon.org/oxf/xml/form-runner"
            xmlns:saxon="http://saxon.sf.net/"
            xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:oxf="http://www.orbeon.com/oxf/processors"
            xmlns:ev="http://www.w3.org/2001/xml-events"
            xmlns:xi="http://www.w3.org/2001/XInclude"
            xmlns:pwc="http://www.principal.com/pwc"
            xmlns:sql="http://orbeon.org/oxf/xml/sql"
            xmlns:xforms="http://www.w3.org/2002/xforms"
 
xmlns:pipeline="java:org.orbeon.oxf.processor.pipeline.PipelineFunctionL
ibra
ry"
            xmlns:p="http://www.orbeon.com/oxf/pipeline"
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:odt="http://orbeon.org/oxf/xml/datatypes"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <xhtml:head>
        <xhtml:title>Gaurav Form</xhtml:title>
        <xforms:model id="fr-form-model">

           
            <xforms:instance id="fr-form-instance">
                <form>
                    <section-1>
                        <control-1/>
                    </section-1>
                </form>
            </xforms:instance>

           
            <xforms:bind id="fr-form-binds"
nodeset="instance('fr-form-instance')">
                <xforms:bind id="section-1-bind" nodeset="section-1">
                    <xforms:bind id="control-1-bind" name="control-1"
nodeset="control-1"/>
                </xforms:bind>
            </xforms:bind>

           
            <xforms:instance id="fr-form-metadata"
xxforms:readonly="true">
                <metadata>
                    <application-name>gaurav</application-name>
                    <form-name>form3</form-name>
                    <title xml:lang="en">Gaurav Form</title>
                    <description xml:lang="en"/>
                    <author/>
                    <logo mediatype="" filename="" size=""/>
                </metadata>
            </xforms:instance>

           
            <xforms:instance id="fr-form-attachments">
                <attachments>
                    <css mediatype="text/css" filename="" size=""/>
                    <pdf mediatype="application/pdf" filename=""
size=""/>
                </attachments>
            </xforms:instance>

           
           
            <xforms:instance id="fr-form-resources"
xxforms:readonly="false">
                <resources>
                    <resource xml:lang="en">
                        <section-1>
                            <label>My Section</label>
                            <help/>
                        </section-1>
                        <control-1>
                            <label/>
                            <hint/>
                            <help/>
                            <alert/>
                        </control-1>
                    </resource>
                </resources>
            </xforms:instance>

           
            <xforms:instance id="fr-service-request-instance"
xxforms:exclude-result-prefixes="#all">
                <request/>
            </xforms:instance>

            <xforms:instance id="fr-service-response-instance"
xxforms:exclude-result-prefixes="#all">
                <response/>
            </xforms:instance>

        </xforms:model>
    </xhtml:head>
    <xhtml:body>
        <fr:view>
            <xforms:label ref="instance('fr-form-metadata')/title"/>
            <fr:body>
                <fr:section id="section-1-section"
bind="section-1-bind">
                    <xforms:label
ref="$form-resources/section-1/label"/>
                    <xforms:help ref="$form-resources/section-1/help"/>
                    <fr:grid columns="2">
                        <xhtml:tr>
                            <xhtml:td>
                                <xforms:input id="control-1-control"
bind="control-1-bind">
                                    <xforms:label
ref="$form-resources/control-1/label"/>
                                    <xforms:hint
ref="$form-resources/control-1/hint"/>
                                    <xforms:help
ref="$form-resources/control-1/help"/>
                                    <xforms:alert
ref="$fr-resources/detail/labels/alert"/>
                                </xforms:input>
                            </xhtml:td>
                            <xhtml:td/>
                        </xhtml:tr>
                    </fr:grid>
                </fr:section>
            </fr:body>
        </fr:view>
    </xhtml:body>
</xhtml:html>
 
======================================================================
-----Original Message-----
From: Mark Dijkstra [mailto:[hidden email]]
Sent: Tuesday, August 31, 2010 3:35 AM
To: [hidden email]
Subject: [ops-users] RE: Orbeon performance/scalability issues -
suggestions?

Hi Vivek,

I would advise you to find out which part of your application is causing
the problem.

You are saying you are using a simple form. Does your form rely on other
components like webservices,database,etc?
What exactly is the bottleneck? Is your CPU 100% and/or Memory
constantly full (use JCONOLE). Is your system swapping memory?
(http://linux.about.com/od/commands/l/blcmdl1_top.htm)? Which java and
jboss versions are you using. Which garbage collection strategy are you
using? Are you running more applications on your Jboss server? Also,if
it's a simple form, show us the code.

How do you test your forms? Do you take a pause between each form
request? An user will need some time to fill in a form. So the question
is, is your test realistic?

Regard,
Mark

-----Oorspronkelijk bericht-----
Van: [hidden email] [mailto:[hidden email]]
Verzonden: zaterdag 28 augustus 2010 7:33
Aan: [hidden email]
Onderwerp: [ops-users] Orbeon performance/scalability issues -
suggestions?

We are running Orbeon PE v3.8, and in our very basic usage/load testing,
we are seeing very significant performance and scalability issues. With
a handful of concurrent users (~5-10) and a simple form with a couple of
text fields, we start seeing significant performance issues. Performance
degrades quickly (20+ seconds for basic form loads/saves), and
memory/CPU usage spikes tremendously.
We have performed some basic tweaks based on the wiki tuning notes, but
nothing has had any big bang effect. I am seriously concerned whether
Orbeon Forms can come close to handling our desired user load levels
(100s of users).

Broadly speaking (and I have seen some posts from folks asking the same
kind of
questions) - on a JBoss server running Orbeon Forms, with 1.5GB of heap
space, on a box with a decent quad-core processor and 4GB RAM, how many
concurrent users should we be able to support with an acceptable
response time of ~2-4seconds? Is this 5 users? Is this tens of users? Is
this 100+ users?

Thanks for any advice and experience in setting up Orbeon in a
high-throughput site.

Regards, Vivek.



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

RE: RE: RE: RE: Orbeon performance/scalability issues - suggestions?

Vivek Agarwal
Hello Mark -

Thanks for your response. Well, we ended up comparing performance between
the base 3.8 PE release with an Oracle database and the latest nightly PE
build with an Oracle database. We did this comparison with a very basic
setup and a basic form with 1 form field. Our results indicate that there is
a very significant performance improvement with the nightly build.

Now, I would not go as far as to say that the performance was spectacular
with the nightly build, but certainly better to make it a lot more
acceptable.

Also I do know that the garbage collector does run fairly often and have
some impact. Orbeon is fairly memory intensive.

I will try to come back with more information as we gather it.

Best regards, Vivek.

-----Original Message-----
From: Mark Dijkstra [mailto:[hidden email]]
Sent: Tuesday, August 31, 2010 9:12 AM
To: [hidden email]
Subject: [ops-users] RE: RE: RE: Orbeon performance/scalability issues -
suggestions?

 
Hi ViVek,

With a pause of 1 second between pages we can handle (tested) at least
25 users.  We probably could handle far more but we did not test that
(We are using Tomcat 6,Java 6 on a virtual machine (1 core and 2GB)).
The main difference is that we are not using form runner and/or XBL
components.

I am wondering what happens to your test if you remove all XBL
components in your Xforms. Also wondering about your Garbage Collector,
do it run often? Do you have screenshot/export of your JCONSOLE while
running the test?

Kind regards,
Mark

-----Oorspronkelijk bericht-----
Van: Vivek Agarwal [mailto:[hidden email]]
Verzonden: dinsdag 31 augustus 2010 15:18
Aan: [hidden email]
Onderwerp: [ops-users] RE: RE: Orbeon performance/scalability issues -
suggestions?

Hello Mark -

We had even scaled back our Orbeon performance testing to test a basic
form (source below) with exactly one text field, with absolutely no
integration with any other applications or databases. This is just
Orbeon Forms v3.8 running on JBoss 4.2.3 with Sun JDK 1.6 on Linux, and
the system is NOT swapping memory. Note that we have tried this with
Orbeon on Windows as well with the same results.

In terms of a realistic load test, I understand what you are saying
about realistic think and "form fill" time, but we have even scaled back
our load test to simply open up this form (/orbeon/fr/gaurav/form3/new)
and not fill it. We have seen that as we ramp up the threads from 5 to
10 to 20, the form load time doubles and then triples.

From your questions, should I deduce that my performance woes are
unusual and that your experience is quite different? What kind of load
are you able to sustain and with what hardware? And is your acceptable
response time in the same range as mine - 2-4s?

Thanks a bunch for your help.

Best regards,
 
Vivek.

Form Source
======================================================================

<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"
            xmlns:xxi="http://orbeon.org/oxf/xml/xinclude"
            xmlns:xxforms="http://orbeon.org/oxf/xml/xforms"
            xmlns:exforms="http://www.exforms.org/exf/1-0"
            xmlns:fr="http://orbeon.org/oxf/xml/form-runner"
            xmlns:saxon="http://saxon.sf.net/"
            xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:oxf="http://www.orbeon.com/oxf/processors"
            xmlns:ev="http://www.w3.org/2001/xml-events"
            xmlns:xi="http://www.w3.org/2001/XInclude"
            xmlns:pwc="http://www.principal.com/pwc"
            xmlns:sql="http://orbeon.org/oxf/xml/sql"
            xmlns:xforms="http://www.w3.org/2002/xforms"
 
xmlns:pipeline="java:org.orbeon.oxf.processor.pipeline.PipelineFunctionL
ibra
ry"
            xmlns:p="http://www.orbeon.com/oxf/pipeline"
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:odt="http://orbeon.org/oxf/xml/datatypes"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <xhtml:head>
        <xhtml:title>Gaurav Form</xhtml:title>
        <xforms:model id="fr-form-model">

           
            <xforms:instance id="fr-form-instance">
                <form>
                    <section-1>
                        <control-1/>
                    </section-1>
                </form>
            </xforms:instance>

           
            <xforms:bind id="fr-form-binds"
nodeset="instance('fr-form-instance')">
                <xforms:bind id="section-1-bind" nodeset="section-1">
                    <xforms:bind id="control-1-bind" name="control-1"
nodeset="control-1"/>
                </xforms:bind>
            </xforms:bind>

           
            <xforms:instance id="fr-form-metadata"
xxforms:readonly="true">
                <metadata>
                    <application-name>gaurav</application-name>
                    <form-name>form3</form-name>
                    <title xml:lang="en">Gaurav Form</title>
                    <description xml:lang="en"/>
                    <author/>
                    <logo mediatype="" filename="" size=""/>
                </metadata>
            </xforms:instance>

           
            <xforms:instance id="fr-form-attachments">
                <attachments>
                    <css mediatype="text/css" filename="" size=""/>
                    <pdf mediatype="application/pdf" filename=""
size=""/>
                </attachments>
            </xforms:instance>

           
           
            <xforms:instance id="fr-form-resources"
xxforms:readonly="false">
                <resources>
                    <resource xml:lang="en">
                        <section-1>
                            <label>My Section</label>
                            <help/>
                        </section-1>
                        <control-1>
                            <label/>
                            <hint/>
                            <help/>
                            <alert/>
                        </control-1>
                    </resource>
                </resources>
            </xforms:instance>

           
            <xforms:instance id="fr-service-request-instance"
xxforms:exclude-result-prefixes="#all">
                <request/>
            </xforms:instance>

            <xforms:instance id="fr-service-response-instance"
xxforms:exclude-result-prefixes="#all">
                <response/>
            </xforms:instance>

        </xforms:model>
    </xhtml:head>
    <xhtml:body>
        <fr:view>
            <xforms:label ref="instance('fr-form-metadata')/title"/>
            <fr:body>
                <fr:section id="section-1-section"
bind="section-1-bind">
                    <xforms:label
ref="$form-resources/section-1/label"/>
                    <xforms:help ref="$form-resources/section-1/help"/>
                    <fr:grid columns="2">
                        <xhtml:tr>
                            <xhtml:td>
                                <xforms:input id="control-1-control"
bind="control-1-bind">
                                    <xforms:label
ref="$form-resources/control-1/label"/>
                                    <xforms:hint
ref="$form-resources/control-1/hint"/>
                                    <xforms:help
ref="$form-resources/control-1/help"/>
                                    <xforms:alert
ref="$fr-resources/detail/labels/alert"/>
                                </xforms:input>
                            </xhtml:td>
                            <xhtml:td/>
                        </xhtml:tr>
                    </fr:grid>
                </fr:section>
            </fr:body>
        </fr:view>
    </xhtml:body>
</xhtml:html>
 
======================================================================
-----Original Message-----
From: Mark Dijkstra [mailto:[hidden email]]
Sent: Tuesday, August 31, 2010 3:35 AM
To: [hidden email]
Subject: [ops-users] RE: Orbeon performance/scalability issues -
suggestions?

Hi Vivek,

I would advise you to find out which part of your application is causing
the problem.

You are saying you are using a simple form. Does your form rely on other
components like webservices,database,etc?
What exactly is the bottleneck? Is your CPU 100% and/or Memory
constantly full (use JCONOLE). Is your system swapping memory?
(http://linux.about.com/od/commands/l/blcmdl1_top.htm)? Which java and
jboss versions are you using. Which garbage collection strategy are you
using? Are you running more applications on your Jboss server? Also,if
it's a simple form, show us the code.

How do you test your forms? Do you take a pause between each form
request? An user will need some time to fill in a form. So the question
is, is your test realistic?

Regard,
Mark

-----Oorspronkelijk bericht-----
Van: [hidden email] [mailto:[hidden email]]
Verzonden: zaterdag 28 augustus 2010 7:33
Aan: [hidden email]
Onderwerp: [ops-users] Orbeon performance/scalability issues -
suggestions?

We are running Orbeon PE v3.8, and in our very basic usage/load testing,
we are seeing very significant performance and scalability issues. With
a handful of concurrent users (~5-10) and a simple form with a couple of
text fields, we start seeing significant performance issues. Performance
degrades quickly (20+ seconds for basic form loads/saves), and
memory/CPU usage spikes tremendously.
We have performed some basic tweaks based on the wiki tuning notes, but
nothing has had any big bang effect. I am seriously concerned whether
Orbeon Forms can come close to handling our desired user load levels
(100s of users).

Broadly speaking (and I have seen some posts from folks asking the same
kind of
questions) - on a JBoss server running Orbeon Forms, with 1.5GB of heap
space, on a box with a decent quad-core processor and 4GB RAM, how many
concurrent users should we be able to support with an acceptable
response time of ~2-4seconds? Is this 5 users? Is this tens of users? Is
this 100+ users?

Thanks for any advice and experience in setting up Orbeon in a
high-throughput site.

Regards, Vivek.




--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws