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
