one more improved we can easily do, is to respond to "If-Modified-Since".
this will reduce the size of requests we have to send to subsequent calls.

On Thu, Jul 16, 2015 at 1:18 PM, Rasika Perera <[email protected]> wrote:

> ​Hi,
>
> Please review and merge fix[1] for public jira[2]. Did a load balance test
> using 10 threads; issue is still seems to exist even though the fix[1]
> improved the performance of the stream out (average server response time is
> still growing).
>
> IMO unified UI framework should not serve static type files(eg. images,
> js, css ..etc); instead the container itself must be optimized to do the
> job. Since we are using virtual paths here; simply escaping static file
> serving from the framework would not be possible.
>
> Virtual Path: {context}/public/{unit-name}/{resource-path}
> Real Path: {context}/units/{unit-name}/public/{resources-path}
>
> Virtual Path:
> https://localhost:9443/iotserver/public/arduino/images/arduino.png
> Real Path: https://localhost:9443/iotserver
> /units/arduino/public/images/arduino.png
>
> As per offline discussion, in order to solve this Manuranga is writing a
> front layer in java for the UUI framework.
>
> Thank you
>
> [1] https://github.com/wso2/jaggery/pull/130
> [2] https://wso2.org/jira/browse/JAGGERY-408
>
> On Wed, Jul 15, 2015 at 12:13 PM, Manuranga Perera <[email protected]> wrote:
>
>> as per our off-line debugging session, issues seems to be in Jaggery
>> Stream print [1] function. Rasika will look into improving scream copy java
>> method and check.
>>
>>
>> [1]
>> https://github.com/wso2/jaggery/blob/master/components/jaggery-core/org.jaggeryjs.jaggery.core/src/main/java/org/jaggeryjs/jaggery/core/manager/CommonManager.java
>>
>> On Wed, Jul 15, 2015 at 3:40 AM, Manuranga Perera <[email protected]> wrote:
>>
>>> Let's take a JFR snapshot and see what's really taking time. I am
>>> guessing its reading of the definition files. We can cache the unit
>>> definitions if that's the case.
>>> On 15 Jul 2015 00:24, "Rasika Perera" <[email protected]> wrote:
>>>
>>>> Hi All,
>>>>
>>>> We have setup a Jaggery App written using Unified UI sharable
>>>> components framework on top of a WSO2 server pack.
>>>>
>>>> When increasing the number of concurrent users we are experiencing a
>>>> huge performance drop in the server. In the middle of an internal training
>>>> session we tried to access the Jaggery Application using 9-10 concurrent
>>>> browser terminals. Server tends to hits 100% CPU usage when trying to
>>>> accessing webapp.
>>>>
>>>> At the server side we are getting following error intermittently;
>>>>
>>>> [2015-07-14 23:31:58,270] ERROR
>>>>> {org.jaggeryjs.jaggery.core.manager.WebAppManager} -
>>>>> org.mozilla.javascript.WrappedException: Wrapped
>>>>> org.jaggeryjs.scriptengine.exceptions.ScriptException:
>>>>> org.apache.catalina.connector.ClientAbortException: java.io.IOException:
>>>>> Broken pipe (/iotserver/lib/fuse-router.js#92)
>>>>> org.jaggeryjs.scriptengine.exceptions.ScriptException:
>>>>> org.mozilla.javascript.WrappedException: Wrapped
>>>>> org.jaggeryjs.scriptengine.exceptions.ScriptException:
>>>>> org.apache.catalina.connector.ClientAbortException: java.io.IOException:
>>>>> Broken pipe (/iotserver/lib/fuse-router.js#92)
>>>>
>>>>
>>>> The thread dump of the server is attached[1]. Most of active threads
>>>> are executing "fuse.js" and "rhino" This issue is reproducible at the local
>>>> machine when accessing concurrently.
>>>>
>>>> "http-nio-9443-exec-14" daemon prio=10 tid=0x00007fc330057000
>>>>> nid=0x14eb runnable [0x00007fc30ae26000]
>>>>>    java.lang.Thread.State: RUNNABLE
>>>>> at
>>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
>>>>> at
>>>>> org.jaggeryjs.rhino.iotserver.lib.c0._c_anonymous_1(/iotserver/lib/fuse.jag:6)
>>>>> at org.jaggeryjs.rhino.iotserver.lib.c0.call(/iotserver/lib/fuse.jag)
>>>>> at
>>>>> org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
>>>>> at
>>>>> org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
>>>>> at
>>>>> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
>>>>> at
>>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
>>>>> at
>>>>> org.jaggeryjs.rhino.iotserver.lib.c0._c_anonymous_1(/iotserver/lib/fuse.jag:5)
>>>>> at org.jaggeryjs.rhino.iotserver.lib.c0.call(/iotserver/lib/fuse.jag)
>>>>> at
>>>>> org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
>>>>> at
>>>>> org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
>>>>> at
>>>>> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
>>>>> at
>>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
>>>>> at
>>>>> org.jaggeryjs.rhino.iotserver.lib.c0._c_anonymous_1(/iotserver/lib/fuse.jag:5)
>>>>> at org.jaggeryjs.rhino.iotserver.lib.c0.call(/iotserver/lib/fuse.jag)
>>>>> at
>>>>> org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
>>>>> at
>>>>> org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
>>>>> at
>>>>> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
>>>>> at
>>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
>>>>> at
>>>>> org.jaggeryjs.rhino.iotserver.lib.c0._c_anonymous_1(/iotserver/lib/fuse.jag:5)
>>>>> at org.jaggeryjs.rhino.iotserver.lib.c0.call(/iotserver/lib/fuse.jag)
>>>>> at
>>>>> org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
>>>>> at
>>>>> org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
>>>>> at
>>>>> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
>>>>> at
>>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
>>>>> at
>>>>> org.jaggeryjs.rhino.iotserver.lib.c0._c_anonymous_1(/iotserver/lib/fuse.jag:5)
>>>>> at org.jaggeryjs.rhino.iotserver.lib.c0.call(/iotserver/lib/fuse.jag)
>>>>> at
>>>>> org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
>>>>> at
>>>>> org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
>>>>> at
>>>>> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
>>>>> at
>>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
>>>>> at
>>>>> org.jaggeryjs.rhino.iotserver.lib.c0._c_anonymous_1(/iotserver/lib/fuse.jag:5)
>>>>> at org.jaggeryjs.rhino.iotserver.lib.c0.call(/iotserver/lib/fuse.jag)
>>>>> at
>>>>> org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
>>>>> at
>>>>> org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
>>>>> at
>>>>> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
>>>>> at
>>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
>>>>> at
>>>>> org.jaggeryjs.rhino.iotserver.lib.c0._c_anonymous_1(/iotserver/lib/fuse.jag:5)
>>>>
>>>>
>>>> Any help to resolve this issue would be really appreciated.
>>>>
>>>> Thank you
>>>>
>>>> --
>>>> With Regards,
>>>>
>>>> *Rasika Perera*
>>>> Software Engineer
>>>> M: +94 71 680 9060 E: [email protected]
>>>> LinkedIn: http://lk.linkedin.com/in/rasika90
>>>>
>>>> WSO2 Inc. www.wso2.com
>>>> lean.enterprise.middleware
>>>>
>>>
>>
>>
>> --
>> With regards,
>> *Manu*ranga Perera.
>>
>> phone : 071 7 70 20 50
>> mail : [email protected]
>>
>
>
>
> --
> With Regards,
>
> *Rasika Perera*
> Software Engineer
> M: +94 71 680 9060 E: [email protected]
> LinkedIn: http://lk.linkedin.com/in/rasika90
>
> WSO2 Inc. www.wso2.com
> lean.enterprise.middleware
>



-- 
With regards,
*Manu*ranga Perera.

phone : 071 7 70 20 50
mail : [email protected]
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to