Re: [Trinidad] Trinidad consuming 80-90% CPU

2010-01-11 Thread Matthias Wessendorf
Ravi, spoke to a guy that does performance testing/improvement for Oracle Applications. He said that there is some % CPU in Trindad but I would not give it more them 20%. The heavy hitters is getClientId (Blake - see dev@ thread - is doing some optimization there). Now if getProperty is some el

Re: [Trinidad] Trinidad consuming 80-90% CPU

2010-01-11 Thread Ravi
Matthias, If the issue is in bean, it should show up in my analysis. Also getProperty is only 40% CPU, there is additional 45% cpu consumed by rest of the trinidad classes totaling 85% total CPU, all within org.apache.myfaces.* classes Ravi Matthias Wessendorf wrote: Ravi, spoke to a

Re: [Trinidad] Trinidad consuming 80-90% CPU

2010-01-11 Thread Ravi Kapoor
Another thing, most of our EL expressions are one of the following types #{bean.active} or #{bean.get['memid']} Parsing of these expressions probably happens within org.apache.myfaces.* classes. These are fairly basic EL expressions and should not be taking much time. We know, the final getter

Re: [Trinidad] Trinidad consuming 80-90% CPU

2010-01-11 Thread Jakob Korherr
Maybe it happens when accessing the value from the Map with #{bean.get['memid']}, because the Map is not properly synchronized, thus its internal structure is broken and thus it is running in infinite loops. Are your resources properly synchronized? Just a guess in the blue... Regards, Jakob

Re: [Trinidad] Trinidad consuming 80-90% CPU

2010-01-11 Thread Ravi Kapoor
I am thinking if that was the case, I would see high CPU in java.util.HashMap instead of org.apache.faces.* If you disagree, please explain and I can try using HashTable to store data and get fresh numbers. On Mon, Jan 11, 2010 at 10:00 AM, Jakob Korherr jakob.korh...@gmail.comwrote: Maybe it

Re: [Trinidad] Trinidad consuming 80-90% CPU

2010-01-11 Thread Richard Yee
Ravi, We have load tested our Trinidad application with up to 800,000 page loads/hr. and the application handled it fine. We have also simulated up to 190 concurrent users. We are using MyFaces 1.1.5 and Trinidad 1.0.5. We are using the Oracle Application Server 10GR3 and are running on Linux.

Re: [Trinidad] Trinidad consuming 80-90% CPU

2010-01-11 Thread Jan-Kees van Andel
Hi Ravi, Just a stupid question. Are your beans extremely big? Since FacesBean doesn't do much locking/synchronizing (none if I'm correctly), the only reason I can imagine it to eat CPU cycles is because of its size... Also, is it possible for you to do a profiling run using VisualVM? I've been

Spring FilterSecurityInterceptor not been called for myfaces forwards

2010-01-11 Thread Madhav Bhargava
Hi All, I am using myfaces 1.1, icefaces 1.8.1, spring 2.5.6, spring security -2.0.5, WAS 6.0 (app server) I have configured spring security for my JSF application along with SiteMinder as an external authentication mechanism. It works fine till a forward happens from within myfaces. Here is

Re: [Trinidad] Trinidad consuming 80-90% CPU

2010-01-11 Thread Ravi Kapoor
Thanks Richard for the numbers. Can you also mention no of servers used, CPU and memory details of each server? Regards Ravi On Mon, Jan 11, 2010 at 3:00 PM, Richard Yee richard.k@gmail.comwrote: Ravi, We have load tested our Trinidad application with up to 800,000 page loads/hr. and the

Re: [Trinidad] Trinidad consuming 80-90% CPU

2010-01-11 Thread Ravi Kapoor
Jakob, The beans are not big. Also these tests have been performed under a single user to measure the CPU timing. So I doubt locking/synchronization is an issue. I would think that if there is synchronization, then the threads could be waiting for long time, but lack of synchronization can only

Re: [Trinidad] Trinidad consuming 80-90% CPU

2010-01-11 Thread Richard Yee
Ravi, If you are running on Windows, what does the TaskManager show as the CPU utilization? How much memory is also being used? 2Gb is not much memory for a production application. I have that much on my desktop. -Richard On Mon, Jan 11, 2010 at 1:05 PM, Ravi Kapoor ravikapoor...@gmail.comwrote:

Re: [Trinidad] Trinidad consuming 80-90% CPU

2010-01-11 Thread Ravi Kapoor
The memory 2GB is not much for a server but even that much is not being used (due to CPU constraint).Max memory used is about 1.1GB or so when CPU has hit 100%. The numbers I posted are from my desktop (which has 4GB memory) as it is easier to profile CPU on local desktop. The CPU usage is fairly

Re: [Trinidad] Trinidad consuming 80-90% CPU

2010-01-11 Thread Richard Yee
Our servers are made by Sun and have 4 AMD Opteron processessors with 16GB RAM. We are running in a cluster of 3 servers. -Richard On Mon, Jan 11, 2010 at 12:54 PM, Ravi Kapoor ravikapoor...@gmail.comwrote: Thanks Richard for the numbers. Can you also mention no of servers used, CPU and

Re: [Trinidad] Trinidad consuming 80-90% CPU

2010-01-11 Thread Ravi Kapoor
Jakob, I did install VisualVM but it is not capturing org.apache.* classes or com.mycompany.* classes. I did not find a setting on how to enable capturing data for all the classes I want. Can you tell me where to specity the packages for which I want to capture CPU usage? Vinay On Mon, Jan 11,

Re: Spring FilterSecurityInterceptor not been called for myfaces forwards

2010-01-11 Thread Jakob Korherr
Hi Madhav, JSF always submits back to the original view, if you hit a h:commandButton or h:commandLink. So if you are on index.jsp and hit for example a h:commandLink, you will get a request for index.jsp. However, after the action method on the server is finished, the server renders the new

Re: [Trinidad] Trinidad consuming 80-90% CPU

2010-01-11 Thread Jakob Korherr
Ravi, To your question: Can you explain little bit how lack of synchronization can add to CPU? I don't know exactly, but maybe it is possible that the internal structure of a Map (e.g. HashMap) can be destroyed when there are multiple change operations (put, remove, clear) at the same time,

Re: [Trinidad] Trinidad consuming 80-90% CPU

2010-01-11 Thread Ravi Kapoor
Oh I see what you are saying. We only create and populate the hashmap once, we never clear or delete from it. So that endless loop is not the problem. Also in that case the CPU wouldnt show up for org.apache.* classes. I guess you are looking for how to specify packages in VisualVM. This would

Re: [Trinidad] Trinidad consuming 80-90% CPU

2010-01-11 Thread Ravi
Richard, So basically your system can handle 18.5 pages/CPU/second. I can only wish we could get that kind of throughput. We can only get 2 page/CPU/second or so. If you can get that kind of performance, I wonder what is wrong with our environment. I think I need a good night sleep and

RE: Spring FilterSecurityInterceptor not been called for myfaces forwards

2010-01-11 Thread Madhav Bhargava
Thanks for your response Jakob. What you have mentioned is already known to me. That is the reason I have put a dispatcherFORWARD/dispatcher For Spring security filter. I should have made it a little more clear. Apologies for that. The forward from index.jsp to login.jsp is via jsp:forward.

Re: Spring FilterSecurityInterceptor not been called for myfaces forwards

2010-01-11 Thread Michael Kurz
Hi, which mapping do you use for your faces servlet: postfix (like *.jsf) or prefix (like /faces/*)? Maybe the real JSF urls are not listed in your intercepter config. regards Michael Madhav Bhargava schrieb: Hi All, I am using myfaces 1.1, icefaces 1.8.1, spring 2.5.6, spring security

RE: Spring FilterSecurityInterceptor not been called for myfaces forwards

2010-01-11 Thread Madhav Bhargava
Hi Michael, Following are the servlet mappings: servlet-mapping servlet-nameFaces Servlet/servlet-name url-pattern*.faces/url-pattern /servlet-mapping servlet-mapping servlet-nameFaces Servlet/servlet-name

RE: Spring FilterSecurityInterceptor not been called for myfaces forwards

2010-01-11 Thread Madhav Bhargava
To add if you see the spring security application config, I have the following set: security:http security:intercept-url pattern=/**/secure/** access=ROLE_USER / security:intercept-url pattern=/**/operations/** access=ROLE_OPERATIONS/ /security:http The URL for