Re: Tomcat performance goes down after install apr.
Well, here is the information the platform (OS) redhat enterprise 6.4(64 bit) - the Java JVM version used (1.7.45) - the Tomcat version used (7.0.45) - the APR version used (APR from redhat cd) On Tue, Nov 11, 2014 at 5:00 PM, André Warnier a...@ice-sa.com wrote: 杨华杰 wrote: Tomcat performance goes down after install apr. I followed this doc http://tomcat.apache.org/native-doc/, I think the different is I didn't set sslengine setting as I don't use it. And I saw the error in catilina.out, I simply ignore it as I don't use it. I fired 300 concurrent calls from another server and I found tomcat just dead. Performance is much worse. Anything I did wrong? Hi. For a question like this (and basically any other question), you should really communicate - the platform (OS) under which you are running this - the Java JVM version used (x.y.z) - the Tomcat version used (x.y.z) - the APR version used (x.y.z) otherwise, how do you want anyone to comment ? - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Tomcat performance goes down after install apr.
杨华杰 wrote: Tomcat performance goes down after install apr. I followed this doc http://tomcat.apache.org/native-doc/, I think the different is I didn't set sslengine setting as I don't use it. And I saw the error in catilina.out, I simply ignore it as I don't use it. I fired 300 concurrent calls from another server and I found tomcat just dead. Performance is much worse. Anything I did wrong? Hi. For a question like this (and basically any other question), you should really communicate - the platform (OS) under which you are running this - the Java JVM version used (x.y.z) - the Tomcat version used (x.y.z) - the APR version used (x.y.z) otherwise, how do you want anyone to comment ? - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Tomcat performance goes down after install apr.
Tomcat performance goes down after install apr. I followed this doc http://tomcat.apache.org/native-doc/, I think the different is I didn't set sslengine setting as I don't use it. And I saw the error in catilina.out, I simply ignore it as I don't use it. I fired 300 concurrent calls from another server and I found tomcat just dead. Performance is much worse. Anything I did wrong?
Re: Need settings/configuration details to improve tomcat performance
Hi for better request handling you need to know all about tomcat connectors , just try jk_mod with tomcat http://tomcat.apache.org/tomcat-3.3-doc/mod_jk-howto.html http://tomcat.apache.org/connectors-doc/ On Wed, Sep 11, 2013 at 11:17 PM, Akbar Thanakalacheruvu akb...@sumtotalsystems.com wrote: Hi All We are deploying around 10 to 15 websites on a tomcat server where each website will have concurrency of 100 users at a given time. This concurrency will continue though out the day. So, I need settings/configuration details of tomcat server to improve its performance. Please forward/suggest me if you have any information on this. Regards Akbar This message and any attachments thereto contain information that may be privileged, confidential or otherwise protected from disclosure and is the property of SumTotal Systems, LLC It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message, any attachments thereto or any part thereof. If you receive this message in error, please notify me at akb...@sumtotalsystems.com mailto:akb...@sumtotalsystems.com and delete all copies of this message and attachments. SumTotal Systems, LLC has implemented anti-virus software on its computers and servers, however, it is the recipient's own responsibility to ensure that all attachments are scanned for viruses prior to usage.
Re: Need settings/configuration details to improve tomcat performance
On 9/11/2013 1:47 PM, Akbar Thanakalacheruvu wrote: Hi All We are deploying around 10 to 15 websites on a tomcat server where each website will have concurrency of 100 users at a given time. This concurrency will continue though out the day. So, I need settings/configuration details of tomcat server to improve its performance. Please forward/suggest me if you have any information on this. Are you sure you need to improve its performance? Have you found that its current performance is inadequate? If so, you will need to benchmark where your performance hits are coming from (database connections, disk I/O, network I/O, etc), and mitigate whichever one is most limiting first. Regards Akbar This message and any attachments thereto contain information that may be privileged, confidential or otherwise protected from disclosure and is the property of SumTotal Systems, LLC It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message, any attachments thereto or any part thereof. If you receive this message in error, please notify me at akb...@sumtotalsystems.commailto:akb...@sumtotalsystems.com and delete all copies of this message and attachments. SumTotal Systems, LLC has implemented anti-virus software on its computers and servers, however, it is the recipient's own responsibility to ensure that all attachments are scanned for viruses prior to usage. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Need settings/configuration details to improve tomcat performance
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Akbar, On 9/11/13 1:47 PM, Akbar Thanakalacheruvu wrote: We are deploying around 10 to 15 websites on a tomcat server where each website will have concurrency of 100 users at a given time. 100 sessions or 100 simultaneous requests/connections per webapp, for a total load of 1000-1500 concurrent requests? Are you configuring a single server, or a farm of server? Is a farm, how many nodes? Are you using distributed sessions? You have really provided no good information with your request. If I were a consultant, I'd tell you that your best bet is to bring-in my Sharepoint and SAP teams, and after a few tens of million dollars and a few years, you'll have everything your heart desires. But I'm not, and those products are rarely the proper solution ;) You didn't even say what Tomcat version you were running. I'd recommend upgrading from 3.2.3 to something more recent. This concurrency will continue though out the day. Doesn't really matter: if peak = steady, that just means your peak is probably incorrect :) So, I need settings/configuration details of tomcat server to improve its performance. Please forward/suggest me if you have any information on this. Aah... the perennial question: where is the fast configuration switch, and how do I turn it on? The short answer is that Tomcat is tuned pretty well in its default configuration. Only you can determine what settings are appropriate for your needs. Nobody can give you any tips of tricks to speed things up. That being said, Tomcat currently ships with the default BIO (blocking I/O) connector enabled. Using either the NIO (all Java) or APR (native) connector would probably be an improvement. If you are using SSL, I highly recommend the APR connector, as there is a measurable performance improvement using OpenSSL over JSSE. If you need to be able to handle 1000-1500 simultaneous connections, then you are going to have to either use more servers or raise the limits on your Connector (which default to 200 threads). The attributes you want to adjust depend upon the Connector you are using. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.14 (Darwin) Comment: GPGTools - http://gpgtools.org Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIcBAEBCAAGBQJSMK8ZAAoJEBzwKT+lPKRYIWgQAI9mCcSsc2OHrf3g3bPe5zzN GdRcBlVcY5LC6ZATOe0ychJj5268hV2N2GZmS2oasUHg8UNI0YKPG5+peQXaVBgP Cf/HQhCAXTxMzjfkCRQE/PHsaqOS3T10mbbwBfWgZiZ9yhlNlJ/5siswUKwdVlcM c8aRafWCYvwWIjeiwpWxX04GFvs6m2c2NlgdO56uVqsIPndup8QDmUOKF1D65II1 Yi4AjNkf/DjG50fbDE1K13qf/6c2x8kDJMEQcYWL7aEHwDz7Lhl+59A9UqI/ZFVr Lb+ASyb5qjTgrOgi887iIn4wnq8fl92sZg1Uz/rasqF/OBy1bwBedmeVEioEhDU0 8Tm9elxRwbY7Eh0Oil6YvyhOaB6TEcKwt5kCoLEJVcDnksdczaaOO5MG/X88k/+7 S0tQWkKSlvDFfL1GZxrcHMvNU/85NmCrpQp2zjBt7ysFBjT4rGuwmj3r6Q0hMth7 vUqmJ5XcO0E9Ahd/XiW3vYMivIlwpGru301NCxKkeWSUX+aAOuNNTOCt1wriXXCw 2YejCPM/s5oTWs5UxEGgOHEdWR6sg3AWmtsK4bfa8hbDiKgCpXlCRzuwxzbN/WyR F8EBSs+DxP1+cBAxNq1DPnCgxnGzx5n2NR6rjj6lxZL+9sl5S/8Bb430jyvbZNWa pFy6NACqKLwvoq545N4Q =X2MW -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Need settings/configuration details to improve tomcat performance
Hi All We are deploying around 10 to 15 websites on a tomcat server where each website will have concurrency of 100 users at a given time. This concurrency will continue though out the day. So, I need settings/configuration details of tomcat server to improve its performance. Please forward/suggest me if you have any information on this. Regards Akbar This message and any attachments thereto contain information that may be privileged, confidential or otherwise protected from disclosure and is the property of SumTotal Systems, LLC It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message, any attachments thereto or any part thereof. If you receive this message in error, please notify me at akb...@sumtotalsystems.commailto:akb...@sumtotalsystems.com and delete all copies of this message and attachments. SumTotal Systems, LLC has implemented anti-virus software on its computers and servers, however, it is the recipient's own responsibility to ensure that all attachments are scanned for viruses prior to usage.
Re: Need settings/configuration details to improve tomcat performance
Akbar Thanakalacheruvu wrote: Hi All We are deploying around 10 to 15 websites on a tomcat server where each website will have concurrency of 100 users at a given time. This concurrency will continue though out the day. So, I need settings/configuration details of tomcat server to improve its performance. Please forward/suggest me if you have any information on this. The term improving implies that there is a current situation, and you want to make it better. So what is the current situation ? Don't be afraid to provide some real data, if you want some real answers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Tomcat performance problem
On 25/11/2012 00:50, Alex Moskvin wrote: Hi, I am using Tomcat 7.0.30 and OpenEJB 4.5 to host high loaded app and at some point found with VisualVM there is a bottleneck when there is a lot of concurrent requests (about 400-600 req/sec). Requests and responses are small (usually not larger than 2kb in JSON format) - almost all CPU time is occupied by TaskQueue.poll() calls and general response latency becomes very slow. I tried APR/Nio connectors and different threading setting and that didn't help anyhow. Tuning (increasing) amount of threads in thread pools didn't help as well. Tests were conducted on Intel Core i7 3450, 8Gb RAM, 100Mb network, RHEL 6.3 x64. How to interpret this relatively low request rate? What I might be doing wrong? What can be tuned in Tomcat to improve request handling? Because we expect much larger request rate processing speed on the mentioned hardware. Here is a VisualVM top output: Hot spots - method; self time [%]; self time; self time (cpu) org.apache.tomcat.util.threads.TaskQueue.poll() 75.508965 57 668 249 ms (75,5%) 0,000 ms That indicates idle threads waiting for work to do. Not an issue. net.spy.memcached.internal.OperationFuture.get() 14.22508 10 864 079 ms (14,2%) 6 798 ms net.spy.memcached.internal.BulkGetFuture.internalGet() 5.644 4 308 270 ms (5,6%) 0,000 ms This is more interesting. That looks like the application is waiting for memCached to complete a task. I'd look into this first. org.apache.tomcat.util.net.NioEndpoint$Poller.run() 0.71728086 547 806 ms (0,7%) 530 252 ms That is the NIO connector's Poller processing incoming connections. I'm a little surprised to see this appearing rather than application code but given the relatively low % I'd not focus too much time on here just yet. Mark - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Tomcat performance problem
Hi Alex, Typically I have found the first issue is the response time of the database queries. Threads and sockets will start to reach a limit when this happens. Then after that is looked at then the next issue will be understanding what is really possible with the system. Just going from EJB container to Tomcat on an I7 will take at least 5-6msec. Depending on EJB types caching at that layer and the Tomcat layer may be needed. Sorry you are just starting tuning. It took me years to get to sub-millisecond response from Database to web service interface and to see it in my logs below a millisecond and then I started to see latency from network external to my company. Good Hunting. -Tony --- On Sat, 11/24/12, Alex Moskvin moskvin.alek...@gmail.com wrote: From: Alex Moskvin moskvin.alek...@gmail.com Subject: Tomcat performance problem To: users@tomcat.apache.org, users-h...@tomcat.apache.org Date: Saturday, November 24, 2012, 5:50 PM Hi, I am using Tomcat 7.0.30 and OpenEJB 4.5 to host high loaded app and at some point found with VisualVM there is a bottleneck when there is a lot of concurrent requests (about 400-600 req/sec). Requests and responses are small (usually not larger than 2kb in JSON format) - almost all CPU time is occupied by TaskQueue.poll() calls and general response latency becomes very slow. I tried APR/Nio connectors and different threading setting and that didn't help anyhow. Tuning (increasing) amount of threads in thread pools didn't help as well. Tests were conducted on Intel Core i7 3450, 8Gb RAM, 100Mb network, RHEL 6.3 x64. How to interpret this relatively low request rate? What I might be doing wrong? What can be tuned in Tomcat to improve request handling? Because we expect much larger request rate processing speed on the mentioned hardware. Here is a VisualVM top output: Hot spots - method; self time [%]; self time; self time (cpu) org.apache.tomcat.util.threads.TaskQueue.poll() 75.508965 57 668 249 ms (75,5%) 0,000 ms net.spy.memcached.internal.OperationFuture.get() 14.22508 10 864 079 ms (14,2%) 6 798 ms net.spy.memcached.internal.BulkGetFuture.internalGet() 5.644 4 308 270 ms (5,6%) 0,000 ms org.apache.tomcat.util.net.NioEndpoint$Poller.run() 0.71728086 547 806 ms (0,7%) 530 252 ms org.quartz.core.QuartzSchedulerThread.run() 0.69727546 532 528 ms (0,7%) 0,000 ms Regards, Alex
Re: Tomcat Performance Turning.
Hello Christopher, On Fri, Sep 2, 2011 at 11:52 PM, Christopher Schultz ch...@christopherschultz.net wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Leon, On 9/2/2011 4:19 PM, Leon Rosenberg wrote: holywarfrom my experience there is no need for apache in your setup anyway /holywar. Uh, load-balancing? Aeh... loadbalancer? There are both, soft and hardware solutions. regards Leon - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk5hUDgACgkQ9CaO5/Lv0PBfhQCdFwEDvm37L9QTe6FBns88RKLg 7ukAnikbIxI+y/oaskk/Zv/Y4aKPpYD9 =Dc+M -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Tomcat Performance Turning.
Hello Talha, On Fri, Sep 2, 2011 at 11:34 PM, Talha Fazal tfa...@credera.com wrote: Q. Have you tried running directly against tomcat without apache inbetween? A. Yes; this resolves the performance bottleneck. Than its pretty clear where to search, isn't it? Q. holywarfrom my experience there is no need for apache in your setup anyway /holywar. A. :-) The reasons for having apache in front: A) Create a DMZ and protect Tomcat from being exposed to outside attacks; You know that httpd does nothing but forwards each and single request to tomcat? So you are not really protect them, you just add another (time consuming) layer. B) Load balancing. You mentioned that you have 2 httpd servers, so all the traffic to 6 (or was it eight) tomcat servers are going through the two httpds? And how do you loadbalancer the 2 httpd servers? Regards Leon Thanks Leon! -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 3:19 PM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Hello Talha, On Fri, Sep 2, 2011 at 6:16 PM, Talha Fazal tfa...@credera.com wrote: PLEASE SEE MY ANSWERS BELOW IN UPPER CAPS. ONE IMPORTANT OBSERVATION: Even though, tomcat's response time is decent, for some reason, apache is taking a lot longer to serve requests. We are using mod_jk with Tomcat using AJP1.3 protocol in the connector setting in server.xml. We plan to try mod_proxy_ajp and mod_proxy instead of mod_jk. Any thoughts here? Interesting observation. Have you tried running directly against tomcat without apache inbetween? holywarfrom my experience there is no need for apache in your setup anyway /holywar. In the past we used both mod_jk and mod_proxy_ajp, and even mod_proxy_ajp is somewhat faster, the difference where never 17 seconds. Your best guess would probably be to test without httpd to rule out if tomcat or httpd is the bottleneck. regards Leon Thanks, -Original Message- From: R Batchelor [mailto:rsbat...@yahoo.com] Sent: Friday, September 02, 2011 10:10 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Have you ruled out issues with db connection pooling? NO. IN FACT, THERE ARE KNOWN DBCP CONNECTION POOLING DEADLOCK ISSUES IN TOMCAT 6.0.26 [https://issues.apache.org/jira/browse/DBCP-270]. I AM LOBBYING TO UPGRADE TO TOMCAT 7.0.20 AND USE THE JDBC CONNECTION POOL INSTEAD OF DBCP CONNECTION POOL. You might consider setting your dbcp maxWait to 8000 or less and watch for timeout waiting for idle object exceptions. Also, you could monitor database connections/active-users on the DB side to see if your dbcp pools are max'd but all the database users/connections are idle. These can be symptoms of an application mis-managing its dbcp pools. I WILL DEFINITELY TRY THIS OUT. THANKS! From: Leon Rosenberg rosenberg.l...@gmail.com To: Tomcat Users List users@tomcat.apache.org Sent: Friday, September 2, 2011 7:55 AM Subject: Re: Tomcat Performance Turning. Hello Talha, well... the quickshots are through. You should really create some threaddumps after each other (for example with jstack) and try to find out which thread is slowing the app down. For starters you could try with code you changed for tomcat adaptations if any. The problem seems to lie beneath the surface, so you will have to start performance monitoring and look into the inside. However, time difference of 17 seconds must be something very very obvious like a synchronized block in a valve/filter, db lock (have you checked the db locks?), or an if (tomcat) Thread.sleep(1000L*60*17); regards Leon On Fri, Sep 2, 2011 at 4:21 PM, Talha Fazal tfa...@credera.com wrote: Hi Leon, Please see any answers in CAPS below. -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 9:06 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Hello Talha, seems that your tomcats are fine. Question, you mention that the tomcat do not perform, but you don't tell us how you come to this conclusion except for cpu load. ANSWER: LOOKING INTO THE TOMCAT ACCESS LOGS, THE RESPONSE TIME (%D) IS HORRIBLE). What is the difference in response times between weblogic and tomcat? ANSWER: FOR PAGES THAT WEBLOGIC SERVES IN 500 ms ON AVERAGE, TOMCAT IS TAKING 17000 ms ON AVERAGE. Maybe your tomcat just perform the job MUCH faster ;-) The thread dump you posted in another reply indicates that your tomcats are idling. Do you have manager installed? NO. With manager you could monitor active connections and requests. Do you have probe installed? YES, WE HAVE IT INSTALLED. A LOT OF THREADS ARE IDLING IS WHAT WE OBSERVE. Finally, if you really want to profile your application, do you have moskito installed? :-) (the one i initially wrote -moskito.anotheria.net, therefore the shameless
Tomcat Performance Turning.
Background: We have a moderately high traffic web application (between 8 to 21 million hits/day) running Apache to serve static content (also to load balance and create a DMZ) and Weblogic to serve dynamic content (Struts 1.1 based Java web application). We are trying to replace Weblogic with Tomcat and we have ported our code to work with Tomcat. All works well in Tomcat in the DEV, QA, and STAGING environment as long as there is no real load. The Issue - Load Testing: In our staging environment for load testing, when we run the load test using 525 concurrent users, the app doesn't perform at all. The CPU usage (on Apache and Tomcat Servers) hovers between 7% to 8%. The database server CPU usage is also between 4 and 5%. Setup for Load Testing: We have setup 2 apache web servers (4 Quad Processors i.e. 16 CPUs each), 2 Tomcat (version 6.0.29) servers (4 Quad Processors i.e. 16 CPUs each). Each server has 32 Gb ram. We are using AJP 1.3 to connect Tomcat and Apache. Mentioned below is the version information: Apache Version 2.2.14 (with mod_jk module) Tomcat: 6.0.29 Database: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bits Connection Pool: DBCP. Mentioned below are connector settings in conf/server.xml: Connector address=stagingTCserver01 backlog=300 connectionTimeout=6 enableLookups=false maxPostSize=2097152 maxSpareThreads=10 maxThreads=30 minSpareThreads=5 port=8006 protocol=AJP/1.3 tcpNoDelay=true / Mentioned below are the settings for JNDI resource configured in conf/context.xml: Resource name=jdbc/onlinedb auth=Container type=javax.sql.DataSource driverClassName=oracle.jdbc.OracleDriver url=jdbc:oracle:thin:@192.168.12.10:1521:WEBDB initialSize=1 maxActive=30 minIdle=1 maxIdle=5 maxWait=30 poolPreparedStatements=true maxOpenPreparedStatements=300 validationQuery=SELECT 1 FROM BB_DUAL testOnBorrow=true validationInterval=1 testWhileIdle=true / JVM Parameters: -Xms512m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/WL2TC/app/ -verbose:gc -Xloggc:/logs/WL2TC/app/WL2TC_1-gc.log It must be noted that Weblogic setup performs very well using similar settings. Garbage Collection: While the load test is running, Garbage collection works just fine i.e. Young GC occurring every 2-3 minutes and takes less than half a second. Full GC occurs every hour and takes a little over 2 seconds. Any tips/pointers will be greatly appreciated. Talha.
Re: Tomcat Performance Turning.
Hello Talha, from a quick glance at your post, do you have the same 30 max threads limit in weblogic? Because sending 525 users through 2x30=60 max threads seems a little bottlenecky. Which software are you using to produce the load? Does it keepalive the connections? regards Leon On Fri, Sep 2, 2011 at 3:31 PM, Talha Fazal tfa...@credera.com wrote: Background: We have a moderately high traffic web application (between 8 to 21 million hits/day) running Apache to serve static content (also to load balance and create a DMZ) and Weblogic to serve dynamic content (Struts 1.1 based Java web application). We are trying to replace Weblogic with Tomcat and we have ported our code to work with Tomcat. All works well in Tomcat in the DEV, QA, and STAGING environment as long as there is no real load. The Issue - Load Testing: In our staging environment for load testing, when we run the load test using 525 concurrent users, the app doesn't perform at all. The CPU usage (on Apache and Tomcat Servers) hovers between 7% to 8%. The database server CPU usage is also between 4 and 5%. Setup for Load Testing: We have setup 2 apache web servers (4 Quad Processors i.e. 16 CPUs each), 2 Tomcat (version 6.0.29) servers (4 Quad Processors i.e. 16 CPUs each). Each server has 32 Gb ram. We are using AJP 1.3 to connect Tomcat and Apache. Mentioned below is the version information: Apache Version 2.2.14 (with mod_jk module) Tomcat: 6.0.29 Database: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bits Connection Pool: DBCP. Mentioned below are connector settings in conf/server.xml: Connector address=stagingTCserver01 backlog=300 connectionTimeout=6 enableLookups=false maxPostSize=2097152 maxSpareThreads=10 maxThreads=30 minSpareThreads=5 port=8006 protocol=AJP/1.3 tcpNoDelay=true / Mentioned below are the settings for JNDI resource configured in conf/context.xml: Resource name=jdbc/onlinedb auth=Container type=javax.sql.DataSource driverClassName=oracle.jdbc.OracleDriver url=jdbc:oracle:thin:@192.168.12.10:1521:WEBDB initialSize=1 maxActive=30 minIdle=1 maxIdle=5 maxWait=30 poolPreparedStatements=true maxOpenPreparedStatements=300 validationQuery=SELECT 1 FROM BB_DUAL testOnBorrow=true validationInterval=1 testWhileIdle=true / JVM Parameters: -Xms512m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/WL2TC/app/ -verbose:gc -Xloggc:/logs/WL2TC/app/WL2TC_1-gc.log It must be noted that Weblogic setup performs very well using similar settings. Garbage Collection: While the load test is running, Garbage collection works just fine i.e. Young GC occurring every 2-3 minutes and takes less than half a second. Full GC occurs every hour and takes a little over 2 seconds. Any tips/pointers will be greatly appreciated. Talha. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: Tomcat Performance Turning.
From: Talha Fazal [mailto:tfa...@credera.com] Subject: Tomcat Performance Turning. In our staging environment for load testing, when we run the load test using 525 concurrent users, the app doesn't perform at all. The CPU usage (on Apache and Tomcat Servers) hovers between 7% to 8%. The database server CPU usage is also between 4 and 5%. Since your CPU usage is low, your threads must be waiting for something. Take several thread dumps and find out what. http://wiki.apache.org/tomcat/HowTo#How_do_I_obtain_a_thread_dump_of_my_running_webapp_.3F (I'll guess maxThreads and data base connections; a max of 30 seems a bit low for 525 concurrent requests.) validationQuery=SELECT 1 FROM BB_DUAL Most DBs provide a very simple ping-like request capability; that would be preferable to a select. -Xms512m -Xmx2048m In a server environment, one normally sets Xms and Xmx to the same value to avoid heap thrashing. However, this is unrelated to your current problem. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: Tomcat Performance Turning.
Plz. see my answers below in UPPERCAPS. Thanks! -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 8:35 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Hello Talha, from a quick glance at your post, do you have the same 30 max threads limit in weblogic? YES. Because sending 525 users through 2x30=60 max threads seems a little bottlenecky. I FORGOT TO MENTION THAT ON EACH TOMCAT SERVER, WE ARE RUNNING 3 INSTANCES OF TOMCAT ON EACH OF OUR TOMCAT SERVERS (2 SERVERS), THUS 2*3*30=180 maxThreads. WE EVEN INCREASED THE maxThreads TO 120 FOR EACH INSTANCE (thus 120*6=720 maxThreads), AND MATCHED maxActive IN JNDI RESOURCE TO 120, BUT WE STILL DIDN'T SEE CONSIDERABLE IMPROVEMENT. THE CPU USAGE INCREASED FROM 7% to 10%. Which software are you using to produce the load? LOADRUNNER. Does it keepalive the connections? YES. regards Leon On Fri, Sep 2, 2011 at 3:31 PM, Talha Fazal tfa...@credera.com wrote: Background: We have a moderately high traffic web application (between 8 to 21 million hits/day) running Apache to serve static content (also to load balance and create a DMZ) and Weblogic to serve dynamic content (Struts 1.1 based Java web application). We are trying to replace Weblogic with Tomcat and we have ported our code to work with Tomcat. All works well in Tomcat in the DEV, QA, and STAGING environment as long as there is no real load. The Issue - Load Testing: In our staging environment for load testing, when we run the load test using 525 concurrent users, the app doesn't perform at all. The CPU usage (on Apache and Tomcat Servers) hovers between 7% to 8%. The database server CPU usage is also between 4 and 5%. Setup for Load Testing: We have setup 2 apache web servers (4 Quad Processors i.e. 16 CPUs each), 2 Tomcat (version 6.0.29) servers (4 Quad Processors i.e. 16 CPUs each). Each server has 32 Gb ram. We are using AJP 1.3 to connect Tomcat and Apache. Mentioned below is the version information: Apache Version 2.2.14 (with mod_jk module) Tomcat: 6.0.29 Database: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bits Connection Pool: DBCP. Mentioned below are connector settings in conf/server.xml: Connector address=stagingTCserver01 backlog=300 connectionTimeout=6 enableLookups=false maxPostSize=2097152 maxSpareThreads=10 maxThreads=30 minSpareThreads=5 port=8006 protocol=AJP/1.3 tcpNoDelay=true / Mentioned below are the settings for JNDI resource configured in conf/context.xml: Resource name=jdbc/onlinedb auth=Container type=javax.sql.DataSource driverClassName=oracle.jdbc.OracleDriver url=jdbc:oracle:thin:@192.168.12.10:1521:WEBDB initialSize=1 maxActive=30 minIdle=1 maxIdle=5 maxWait=30 poolPreparedStatements=true maxOpenPreparedStatements=300 validationQuery=SELECT 1 FROM BB_DUAL testOnBorrow=true validationInterval=1 testWhileIdle=true / JVM Parameters: -Xms512m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/WL2TC/app/ -verbose:gc -Xloggc:/logs/WL2TC/app/WL2TC_1-gc.log It must be noted that Weblogic setup performs very well using similar settings. Garbage Collection: While the load test is running, Garbage collection works just fine i.e. Young GC occurring every 2-3 minutes and takes less than half a second. Full GC occurs every hour and takes a little over 2 seconds. Any tips/pointers will be greatly appreciated. Talha. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: Tomcat Performance Turning.
Thx Charles! We did take a thread dump and we found a lot of threads locked. Please see a short sample below: http-8014-9 daemon prio=10 tid=0x60965c00 nid=0x6c83 in Object.wait() [0x4c688000..0x4c688c90] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:458) - locked 0x2aaae10403b0 (a org.apache.tomcat.util.net.JIoEndpoint$Worker) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:484) at java.lang.Thread.run(Thread.java:619) Sincerely, Talha. -Original Message- From: Caldarale, Charles R [mailto:chuck.caldar...@unisys.com] Sent: Friday, September 02, 2011 8:42 AM To: Tomcat Users List Subject: RE: Tomcat Performance Turning. From: Talha Fazal [mailto:tfa...@credera.com] Subject: Tomcat Performance Turning. In our staging environment for load testing, when we run the load test using 525 concurrent users, the app doesn't perform at all. The CPU usage (on Apache and Tomcat Servers) hovers between 7% to 8%. The database server CPU usage is also between 4 and 5%. Since your CPU usage is low, your threads must be waiting for something. Take several thread dumps and find out what. http://wiki.apache.org/tomcat/HowTo#How_do_I_obtain_a_thread_dump_of_my_running_webapp_.3F (I'll guess maxThreads and data base connections; a max of 30 seems a bit low for 525 concurrent requests.) validationQuery=SELECT 1 FROM BB_DUAL Most DBs provide a very simple ping-like request capability; that would be preferable to a select. -Xms512m -Xmx2048m In a server environment, one normally sets Xms and Xmx to the same value to avoid heap thrashing. However, this is unrelated to your current problem. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Tomcat Performance Turning.
Hello Talha, seems that your tomcats are fine. Question, you mention that the tomcat do not perform, but you don't tell us how you come to this conclusion except for cpu load. What is the difference in response times between weblogic and tomcat? Maybe your tomcat just perform the job MUCH faster ;-) The thread dump you posted in another reply indicates that your tomcats are idling. Do you have manager installed? With manager you could monitor active connections and requests. Do you have probe installed? Finally, if you really want to profile your application, do you have moskito installed? :-) (the one i initially wrote -moskito.anotheria.net, therefore the shameless advertisement). In the last case I can offer you to provide support getting it running. regards Leon On Fri, Sep 2, 2011 at 3:50 PM, Talha Fazal tfa...@credera.com wrote: Plz. see my answers below in UPPERCAPS. Thanks! -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 8:35 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Hello Talha, from a quick glance at your post, do you have the same 30 max threads limit in weblogic? YES. Because sending 525 users through 2x30=60 max threads seems a little bottlenecky. I FORGOT TO MENTION THAT ON EACH TOMCAT SERVER, WE ARE RUNNING 3 INSTANCES OF TOMCAT ON EACH OF OUR TOMCAT SERVERS (2 SERVERS), THUS 2*3*30=180 maxThreads. WE EVEN INCREASED THE maxThreads TO 120 FOR EACH INSTANCE (thus 120*6=720 maxThreads), AND MATCHED maxActive IN JNDI RESOURCE TO 120, BUT WE STILL DIDN'T SEE CONSIDERABLE IMPROVEMENT. THE CPU USAGE INCREASED FROM 7% to 10%. Which software are you using to produce the load? LOADRUNNER. Does it keepalive the connections? YES. regards Leon On Fri, Sep 2, 2011 at 3:31 PM, Talha Fazal tfa...@credera.com wrote: Background: We have a moderately high traffic web application (between 8 to 21 million hits/day) running Apache to serve static content (also to load balance and create a DMZ) and Weblogic to serve dynamic content (Struts 1.1 based Java web application). We are trying to replace Weblogic with Tomcat and we have ported our code to work with Tomcat. All works well in Tomcat in the DEV, QA, and STAGING environment as long as there is no real load. The Issue - Load Testing: In our staging environment for load testing, when we run the load test using 525 concurrent users, the app doesn't perform at all. The CPU usage (on Apache and Tomcat Servers) hovers between 7% to 8%. The database server CPU usage is also between 4 and 5%. Setup for Load Testing: We have setup 2 apache web servers (4 Quad Processors i.e. 16 CPUs each), 2 Tomcat (version 6.0.29) servers (4 Quad Processors i.e. 16 CPUs each). Each server has 32 Gb ram. We are using AJP 1.3 to connect Tomcat and Apache. Mentioned below is the version information: Apache Version 2.2.14 (with mod_jk module) Tomcat: 6.0.29 Database: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bits Connection Pool: DBCP. Mentioned below are connector settings in conf/server.xml: Connector address=stagingTCserver01 backlog=300 connectionTimeout=6 enableLookups=false maxPostSize=2097152 maxSpareThreads=10 maxThreads=30 minSpareThreads=5 port=8006 protocol=AJP/1.3 tcpNoDelay=true / Mentioned below are the settings for JNDI resource configured in conf/context.xml: Resource name=jdbc/onlinedb auth=Container type=javax.sql.DataSource driverClassName=oracle.jdbc.OracleDriver url=jdbc:oracle:thin:@192.168.12.10:1521:WEBDB initialSize=1 maxActive=30 minIdle=1 maxIdle=5 maxWait=30 poolPreparedStatements=true maxOpenPreparedStatements=300 validationQuery=SELECT 1 FROM BB_DUAL testOnBorrow=true validationInterval=1 testWhileIdle=true / JVM Parameters: -Xms512m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/WL2TC/app/ -verbose:gc -Xloggc:/logs/WL2TC/app/WL2TC_1-gc.log It must be noted that Weblogic setup performs very well using similar settings. Garbage Collection: While the load test is running, Garbage collection works just fine i.e. Young GC occurring every 2-3 minutes and takes less than half a second. Full GC occurs every hour and takes a little over 2 seconds. Any tips/pointers will be greatly appreciated. Talha. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail
RE: Tomcat Performance Turning.
From: Talha Fazal [mailto:tfa...@credera.com] Subject: RE: Tomcat Performance Turning. We did take a thread dump and we found a lot of threads locked. http-8014-9 daemon prio=10 tid=0x60965c00 nid=0x6c83 in Object.wait() at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:458) Often, a throughput problem is not the many, but just one that is holding all of the others up. The example you cite above is simply a thread waiting for something to do. Do you perhaps have a network problem, where requests are simply not getting delivered to httpd or Tomcat in a timely fashion? - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: Tomcat Performance Turning.
Hi Leon, Please see any answers in CAPS below. -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 9:06 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Hello Talha, seems that your tomcats are fine. Question, you mention that the tomcat do not perform, but you don't tell us how you come to this conclusion except for cpu load. ANSWER: LOOKING INTO THE TOMCAT ACCESS LOGS, THE RESPONSE TIME (%D) IS HORRIBLE). What is the difference in response times between weblogic and tomcat? ANSWER: FOR PAGES THAT WEBLOGIC SERVES IN 500 ms ON AVERAGE, TOMCAT IS TAKING 17000 ms ON AVERAGE. Maybe your tomcat just perform the job MUCH faster ;-) The thread dump you posted in another reply indicates that your tomcats are idling. Do you have manager installed? NO. With manager you could monitor active connections and requests. Do you have probe installed? YES, WE HAVE IT INSTALLED. A LOT OF THREADS ARE IDLING IS WHAT WE OBSERVE. Finally, if you really want to profile your application, do you have moskito installed? :-) (the one i initially wrote -moskito.anotheria.net, therefore the shameless advertisement). :-) SURE WILL GIVE IT A TRY [TIME PERMITTING]. In the last case I can offer you to provide support getting it running. WILL LET YOU KNOW IF WE ARE INTERESTED. THANKS. regards Leon On Fri, Sep 2, 2011 at 3:50 PM, Talha Fazal tfa...@credera.com wrote: Plz. see my answers below in UPPERCAPS. Thanks! -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 8:35 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Hello Talha, from a quick glance at your post, do you have the same 30 max threads limit in weblogic? YES. Because sending 525 users through 2x30=60 max threads seems a little bottlenecky. I FORGOT TO MENTION THAT ON EACH TOMCAT SERVER, WE ARE RUNNING 3 INSTANCES OF TOMCAT ON EACH OF OUR TOMCAT SERVERS (2 SERVERS), THUS 2*3*30=180 maxThreads. WE EVEN INCREASED THE maxThreads TO 120 FOR EACH INSTANCE (thus 120*6=720 maxThreads), AND MATCHED maxActive IN JNDI RESOURCE TO 120, BUT WE STILL DIDN'T SEE CONSIDERABLE IMPROVEMENT. THE CPU USAGE INCREASED FROM 7% to 10%. Which software are you using to produce the load? LOADRUNNER. Does it keepalive the connections? YES. regards Leon On Fri, Sep 2, 2011 at 3:31 PM, Talha Fazal tfa...@credera.com wrote: Background: We have a moderately high traffic web application (between 8 to 21 million hits/day) running Apache to serve static content (also to load balance and create a DMZ) and Weblogic to serve dynamic content (Struts 1.1 based Java web application). We are trying to replace Weblogic with Tomcat and we have ported our code to work with Tomcat. All works well in Tomcat in the DEV, QA, and STAGING environment as long as there is no real load. The Issue - Load Testing: In our staging environment for load testing, when we run the load test using 525 concurrent users, the app doesn't perform at all. The CPU usage (on Apache and Tomcat Servers) hovers between 7% to 8%. The database server CPU usage is also between 4 and 5%. Setup for Load Testing: We have setup 2 apache web servers (4 Quad Processors i.e. 16 CPUs each), 2 Tomcat (version 6.0.29) servers (4 Quad Processors i.e. 16 CPUs each). Each server has 32 Gb ram. We are using AJP 1.3 to connect Tomcat and Apache. Mentioned below is the version information: Apache Version 2.2.14 (with mod_jk module) Tomcat: 6.0.29 Database: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bits Connection Pool: DBCP. Mentioned below are connector settings in conf/server.xml: Connector address=stagingTCserver01 backlog=300 connectionTimeout=6 enableLookups=false maxPostSize=2097152 maxSpareThreads=10 maxThreads=30 minSpareThreads=5 port=8006 protocol=AJP/1.3 tcpNoDelay=true / Mentioned below are the settings for JNDI resource configured in conf/context.xml: Resource name=jdbc/onlinedb auth=Container type=javax.sql.DataSource driverClassName=oracle.jdbc.OracleDriver url=jdbc:oracle:thin:@192.168.12.10:1521:WEBDB initialSize=1 maxActive=30 minIdle=1 maxIdle=5 maxWait=30 poolPreparedStatements=true maxOpenPreparedStatements=300 validationQuery=SELECT 1 FROM BB_DUAL testOnBorrow=true validationInterval=1 testWhileIdle=true / JVM Parameters: -Xms512m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/WL2TC/app/ -verbose:gc -Xloggc:/logs/WL2TC/app/WL2TC_1-gc.log It must be noted that Weblogic setup performs very well using similar settings. Garbage Collection: While the load test is running
RE: Tomcat Performance Turning.
WE GENERATE REPORT ON NETWORK BACKLOG USING ADVANCED TOOLS, WHICH INDICATE NEGLIGIBLE NETWORK DELAY. AT ONE POINT TO TIME THIS WAS AN ISSUE. WE INCREASED THE BANDWIDTH FROM 45 MBPS TO 100 MBPS WHICH RESOLVED THE ISSUE. THANKS, TALHA. -Original Message- From: Caldarale, Charles R [mailto:chuck.caldar...@unisys.com] Sent: Friday, September 02, 2011 9:16 AM To: Tomcat Users List Subject: RE: Tomcat Performance Turning. From: Talha Fazal [mailto:tfa...@credera.com] Subject: RE: Tomcat Performance Turning. We did take a thread dump and we found a lot of threads locked. http-8014-9 daemon prio=10 tid=0x60965c00 nid=0x6c83 in Object.wait() at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:458) Often, a throughput problem is not the many, but just one that is holding all of the others up. The example you cite above is simply a thread waiting for something to do. Do you perhaps have a network problem, where requests are simply not getting delivered to httpd or Tomcat in a timely fashion? - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Tomcat Performance Turning.
Hello Talha, well... the quickshots are through. You should really create some threaddumps after each other (for example with jstack) and try to find out which thread is slowing the app down. For starters you could try with code you changed for tomcat adaptations if any. The problem seems to lie beneath the surface, so you will have to start performance monitoring and look into the inside. However, time difference of 17 seconds must be something very very obvious like a synchronized block in a valve/filter, db lock (have you checked the db locks?), or an if (tomcat) Thread.sleep(1000L*60*17); regards Leon On Fri, Sep 2, 2011 at 4:21 PM, Talha Fazal tfa...@credera.com wrote: Hi Leon, Please see any answers in CAPS below. -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 9:06 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Hello Talha, seems that your tomcats are fine. Question, you mention that the tomcat do not perform, but you don't tell us how you come to this conclusion except for cpu load. ANSWER: LOOKING INTO THE TOMCAT ACCESS LOGS, THE RESPONSE TIME (%D) IS HORRIBLE). What is the difference in response times between weblogic and tomcat? ANSWER: FOR PAGES THAT WEBLOGIC SERVES IN 500 ms ON AVERAGE, TOMCAT IS TAKING 17000 ms ON AVERAGE. Maybe your tomcat just perform the job MUCH faster ;-) The thread dump you posted in another reply indicates that your tomcats are idling. Do you have manager installed? NO. With manager you could monitor active connections and requests. Do you have probe installed? YES, WE HAVE IT INSTALLED. A LOT OF THREADS ARE IDLING IS WHAT WE OBSERVE. Finally, if you really want to profile your application, do you have moskito installed? :-) (the one i initially wrote -moskito.anotheria.net, therefore the shameless advertisement). :-) SURE WILL GIVE IT A TRY [TIME PERMITTING]. In the last case I can offer you to provide support getting it running. WILL LET YOU KNOW IF WE ARE INTERESTED. THANKS. regards Leon On Fri, Sep 2, 2011 at 3:50 PM, Talha Fazal tfa...@credera.com wrote: Plz. see my answers below in UPPERCAPS. Thanks! -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 8:35 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Hello Talha, from a quick glance at your post, do you have the same 30 max threads limit in weblogic? YES. Because sending 525 users through 2x30=60 max threads seems a little bottlenecky. I FORGOT TO MENTION THAT ON EACH TOMCAT SERVER, WE ARE RUNNING 3 INSTANCES OF TOMCAT ON EACH OF OUR TOMCAT SERVERS (2 SERVERS), THUS 2*3*30=180 maxThreads. WE EVEN INCREASED THE maxThreads TO 120 FOR EACH INSTANCE (thus 120*6=720 maxThreads), AND MATCHED maxActive IN JNDI RESOURCE TO 120, BUT WE STILL DIDN'T SEE CONSIDERABLE IMPROVEMENT. THE CPU USAGE INCREASED FROM 7% to 10%. Which software are you using to produce the load? LOADRUNNER. Does it keepalive the connections? YES. regards Leon On Fri, Sep 2, 2011 at 3:31 PM, Talha Fazal tfa...@credera.com wrote: Background: We have a moderately high traffic web application (between 8 to 21 million hits/day) running Apache to serve static content (also to load balance and create a DMZ) and Weblogic to serve dynamic content (Struts 1.1 based Java web application). We are trying to replace Weblogic with Tomcat and we have ported our code to work with Tomcat. All works well in Tomcat in the DEV, QA, and STAGING environment as long as there is no real load. The Issue - Load Testing: In our staging environment for load testing, when we run the load test using 525 concurrent users, the app doesn't perform at all. The CPU usage (on Apache and Tomcat Servers) hovers between 7% to 8%. The database server CPU usage is also between 4 and 5%. Setup for Load Testing: We have setup 2 apache web servers (4 Quad Processors i.e. 16 CPUs each), 2 Tomcat (version 6.0.29) servers (4 Quad Processors i.e. 16 CPUs each). Each server has 32 Gb ram. We are using AJP 1.3 to connect Tomcat and Apache. Mentioned below is the version information: Apache Version 2.2.14 (with mod_jk module) Tomcat: 6.0.29 Database: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bits Connection Pool: DBCP. Mentioned below are connector settings in conf/server.xml: Connector address=stagingTCserver01 backlog=300 connectionTimeout=6 enableLookups=false maxPostSize=2097152 maxSpareThreads=10 maxThreads=30 minSpareThreads=5 port=8006 protocol=AJP/1.3 tcpNoDelay=true / Mentioned below are the settings for JNDI resource configured in conf/context.xml: Resource name=jdbc/onlinedb auth=Container type=javax.sql.DataSource driverClassName
Re: Tomcat Performance Turning.
Have you ruled out issues with db connection pooling? You might consider setting your dbcp maxWait to 8000 or less and watch for timeout waiting for idle object exceptions. Also, you could monitor database connections/active-users on the DB side to see if your dbcp pools are max'd but all the database users/connections are idle. These can be symptoms of an application mis-managing its dbcp pools. From: Leon Rosenberg rosenberg.l...@gmail.com To: Tomcat Users List users@tomcat.apache.org Sent: Friday, September 2, 2011 7:55 AM Subject: Re: Tomcat Performance Turning. Hello Talha, well... the quickshots are through. You should really create some threaddumps after each other (for example with jstack) and try to find out which thread is slowing the app down. For starters you could try with code you changed for tomcat adaptations if any. The problem seems to lie beneath the surface, so you will have to start performance monitoring and look into the inside. However, time difference of 17 seconds must be something very very obvious like a synchronized block in a valve/filter, db lock (have you checked the db locks?), or an if (tomcat) Thread.sleep(1000L*60*17); regards Leon On Fri, Sep 2, 2011 at 4:21 PM, Talha Fazal tfa...@credera.com wrote: Hi Leon, Please see any answers in CAPS below. -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 9:06 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Hello Talha, seems that your tomcats are fine. Question, you mention that the tomcat do not perform, but you don't tell us how you come to this conclusion except for cpu load. ANSWER: LOOKING INTO THE TOMCAT ACCESS LOGS, THE RESPONSE TIME (%D) IS HORRIBLE). What is the difference in response times between weblogic and tomcat? ANSWER: FOR PAGES THAT WEBLOGIC SERVES IN 500 ms ON AVERAGE, TOMCAT IS TAKING 17000 ms ON AVERAGE. Maybe your tomcat just perform the job MUCH faster ;-) The thread dump you posted in another reply indicates that your tomcats are idling. Do you have manager installed? NO. With manager you could monitor active connections and requests. Do you have probe installed? YES, WE HAVE IT INSTALLED. A LOT OF THREADS ARE IDLING IS WHAT WE OBSERVE. Finally, if you really want to profile your application, do you have moskito installed? :-) (the one i initially wrote -moskito.anotheria.net, therefore the shameless advertisement). :-) SURE WILL GIVE IT A TRY [TIME PERMITTING]. In the last case I can offer you to provide support getting it running. WILL LET YOU KNOW IF WE ARE INTERESTED. THANKS. regards Leon On Fri, Sep 2, 2011 at 3:50 PM, Talha Fazal tfa...@credera.com wrote: Plz. see my answers below in UPPERCAPS. Thanks! -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 8:35 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Hello Talha, from a quick glance at your post, do you have the same 30 max threads limit in weblogic? YES. Because sending 525 users through 2x30=60 max threads seems a little bottlenecky. I FORGOT TO MENTION THAT ON EACH TOMCAT SERVER, WE ARE RUNNING 3 INSTANCES OF TOMCAT ON EACH OF OUR TOMCAT SERVERS (2 SERVERS), THUS 2*3*30=180 maxThreads. WE EVEN INCREASED THE maxThreads TO 120 FOR EACH INSTANCE (thus 120*6=720 maxThreads), AND MATCHED maxActive IN JNDI RESOURCE TO 120, BUT WE STILL DIDN'T SEE CONSIDERABLE IMPROVEMENT. THE CPU USAGE INCREASED FROM 7% to 10%. Which software are you using to produce the load? LOADRUNNER. Does it keepalive the connections? YES. regards Leon On Fri, Sep 2, 2011 at 3:31 PM, Talha Fazal tfa...@credera.com wrote: Background: We have a moderately high traffic web application (between 8 to 21 million hits/day) running Apache to serve static content (also to load balance and create a DMZ) and Weblogic to serve dynamic content (Struts 1.1 based Java web application). We are trying to replace Weblogic with Tomcat and we have ported our code to work with Tomcat. All works well in Tomcat in the DEV, QA, and STAGING environment as long as there is no real load. The Issue - Load Testing: In our staging environment for load testing, when we run the load test using 525 concurrent users, the app doesn't perform at all. The CPU usage (on Apache and Tomcat Servers) hovers between 7% to 8%. The database server CPU usage is also between 4 and 5%. Setup for Load Testing: We have setup 2 apache web servers (4 Quad Processors i.e. 16 CPUs each), 2 Tomcat (version 6.0.29) servers (4 Quad Processors i.e. 16 CPUs each). Each server has 32 Gb ram. We are using AJP 1.3 to connect Tomcat and Apache. Mentioned below is the version information: Apache Version 2.2.14 (with mod_jk module) Tomcat: 6.0.29 Database: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
RE: Tomcat Performance Turning.
PLEASE SEE MY ANSWERS BELOW IN UPPER CAPS. ONE IMPORTANT OBSERVATION: Even though, tomcat's response time is decent, for some reason, apache is taking a lot longer to serve requests. We are using mod_jk with Tomcat using AJP1.3 protocol in the connector setting in server.xml. We plan to try mod_proxy_ajp and mod_proxy instead of mod_jk. Any thoughts here? Thanks, -Original Message- From: R Batchelor [mailto:rsbat...@yahoo.com] Sent: Friday, September 02, 2011 10:10 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Have you ruled out issues with db connection pooling? NO. IN FACT, THERE ARE KNOWN DBCP CONNECTION POOLING DEADLOCK ISSUES IN TOMCAT 6.0.26 [https://issues.apache.org/jira/browse/DBCP-270]. I AM LOBBYING TO UPGRADE TO TOMCAT 7.0.20 AND USE THE JDBC CONNECTION POOL INSTEAD OF DBCP CONNECTION POOL. You might consider setting your dbcp maxWait to 8000 or less and watch for timeout waiting for idle object exceptions. Also, you could monitor database connections/active-users on the DB side to see if your dbcp pools are max'd but all the database users/connections are idle. These can be symptoms of an application mis-managing its dbcp pools. I WILL DEFINITELY TRY THIS OUT. THANKS! From: Leon Rosenberg rosenberg.l...@gmail.com To: Tomcat Users List users@tomcat.apache.org Sent: Friday, September 2, 2011 7:55 AM Subject: Re: Tomcat Performance Turning. Hello Talha, well... the quickshots are through. You should really create some threaddumps after each other (for example with jstack) and try to find out which thread is slowing the app down. For starters you could try with code you changed for tomcat adaptations if any. The problem seems to lie beneath the surface, so you will have to start performance monitoring and look into the inside. However, time difference of 17 seconds must be something very very obvious like a synchronized block in a valve/filter, db lock (have you checked the db locks?), or an if (tomcat) Thread.sleep(1000L*60*17); regards Leon On Fri, Sep 2, 2011 at 4:21 PM, Talha Fazal tfa...@credera.com wrote: Hi Leon, Please see any answers in CAPS below. -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 9:06 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Hello Talha, seems that your tomcats are fine. Question, you mention that the tomcat do not perform, but you don't tell us how you come to this conclusion except for cpu load. ANSWER: LOOKING INTO THE TOMCAT ACCESS LOGS, THE RESPONSE TIME (%D) IS HORRIBLE). What is the difference in response times between weblogic and tomcat? ANSWER: FOR PAGES THAT WEBLOGIC SERVES IN 500 ms ON AVERAGE, TOMCAT IS TAKING 17000 ms ON AVERAGE. Maybe your tomcat just perform the job MUCH faster ;-) The thread dump you posted in another reply indicates that your tomcats are idling. Do you have manager installed? NO. With manager you could monitor active connections and requests. Do you have probe installed? YES, WE HAVE IT INSTALLED. A LOT OF THREADS ARE IDLING IS WHAT WE OBSERVE. Finally, if you really want to profile your application, do you have moskito installed? :-) (the one i initially wrote -moskito.anotheria.net, therefore the shameless advertisement). :-) SURE WILL GIVE IT A TRY [TIME PERMITTING]. In the last case I can offer you to provide support getting it running. WILL LET YOU KNOW IF WE ARE INTERESTED. THANKS. regards Leon On Fri, Sep 2, 2011 at 3:50 PM, Talha Fazal tfa...@credera.com wrote: Plz. see my answers below in UPPERCAPS. Thanks! -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 8:35 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Hello Talha, from a quick glance at your post, do you have the same 30 max threads limit in weblogic? YES. Because sending 525 users through 2x30=60 max threads seems a little bottlenecky. I FORGOT TO MENTION THAT ON EACH TOMCAT SERVER, WE ARE RUNNING 3 INSTANCES OF TOMCAT ON EACH OF OUR TOMCAT SERVERS (2 SERVERS), THUS 2*3*30=180 maxThreads. WE EVEN INCREASED THE maxThreads TO 120 FOR EACH INSTANCE (thus 120*6=720 maxThreads), AND MATCHED maxActive IN JNDI RESOURCE TO 120, BUT WE STILL DIDN'T SEE CONSIDERABLE IMPROVEMENT. THE CPU USAGE INCREASED FROM 7% to 10%. Which software are you using to produce the load? LOADRUNNER. Does it keepalive the connections? YES. regards Leon On Fri, Sep 2, 2011 at 3:31 PM, Talha Fazal tfa...@credera.com wrote: Background: We have a moderately high traffic web application (between 8 to 21 million hits/day) running Apache to serve static content (also to load balance and create a DMZ) and Weblogic to serve dynamic content (Struts 1.1 based Java web application). We are trying to replace Weblogic with Tomcat and we have ported our code to work
Re: Tomcat Performance Turning.
Hello Talha, On Fri, Sep 2, 2011 at 6:16 PM, Talha Fazal tfa...@credera.com wrote: PLEASE SEE MY ANSWERS BELOW IN UPPER CAPS. ONE IMPORTANT OBSERVATION: Even though, tomcat's response time is decent, for some reason, apache is taking a lot longer to serve requests. We are using mod_jk with Tomcat using AJP1.3 protocol in the connector setting in server.xml. We plan to try mod_proxy_ajp and mod_proxy instead of mod_jk. Any thoughts here? Interesting observation. Have you tried running directly against tomcat without apache inbetween? holywarfrom my experience there is no need for apache in your setup anyway /holywar. In the past we used both mod_jk and mod_proxy_ajp, and even mod_proxy_ajp is somewhat faster, the difference where never 17 seconds. Your best guess would probably be to test without httpd to rule out if tomcat or httpd is the bottleneck. regards Leon Thanks, -Original Message- From: R Batchelor [mailto:rsbat...@yahoo.com] Sent: Friday, September 02, 2011 10:10 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Have you ruled out issues with db connection pooling? NO. IN FACT, THERE ARE KNOWN DBCP CONNECTION POOLING DEADLOCK ISSUES IN TOMCAT 6.0.26 [https://issues.apache.org/jira/browse/DBCP-270]. I AM LOBBYING TO UPGRADE TO TOMCAT 7.0.20 AND USE THE JDBC CONNECTION POOL INSTEAD OF DBCP CONNECTION POOL. You might consider setting your dbcp maxWait to 8000 or less and watch for timeout waiting for idle object exceptions. Also, you could monitor database connections/active-users on the DB side to see if your dbcp pools are max'd but all the database users/connections are idle. These can be symptoms of an application mis-managing its dbcp pools. I WILL DEFINITELY TRY THIS OUT. THANKS! From: Leon Rosenberg rosenberg.l...@gmail.com To: Tomcat Users List users@tomcat.apache.org Sent: Friday, September 2, 2011 7:55 AM Subject: Re: Tomcat Performance Turning. Hello Talha, well... the quickshots are through. You should really create some threaddumps after each other (for example with jstack) and try to find out which thread is slowing the app down. For starters you could try with code you changed for tomcat adaptations if any. The problem seems to lie beneath the surface, so you will have to start performance monitoring and look into the inside. However, time difference of 17 seconds must be something very very obvious like a synchronized block in a valve/filter, db lock (have you checked the db locks?), or an if (tomcat) Thread.sleep(1000L*60*17); regards Leon On Fri, Sep 2, 2011 at 4:21 PM, Talha Fazal tfa...@credera.com wrote: Hi Leon, Please see any answers in CAPS below. -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 9:06 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Hello Talha, seems that your tomcats are fine. Question, you mention that the tomcat do not perform, but you don't tell us how you come to this conclusion except for cpu load. ANSWER: LOOKING INTO THE TOMCAT ACCESS LOGS, THE RESPONSE TIME (%D) IS HORRIBLE). What is the difference in response times between weblogic and tomcat? ANSWER: FOR PAGES THAT WEBLOGIC SERVES IN 500 ms ON AVERAGE, TOMCAT IS TAKING 17000 ms ON AVERAGE. Maybe your tomcat just perform the job MUCH faster ;-) The thread dump you posted in another reply indicates that your tomcats are idling. Do you have manager installed? NO. With manager you could monitor active connections and requests. Do you have probe installed? YES, WE HAVE IT INSTALLED. A LOT OF THREADS ARE IDLING IS WHAT WE OBSERVE. Finally, if you really want to profile your application, do you have moskito installed? :-) (the one i initially wrote -moskito.anotheria.net, therefore the shameless advertisement). :-) SURE WILL GIVE IT A TRY [TIME PERMITTING]. In the last case I can offer you to provide support getting it running. WILL LET YOU KNOW IF WE ARE INTERESTED. THANKS. regards Leon On Fri, Sep 2, 2011 at 3:50 PM, Talha Fazal tfa...@credera.com wrote: Plz. see my answers below in UPPERCAPS. Thanks! -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 8:35 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Hello Talha, from a quick glance at your post, do you have the same 30 max threads limit in weblogic? YES. Because sending 525 users through 2x30=60 max threads seems a little bottlenecky. I FORGOT TO MENTION THAT ON EACH TOMCAT SERVER, WE ARE RUNNING 3 INSTANCES OF TOMCAT ON EACH OF OUR TOMCAT SERVERS (2 SERVERS), THUS 2*3*30=180 maxThreads. WE EVEN INCREASED THE maxThreads TO 120 FOR EACH INSTANCE (thus 120*6=720 maxThreads), AND MATCHED maxActive IN JNDI RESOURCE TO 120, BUT WE STILL DIDN'T SEE CONSIDERABLE IMPROVEMENT. THE CPU USAGE
RE: Tomcat Performance Turning.
Q. Have you tried running directly against tomcat without apache inbetween? A. Yes; this resolves the performance bottleneck. Q. holywarfrom my experience there is no need for apache in your setup anyway /holywar. A. :-) The reasons for having apache in front: A) Create a DMZ and protect Tomcat from being exposed to outside attacks; B) Load balancing. Thanks Leon! -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 3:19 PM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Hello Talha, On Fri, Sep 2, 2011 at 6:16 PM, Talha Fazal tfa...@credera.com wrote: PLEASE SEE MY ANSWERS BELOW IN UPPER CAPS. ONE IMPORTANT OBSERVATION: Even though, tomcat's response time is decent, for some reason, apache is taking a lot longer to serve requests. We are using mod_jk with Tomcat using AJP1.3 protocol in the connector setting in server.xml. We plan to try mod_proxy_ajp and mod_proxy instead of mod_jk. Any thoughts here? Interesting observation. Have you tried running directly against tomcat without apache inbetween? holywarfrom my experience there is no need for apache in your setup anyway /holywar. In the past we used both mod_jk and mod_proxy_ajp, and even mod_proxy_ajp is somewhat faster, the difference where never 17 seconds. Your best guess would probably be to test without httpd to rule out if tomcat or httpd is the bottleneck. regards Leon Thanks, -Original Message- From: R Batchelor [mailto:rsbat...@yahoo.com] Sent: Friday, September 02, 2011 10:10 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Have you ruled out issues with db connection pooling? NO. IN FACT, THERE ARE KNOWN DBCP CONNECTION POOLING DEADLOCK ISSUES IN TOMCAT 6.0.26 [https://issues.apache.org/jira/browse/DBCP-270]. I AM LOBBYING TO UPGRADE TO TOMCAT 7.0.20 AND USE THE JDBC CONNECTION POOL INSTEAD OF DBCP CONNECTION POOL. You might consider setting your dbcp maxWait to 8000 or less and watch for timeout waiting for idle object exceptions. Also, you could monitor database connections/active-users on the DB side to see if your dbcp pools are max'd but all the database users/connections are idle. These can be symptoms of an application mis-managing its dbcp pools. I WILL DEFINITELY TRY THIS OUT. THANKS! From: Leon Rosenberg rosenberg.l...@gmail.com To: Tomcat Users List users@tomcat.apache.org Sent: Friday, September 2, 2011 7:55 AM Subject: Re: Tomcat Performance Turning. Hello Talha, well... the quickshots are through. You should really create some threaddumps after each other (for example with jstack) and try to find out which thread is slowing the app down. For starters you could try with code you changed for tomcat adaptations if any. The problem seems to lie beneath the surface, so you will have to start performance monitoring and look into the inside. However, time difference of 17 seconds must be something very very obvious like a synchronized block in a valve/filter, db lock (have you checked the db locks?), or an if (tomcat) Thread.sleep(1000L*60*17); regards Leon On Fri, Sep 2, 2011 at 4:21 PM, Talha Fazal tfa...@credera.com wrote: Hi Leon, Please see any answers in CAPS below. -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 9:06 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning. Hello Talha, seems that your tomcats are fine. Question, you mention that the tomcat do not perform, but you don't tell us how you come to this conclusion except for cpu load. ANSWER: LOOKING INTO THE TOMCAT ACCESS LOGS, THE RESPONSE TIME (%D) IS HORRIBLE). What is the difference in response times between weblogic and tomcat? ANSWER: FOR PAGES THAT WEBLOGIC SERVES IN 500 ms ON AVERAGE, TOMCAT IS TAKING 17000 ms ON AVERAGE. Maybe your tomcat just perform the job MUCH faster ;-) The thread dump you posted in another reply indicates that your tomcats are idling. Do you have manager installed? NO. With manager you could monitor active connections and requests. Do you have probe installed? YES, WE HAVE IT INSTALLED. A LOT OF THREADS ARE IDLING IS WHAT WE OBSERVE. Finally, if you really want to profile your application, do you have moskito installed? :-) (the one i initially wrote -moskito.anotheria.net, therefore the shameless advertisement). :-) SURE WILL GIVE IT A TRY [TIME PERMITTING]. In the last case I can offer you to provide support getting it running. WILL LET YOU KNOW IF WE ARE INTERESTED. THANKS. regards Leon On Fri, Sep 2, 2011 at 3:50 PM, Talha Fazal tfa...@credera.com wrote: Plz. see my answers below in UPPERCAPS. Thanks! -Original Message- From: Leon Rosenberg [mailto:rosenberg.l...@gmail.com] Sent: Friday, September 02, 2011 8:35 AM To: Tomcat Users List Subject: Re: Tomcat Performance Turning
Re: Tomcat Performance Turning.
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Leon, On 9/2/2011 4:19 PM, Leon Rosenberg wrote: holywarfrom my experience there is no need for apache in your setup anyway /holywar. Uh, load-balancing? - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk5hUDgACgkQ9CaO5/Lv0PBfhQCdFwEDvm37L9QTe6FBns88RKLg 7ukAnikbIxI+y/oaskk/Zv/Y4aKPpYD9 =Dc+M -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Tomcat performance issues...
Thanks for the link and it proved what I was concerned about and that is Tomcat 6 does not have an approved standard library for JSP's which means 7 has more issues with this Standard taglib. I could be wrong but the highest level of support is servlet 2.4 and Tomcat 6 is at 2.5. Regards, -Tony - Original Message From: Tony Anecito adanec...@yahoo.com To: Tomcat Users List users@tomcat.apache.org Sent: Wed, June 29, 2011 5:10:33 PM Subject: Re: Tomcat performance issues... Thanks I did not spot the users group. I thought maybe the taglibs was a dead project seemed like there was no version that supported Tomcat 6.0.x. I will continue the message thread onto that group thanks for the advice. I am a tester but the response time was 3-4 seconds. I have not asked the developers the specifics yet about the tag. Now I am more concerned the version of Taglib being used was like for version 5 of Tomcat and not for version 6. Thanks All. -Tony - Original Message From: Konstantin Kolinko knst.koli...@gmail.com To: Tomcat Users List users@tomcat.apache.org Sent: Wed, June 29, 2011 12:43:48 PM Subject: Re: Tomcat performacne issues... 2011/6/29 Christopher Schultz ch...@christopherschultz.net: Apache taglibs /is/ JSTL from an API point of view. To be more precise, JSTL is implemented by the Standard taglib there http://tomcat.apache.org/taglibs/standard/ Note, that the Taglibs project has its separate taglibs-user mailing list. Best regards, Konstantin Kolinko - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Tomcat performance issues...
2011/6/30 Tony Anecito adanec...@yahoo.com: Thanks for the link and it proved what I was concerned about and that is Tomcat 6 does not have an approved standard library for JSP's which means 7 has more issues with this Standard taglib. I could be wrong but the highest level of support is servlet 2.4 and Tomcat 6 is at 2.5. All previous versions of specifications are supported. The version 1.1.2 of the Standard taglib is included into the examples web application and does works on all supported Tomcat versions. It is not included as part of Tomcat, because your web application is free to use and bundle whatever libraries it wants, be that taglibs, myfaces, etc etc. Best regards, Konstantin Kolinko - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Tomcat performance issues...
Thanks I joined the taglib email list and am waiting for an answer. I suspect Tomcat might support the lib you mentioned but the servlet spec and what appeared to be a dead project worried me. Regards, -Tony - Original Message From: Konstantin Kolinko knst.koli...@gmail.com To: Tomcat Users List users@tomcat.apache.org Sent: Thu, June 30, 2011 9:19:49 AM Subject: Re: Tomcat performance issues... 2011/6/30 Tony Anecito adanec...@yahoo.com: Thanks for the link and it proved what I was concerned about and that is Tomcat 6 does not have an approved standard library for JSP's which means 7 has more issues with this Standard taglib. I could be wrong but the highest level of support is servlet 2.4 and Tomcat 6 is at 2.5. All previous versions of specifications are supported. The version 1.1.2 of the Standard taglib is included into the examples web application and does works on all supported Tomcat versions. It is not included as part of Tomcat, because your web application is free to use and bundle whatever libraries it wants, be that taglibs, myfaces, etc etc. Best regards, Konstantin Kolinko - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Tomcat performance issues...
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, On 6/30/2011 11:23 AM, Tony Anecito wrote: I suspect Tomcat might support the lib you mentioned Tomcat does not need to support the library specifically: if a library properly uses the Servlet and/or JSP APIs properly, it should work with Tomcat. If it doesn't work, the problem is either in configuration (some features are only available with certain spec versions), a bug in the library or a bug in Tomcat. but the servlet spec JSTL does not require the use of the most up-to-date servlet spec (currently 3.0) in order to use it. Tomcat supports all versions of the servlet spec up to that which is declared (spec 2.4 for TC5.5, spec 2.5 for TC6, and spec 3.0 for TC7). and what appeared to be a dead project worried me. The project is not dead. I think it's just mature enough that there's little development going on: everything works just fine, apparently. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk4M3qQACgkQ9CaO5/Lv0PBs8wCgpK7Q87nX/DI44jlzV5Rv9aIJ c30AoLlNRnHDMiENiS6bSHxhGTPebHDz =Y1ug -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Tomcat performance issues...
Thanks I did not spot the users group. I thought maybe the taglibs was a dead project seemed like there was no version that supported Tomcat 6.0.x. I will continue the message thread onto that group thanks for the advice. I am a tester but the response time was 3-4 seconds. I have not asked the developers the specifics yet about the tag. Now I am more concerned the version of Taglib being used was like for version 5 of Tomcat and not for version 6. Thanks All. -Tony - Original Message From: Konstantin Kolinko knst.koli...@gmail.com To: Tomcat Users List users@tomcat.apache.org Sent: Wed, June 29, 2011 12:43:48 PM Subject: Re: Tomcat performacne issues... 2011/6/29 Christopher Schultz ch...@christopherschultz.net: Apache taglibs /is/ JSTL from an API point of view. To be more precise, JSTL is implemented by the Standard taglib there http://tomcat.apache.org/taglibs/standard/ Note, that the Taglibs project has its separate taglibs-user mailing list. Best regards, Konstantin Kolinko - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
Folks: I might be a little to this discussion. I have taken upon myself; (don't ask why I asked for that kind of pain ;o) to review how IIS and tomcat inter operate and just released in beta a new connector specifically for IIS7 / tomcat (though this works in IIS6 as well). You can download binary code and docs from RIA forge site (I use this for my projects): http://tomcatiis.riaforge.org/ The download also has a pointer to source code if you need to download it and would like to compile it yourself. I am currently working on automating the install for this. I did very detailed analysis the existing ISAPI connection methodology and elected to forgo it and use a more future proof managed document handler. This has several advantages, one of which it that it gracefully handles 32/64 bit with the same code base. My initial focus was on providing a connector that is more aggressive in managing throughput, thus able to use larger IP packets, more simultaneous connections per client, larger connection pools by default then the previous ISAPI based one. I would appreciate any feedback from the members here. Best, Bilal
Re: IIS7/isapi/tomcat performance
Christopher Schultz schrieb am 01.03.2011 um 16:56 (-0500): I find *NIX smaller, cleaner, simpler, more scriptable and remotely administratable (is that a word? maybe administerable?) than Windows. The word is: administrable http://en.wiktionary.org/wiki/-abilis http://en.wiktionary.org/wiki/administrare Cheers, Michael - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: [OT] IIS7/isapi/tomcat performance
Hi Chuck, You did not see my earlier response where I came to the same conclusion about the types after looking at some other sites including a wiki. Yes there was some confusion but now I am clear that it is compiler dependant as I said earlier. Thanks, -Tony - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
As stated in my message I was using the -server option for the server jvm. -Tony - Original Message From: David kerber dcker...@verizon.net To: Tomcat Users List users@tomcat.apache.org Sent: Tue, March 1, 2011 2:23:45 PM Subject: Re: IIS7/isapi/tomcat performance On 3/1/2011 4:07 PM, Tony Anecito wrote: Thanks Chris I will take a look at it. I am just trying to figure out what is the fastest was to handle my app. I was shooting for less than 1msec at Tomcat which I not have done. Now I want to get to 100 microseconds. Years ago from an logical architecture standpoint It was: 1. Apache web server - JBoss, then 2. Apache - Tomcat - JBoss 3. APR/Tomcat - JBoss. Then I drilled down into and refactored some of my code then finally looked at different types of web services and how fast and maybe why they might be slow. I currently am using 200MB xmx, xms, -server, NUMA, and set my new generation to be large since my objects are short lived. I do not remember my other settings. I am beginning to think simpler is better for settings since at 1msec or less any time spent by the processor might be wasted time. I am very curious how you got 50K requests per second. I can get 1K per second on my AMD 6 core system. What was your client setup? I ran my client on the same server as my APR/Tomcat-JBoss and I am setting up the client on a laptop so I am not sharing resources. For the client I am using ApacheHttp class running in Eclipse and launch each http request in a different thread. I ended up configuring Tomcat for 400 connections which made a big difference. I still have alot more testing/tuning to do and I hope to get to it over the next couple of evenings. Are you using the client or server jvm? I found a HUGE performance improvement when I went to the server jvm. D - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
On 3/2/2011 12:03 PM, Tony Anecito wrote: As stated in my message I was using the -server option for the server jvm. -Tony My bad; I missed that. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
I do not know what the My bad limit per day is but I am sure you are fine. :] -Tony - Original Message From: David kerber dcker...@verizon.net To: Tomcat Users List users@tomcat.apache.org Sent: Wed, March 2, 2011 10:20:57 AM Subject: Re: IIS7/isapi/tomcat performance On 3/2/2011 12:03 PM, Tony Anecito wrote: As stated in my message I was using the -server option for the server jvm. -Tony My bad; I missed that. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: [OT] IIS7/isapi/tomcat performance
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, On 3/1/2011 6:27 PM, Tony Anecito wrote: I believe the effect of compression is relative. In other words for a big program with lots of 64-bit pointers and 64-bit longs it is helps but for small programs it does not. A long in Java is always 64 bits. Those /will/ be faster on a 64-bit architecture. The only reason any of this is a problem is because pointers (somewhat) unexpectedly double in size when moving from a 32-bit to a 64-bit platform. If you were running fine in a 128MiB heap on a 32-bit machine, you may well have to increase your heap size on a 64-bit machine just to store the exact same set of objects. I would hope the full 64-bit data bus would be used. So you think 32-pins on the processor are not used when running a 32-bit process? It depends upon exactly what the processor id doing. Those chips with bundled x86 cores will use the x86 core (which is /only/ 32-bit, so there's no option for 64-bit operations). Those chips which have only x86-64 chips will either use 64 bits to manipulate 32-bit data (and effectively waste the 32 most significant bits) or wave their hands wildly and achieve some sort of miracle where 32-bit processes run twice as fast because of a wider word size. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1u+RsACgkQ9CaO5/Lv0PCXegCfYWZr5Z8gOpHLH4g0FM3aJE5Z ovEAn02zREkR5mqq1wX4dagQAq9MvACz =v55r -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: [OT] IIS7/isapi/tomcat performance
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Chuck, On 3/1/2011 6:09 PM, Caldarale, Charles R wrote: From: Christopher Schultz [mailto:ch...@christopherschultz.net] Subject: Re: [OT] IIS7/isapi/tomcat performance I don't understand why communicating a 64-bit value over a 64-bit bus would take longer than communicating a 32-bit value over a 64-bit bus: Because you get *two* 32-bit values for one transfer, not just one. If, as you say, Intel can move 64 /bytes/ across a data path (if you prefer that phrase over the bus) then the word size really does make a difference, here. They should be getting 16 32-bit words across such a data path or 8 64-bit words. If the pointers are doubling in size, this makes 64-bit mode go slower because you get half the throughput when using word-sized values. Since pointers in general are word-sized, they always suffer while other (usually smaller) data does not. The key is that the data path(s) are actually much wider than the word size, which I didn't realize. I also get that some processors (like Itanium) have an x84 processor core on the die (Presumably, you meant x86.) Sorry, Itanium was notoriously bad at running 32-bit apps. I did mean x86. Lots of typing yesterday. The new Itaniums are supposed to be actually worth it, though. getting the data from point A to point B shouldn't matter Sure it does, if you can batch multiple operand accesses together (which current Intel cores do). I suppose of the CPU knew it was in a 32-bit mode, it could adjust the number of clock ticks it had to wait around for 32-bit data to go through an adder, but that seems overly complicated for a straightforward CPU task. Simple adders have only used one cycle for decades, regardless of the width. If the clock tick is long enough :) - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1u/FUACgkQ9CaO5/Lv0PBBHACfQsXMTwCmZywZrihKJI3M0k5c BdoAn3VrrewxdTHZU0TZvR1pbQcKFwVj =1Png -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: [OT] IIS7/isapi/tomcat performance
Actually according to the IBM porting guide longs are different byte lengths depending upon what frame of reference they are speaking to. On page 4 of the following port guide: http://public.dhe.ibm.com/software/dw/jdk/64bitporting/64BitJavaPortingGuide.pdf It states:For Windows, on 32-bit systems, integers, longs and pointers are all 32-bits. On 64-bit systems, integers and longs remain 32-bits, but pointers become 64-bits and long longs are 64-bits.integers remain 32-bits and longs and pointers become 64-bits. I could have interpreted this wrong but from a OS standpoint native code this is what they said. Now if the byte code is transalated to native code (which it must be to run). This would explain why Windows might seem to run faster than Linux for 64-bit. Regarding bus usage I agree with Chuck's explanation about usage that the processors and I said so in a previous message. Regards, -Tony - Original Message From: Christopher Schultz ch...@christopherschultz.net To: Tomcat Users List users@tomcat.apache.org Sent: Wed, March 2, 2011 7:12:43 PM Subject: Re: [OT] IIS7/isapi/tomcat performance -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, On 3/1/2011 6:27 PM, Tony Anecito wrote: I believe the effect of compression is relative. In other words for a big program with lots of 64-bit pointers and 64-bit longs it is helps but for small programs it does not. A long in Java is always 64 bits. Those /will/ be faster on a 64-bit architecture. The only reason any of this is a problem is because pointers (somewhat) unexpectedly double in size when moving from a 32-bit to a 64-bit platform. If you were running fine in a 128MiB heap on a 32-bit machine, you may well have to increase your heap size on a 64-bit machine just to store the exact same set of objects. I would hope the full 64-bit data bus would be used. So you think 32-pins on the processor are not used when running a 32-bit process? It depends upon exactly what the processor id doing. Those chips with bundled x86 cores will use the x86 core (which is /only/ 32-bit, so there's no option for 64-bit operations). Those chips which have only x86-64 chips will either use 64 bits to manipulate 32-bit data (and effectively waste the 32 most significant bits) or wave their hands wildly and achieve some sort of miracle where 32-bit processes run twice as fast because of a wider word size. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1u+RsACgkQ9CaO5/Lv0PCXegCfYWZr5Z8gOpHLH4g0FM3aJE5Z ovEAn02zREkR5mqq1wX4dagQAq9MvACz =v55r -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org For AIX and Linux, on 32-bit systems, integers, longs and pointers are all 32-bits. On 64-bit systems, - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: [OT] IIS7/isapi/tomcat performance
On the wiki Java long is 64-bits not sure what a Long is. So IBM is thinking C,C++ a long is 32bits which is what the paper meant. So I as wrong. Regards, -Tony - Original Message From: Tony Anecito adanec...@yahoo.com To: Tomcat Users List users@tomcat.apache.org Sent: Wed, March 2, 2011 9:15:09 PM Subject: Re: [OT] IIS7/isapi/tomcat performance Actually according to the IBM porting guide longs are different byte lengths depending upon what frame of reference they are speaking to. On page 4 of the following port guide: http://public.dhe.ibm.com/software/dw/jdk/64bitporting/64BitJavaPortingGuide.pdf It states:For Windows, on 32-bit systems, integers, longs and pointers are all 32-bits. On 64-bit systems, integers and longs remain 32-bits, but pointers become 64-bits and long longs are 64-bits.integers remain 32-bits and longs and pointers become 64-bits. I could have interpreted this wrong but from a OS standpoint native code this is what they said. Now if the byte code is transalated to native code (which it must be to run). This would explain why Windows might seem to run faster than Linux for 64-bit. Regarding bus usage I agree with Chuck's explanation about usage that the processors and I said so in a previous message. Regards, -Tony - Original Message From: Christopher Schultz ch...@christopherschultz.net To: Tomcat Users List users@tomcat.apache.org Sent: Wed, March 2, 2011 7:12:43 PM Subject: Re: [OT] IIS7/isapi/tomcat performance -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, On 3/1/2011 6:27 PM, Tony Anecito wrote: I believe the effect of compression is relative. In other words for a big program with lots of 64-bit pointers and 64-bit longs it is helps but for small programs it does not. A long in Java is always 64 bits. Those /will/ be faster on a 64-bit architecture. The only reason any of this is a problem is because pointers (somewhat) unexpectedly double in size when moving from a 32-bit to a 64-bit platform. If you were running fine in a 128MiB heap on a 32-bit machine, you may well have to increase your heap size on a 64-bit machine just to store the exact same set of objects. I would hope the full 64-bit data bus would be used. So you think 32-pins on the processor are not used when running a 32-bit process? It depends upon exactly what the processor id doing. Those chips with bundled x86 cores will use the x86 core (which is /only/ 32-bit, so there's no option for 64-bit operations). Those chips which have only x86-64 chips will either use 64 bits to manipulate 32-bit data (and effectively waste the 32 most significant bits) or wave their hands wildly and achieve some sort of miracle where 32-bit processes run twice as fast because of a wider word size. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1u+RsACgkQ9CaO5/Lv0PCXegCfYWZr5Z8gOpHLH4g0FM3aJE5Z ovEAn02zREkR5mqq1wX4dagQAq9MvACz =v55r -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org For AIX and Linux, on 32-bit systems, integers, longs and pointers are all 32-bits. On 64-bit systems, - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: [OT] IIS7/isapi/tomcat performance
From: Tony Anecito [mailto:adanec...@yahoo.com] Subject: Re: [OT] IIS7/isapi/tomcat performance On page 4 of the following port guide: http://public.dhe.ibm.com/software/dw/jdk/64bitporting/64BitJavaPortingGuide.pdf It states:For Windows, on 32-bit systems, integers, longs and pointers are all 32-bits. On 64-bit systems, integers and longs remain 32-bits, but pointers become 64-bits and long longs are 64-bits. That ancient porting guide is misleading in several respects, one in particular being that the OS determines the size of language-specific types. That is incorrect; it's the *compiler* being used that makes that determination, not the platform or the OS. This would explain why Windows might seem to run faster than Linux for 64-bit. Sorry, that's completely false. As Chris pointed out, Java non-reference type sizes are fixed, and are completely independent of the platform the Java program is running on. The only thing that changes between a 32-bit JVM and a 64-bit one is the size of a reference (pointer). Even in the C and C++ code that makes up the core of the JVM, the programmers studiously avoid use of ambiguous C types such as int and long anywhere that it might make a difference, and instead use explicitly sized types. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: [OT] IIS7/isapi/tomcat performance
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, On 2/28/2011 2:57 PM, Tony Anecito wrote: Since the memory pointers are larger you may need to increase your heap size but you can compress the address pointers. +1 Also, if you use JNI and it is 32-bit then you will have unexpected issues same thing with any native libs your try to use. +1 Generally it will be up to 20% slower due to the pointers. Can you explain that claim? Unless the OP is using compressed pointers (which will require a decode in order to dereference), why would the performance drop when using 64-bit pointers instead of 32-bit pointers. Presumably, the CPU has 64-bit (or bigger) registers and can handle 64-bit numbers just as fast as 32-bit numbers. Or do modern CPUs run in g a32-bit mode where the hardware doesn't bother to add-out to the 33+ bits? - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1tEMcACgkQ9CaO5/Lv0PBa8ACgmRjggPsYHma8tShCNK2WfOJd Qv8AoJ0KGEVwKQRDfSvwAvoF2Is5oHoW =Anih -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, On 2/28/2011 4:21 PM, Tony Anecito wrote: I also use Native APR with Tomcat 7 which eliminates AJP and supposedly is faster than Apache Web Server It's probably the same as AWS, as the code is the same :) http://people.apache.org/~schultz/ApacheCon%20NA%202010/ApacheCon%20NA%202010%20Slides.pdf - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1tEWoACgkQ9CaO5/Lv0PBaUgCff8BC8ctr6IRNz0822wepdyxN 47sAn15U0Sy3O9mUAk1roW2M8vAjV3Z2 =r51s -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: [OT] IIS7/isapi/tomcat performance
Hi Chris, The performance degregation for 64 bit versus 32 bit has been the subject of much concern in the java community. Here is the number I mentioned straight from Oracle itself: http://www.oracle.com/technetwork/java/hotspotfaq-138619.html What are the performance characteristics of 64-bit versus 32-bit VMs? Generally, the benefits of being able to address larger amounts of memory come with a small performance loss in 64-bit VMs versus running the same application on a 32-bit VM. This is due to the fact that every native pointer in the system takes up 8 bytes instead of 4. The loading of this extra data has an impact on memory usage which translates to slightly slower execution depending on how many pointers get loaded during the execution of your Java program. The good news is that with AMD64 and EM64T platforms running in 64-bit mode, the Java VM gets some additional registers which it can use to generate more efficient native instruction sequences. These extra registers increase performance to the point where there is often no performance loss at all when comparing 32 to 64-bit execution speed. The performance difference comparing an application running on a 64-bit platform versus a 32-bit platform on SPARC is on the order of 10-20% degradation when you move to a 64-bit VM. On AMD64 and EM64T platforms this difference ranges from 0-15% depending on the amount of pointer accessing your application performs. If you google using the keywords: java 64-bit vs 32-bit performance You will find alot of discussion about this. Regards, -Tony - Original Message From: Christopher Schultz ch...@christopherschultz.net To: Tomcat Users List users@tomcat.apache.org Sent: Tue, March 1, 2011 8:29:11 AM Subject: Re: [OT] IIS7/isapi/tomcat performance -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, On 2/28/2011 2:57 PM, Tony Anecito wrote: Since the memory pointers are larger you may need to increase your heap size but you can compress the address pointers. +1 Also, if you use JNI and it is 32-bit then you will have unexpected issues same thing with any native libs your try to use. +1 Generally it will be up to 20% slower due to the pointers. Can you explain that claim? Unless the OP is using compressed pointers (which will require a decode in order to dereference), why would the performance drop when using 64-bit pointers instead of 32-bit pointers. Presumably, the CPU has 64-bit (or bigger) registers and can handle 64-bit numbers just as fast as 32-bit numbers. Or do modern CPUs run in g a32-bit mode where the hardware doesn't bother to add-out to the 33+ bits? - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1tEMcACgkQ9CaO5/Lv0PBa8ACgmRjggPsYHma8tShCNK2WfOJd Qv8AoJ0KGEVwKQRDfSvwAvoF2Is5oHoW =Anih -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
Hi Chris, I understand it is from the core AWS but the important thing for me was to eliminate AJP because in a AWS standalone I had used to communicate AJP. When I enabled ARP I did not have to do anything with AJP. So does ARP communicate with the servlet conatiner in a more efficiant manner? Thanks, -Tony - Original Message From: Christopher Schultz ch...@christopherschultz.net To: Tomcat Users List users@tomcat.apache.org Sent: Tue, March 1, 2011 8:31:54 AM Subject: Re: IIS7/isapi/tomcat performance -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, On 2/28/2011 4:21 PM, Tony Anecito wrote: I also use Native APR with Tomcat 7 which eliminates AJP and supposedly is faster than Apache Web Server It's probably the same as AWS, as the code is the same :) http://people.apache.org/~schultz/ApacheCon%20NA%202010/ApacheCon%20NA%202010%20Slides.pdf f - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1tEWoACgkQ9CaO5/Lv0PBaUgCff8BC8ctr6IRNz0822wepdyxN 47sAn15U0Sy3O9mUAk1roW2M8vAjV3Z2 =r51s -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: [OT] IIS7/isapi/tomcat performance
Also, I have not programmed in assembly language or in hexadecimal for some time but I would hope that for a 32-bit java process running on a 64-bit processor I would fetch a 32-bit pointer and maybe a 32-bit long on a 64-bit data bus. Remember we are talking about pointers in code coming into the processor via the data bus. Interesting enough for AIX and Linux a long is 64bit for 64-bit java versus 32-bit for 64-bit windows. So it looks like for Linux it would be slower than windows. See: http://public.dhe.ibm.com/software/dw/jdk/64bitporting/64BitJavaPortingGuide.pdf Bottom line on how much worse things get is based upon how many pointers and longs are used for 64-bit java that are used. Regards, -Tony - Original Message From: Tony Anecito adanec...@yahoo.com To: Tomcat Users List users@tomcat.apache.org Sent: Tue, March 1, 2011 12:44:37 PM Subject: Re: [OT] IIS7/isapi/tomcat performance Hi Chris, The performance degregation for 64 bit versus 32 bit has been the subject of much concern in the java community. Here is the number I mentioned straight from Oracle itself: http://www.oracle.com/technetwork/java/hotspotfaq-138619.html What are the performance characteristics of 64-bit versus 32-bit VMs? Generally, the benefits of being able to address larger amounts of memory come with a small performance loss in 64-bit VMs versus running the same application on a 32-bit VM. This is due to the fact that every native pointer in the system takes up 8 bytes instead of 4. The loading of this extra data has an impact on memory usage which translates to slightly slower execution depending on how many pointers get loaded during the execution of your Java program. The good news is that with AMD64 and EM64T platforms running in 64-bit mode, the Java VM gets some additional registers which it can use to generate more efficient native instruction sequences. These extra registers increase performance to the point where there is often no performance loss at all when comparing 32 to 64-bit execution speed. The performance difference comparing an application running on a 64-bit platform versus a 32-bit platform on SPARC is on the order of 10-20% degradation when you move to a 64-bit VM. On AMD64 and EM64T platforms this difference ranges from 0-15% depending on the amount of pointer accessing your application performs. If you google using the keywords: java 64-bit vs 32-bit performance You will find alot of discussion about this. Regards, -Tony - Original Message From: Christopher Schultz ch...@christopherschultz.net To: Tomcat Users List users@tomcat.apache.org Sent: Tue, March 1, 2011 8:29:11 AM Subject: Re: [OT] IIS7/isapi/tomcat performance -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, On 2/28/2011 2:57 PM, Tony Anecito wrote: Since the memory pointers are larger you may need to increase your heap size but you can compress the address pointers. +1 Also, if you use JNI and it is 32-bit then you will have unexpected issues same thing with any native libs your try to use. +1 Generally it will be up to 20% slower due to the pointers. Can you explain that claim? Unless the OP is using compressed pointers (which will require a decode in order to dereference), why would the performance drop when using 64-bit pointers instead of 32-bit pointers. Presumably, the CPU has 64-bit (or bigger) registers and can handle 64-bit numbers just as fast as 32-bit numbers. Or do modern CPUs run in g a32-bit mode where the hardware doesn't bother to add-out to the 33+ bits? - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1tEMcACgkQ9CaO5/Lv0PBa8ACgmRjggPsYHma8tShCNK2WfOJd Qv8AoJ0KGEVwKQRDfSvwAvoF2Is5oHoW =Anih -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
On 02/28/2011 07:15 PM, Caldarale, Charles R wrote: From: Bruce Pease [mailto:bpe...@wth.com] Subject: IIS7/isapi/tomcat performance In performance tests I have found the configuration runs dramatically slower than it's corresponding server in 32 bit Windows on 2000 Server and Tomcat 6. Until you quantify dramatically, better describe your testing scenario (including configurations of all components), eliminate as many moving pieces as you can (e.g., try Tomcat standalone), and do some basic bottleneck analysis, there's not much anyone can help you with. He still didn't follow your suggestion and that is to determine which part slows down the pipeline. Is it IIS/isapi_redirect or Tomcat/JVM Lots of time a dramatic slowdown is caused by a simple name resolving problems from box to box. It might be a dramatic from 32-bit-boxA to 32-bit-boxB Regards -- ^TM - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, On 3/1/2011 2:49 PM, Tony Anecito wrote: I understand it is from the core AWS but the important thing for me was to eliminate AJP because in a AWS standalone I had used to communicate AJP. When I enabled ARP I did not have to do anything with AJP. So does ARP communicate with the servlet conatiner in a more efficiant manner? (Presuming s/ARP/APR/g) APR is just a connector strategy, like the BIO or NIO connectors. There are APR connectors for both HTTP and AJP. If you're saying that you switched from BIO/AJP to APR/HTTP, I'm not surprised you experienced a performance improvement: you're eliminated the web server altogether. If instead you are still using a web server out front and using HTTP instead of AJP to communicate with the back-end, I'd be interested in your configuration, environment, and observed performance gain. Generally speaking, use of AJP is slightly faster than proxied HTTP but there are certainly some trade-offs (like lack of encrypted communication support for AJP). APR handles connections differently than the Default BIO connector. See http://tomcat.apache.org/tomcat-6.0-doc/config/http.html#Connector%20Comparison for notes about the relative capabilities of the connectors (for HTTP). There is no NIO connector for AJP, but I would imagine that the comparison between the other two HTTP connectors is applicable to the AJP connectors as well. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1tWj0ACgkQ9CaO5/Lv0PBNLwCgmpEjzeX8lxu2+ac7yxP5BV95 9eYAn0SkImgJxKoqg15rqgk0pCBs2e6L =y6g9 -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: [OT] IIS7/isapi/tomcat performance
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, On 3/1/2011 3:24 PM, Tony Anecito wrote: Also, I have not programmed in assembly language or in hexadecimal for some time but I would hope that for a 32-bit java process running on a 64-bit processor I would fetch a 32-bit pointer and maybe a 32-bit long on a 64-bit data bus. Remember we are talking about pointers in code coming into the processor via the data bus. The bus on a 64-bit architecture has better be at least 64-bits wide, otherwise nothing works right. They used to run 64-bit OSs on 32-bit hardware and everything took twice as long because the bus was only 32-bit and so every piece of (64-bit) data took double the time to transmit. Booting 64-bit WinNT would take a looong time. I don't understand why communicating a 64-bit value over a 64-bit bus would take longer than communicating a 32-bit value over a 64-bit bus: the clock speed of the bus is the same... the only difference between the two scenarios is that the user doesn't care about the upper 32-bits of data. The only thing that makes sense to me intuitively at this point (I'm still reading) is that using compressed object pointers slows things down. Interesting enough for AIX and Linux a long is 64bit for 64-bit java versus 32-bit for 64-bit windows. So it looks like for Linux it would be slower than windows. See: http://public.dhe.ibm.com/software/dw/jdk/64bitporting/64BitJavaPortingGuide.pdf That's interesting, though it doesn't specify what compiler is being used. The only thing that makes a long value 32-bit or 64-bit is the compiler compiling the code where the word long is present. Java fixes the size of all native data types, so a Java long is always 64-bits regardless of the architecture. ISO C declares that long is at least 32-bit, short is at least 16-bit, and plain-old int is somewhere in between whatever short and long turn out to be. That document seems to imply that the OS decides what the type widths are, and that only matters when interfacing with OS calls: if you call brk() and it expects a 64-bit value, if you provide a 32-bit one, bad things will happen. Bottom line on how much worse things get is based upon how many pointers and longs are used for 64-bit java that are used. I still don't get why moving 64-bit values around is slower than moving 32-bit values around: the bus is 64-bits no matter what mode you're in. I *do* get that compressed pointers slow things down. I *do* get that the heap will grow somewhere approaching twice the size as in a 32-bit JVM. I also get that some processors (like Itanium) have an x84 processor core on the die, so that processor can avoid (uselessly) performing 64-bit operations on 32-bit data, but getting the data from point A to point B shouldn't matter. Also, performing 64-bit operations on 32-bit data should take just as long as performing 64-bit operations on 64-bit data: the ALU goes as fast as it's designed to go. I suppose of the CPU knew it was in a 32-bit mode, it could adjust the number of clock ticks it had to wait around for 32-bit data to go through an adder, but that seems overly complicated for a straightforward CPU task. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1tXrsACgkQ9CaO5/Lv0PBJfgCfXoAqt/K8TzqGk5AYO2+g4n7J OsMAoIbJ1nRUFVDilUDdkQTTOrRoMNWb =d3UM -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
Thanks Chris I will take a look at it. I am just trying to figure out what is the fastest was to handle my app. I was shooting for less than 1msec at Tomcat which I not have done. Now I want to get to 100 microseconds. Years ago from an logical architecture standpoint It was: 1. Apache web server - JBoss, then 2. Apache - Tomcat - JBoss 3. APR/Tomcat - JBoss. Then I drilled down into and refactored some of my code then finally looked at different types of web services and how fast and maybe why they might be slow. I currently am using 200MB xmx, xms, -server, NUMA, and set my new generation to be large since my objects are short lived. I do not remember my other settings. I am beginning to think simpler is better for settings since at 1msec or less any time spent by the processor might be wasted time. I am very curious how you got 50K requests per second. I can get 1K per second on my AMD 6 core system. What was your client setup? I ran my client on the same server as my APR/Tomcat-JBoss and I am setting up the client on a laptop so I am not sharing resources. For the client I am using ApacheHttp class running in Eclipse and launch each http request in a different thread. I ended up configuring Tomcat for 400 connections which made a big difference. I still have alot more testing/tuning to do and I hope to get to it over the next couple of evenings. -Tony - Original Message From: Christopher Schultz ch...@christopherschultz.net To: Tomcat Users List users@tomcat.apache.org Sent: Tue, March 1, 2011 1:42:37 PM Subject: Re: IIS7/isapi/tomcat performance -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, On 3/1/2011 2:49 PM, Tony Anecito wrote: I understand it is from the core AWS but the important thing for me was to eliminate AJP because in a AWS standalone I had used to communicate AJP. When I enabled ARP I did not have to do anything with AJP. So does ARP communicate with the servlet conatiner in a more efficiant manner? (Presuming s/ARP/APR/g) APR is just a connector strategy, like the BIO or NIO connectors. There are APR connectors for both HTTP and AJP. If you're saying that you switched from BIO/AJP to APR/HTTP, I'm not surprised you experienced a performance improvement: you're eliminated the web server altogether. If instead you are still using a web server out front and using HTTP instead of AJP to communicate with the back-end, I'd be interested in your configuration, environment, and observed performance gain. Generally speaking, use of AJP is slightly faster than proxied HTTP but there are certainly some trade-offs (like lack of encrypted communication support for AJP). APR handles connections differently than the Default BIO connector. See http://tomcat.apache.org/tomcat-6.0-doc/config/http.html#Connector%20Comparison for notes about the relative capabilities of the connectors (for HTTP). There is no NIO connector for AJP, but I would imagine that the comparison between the other two HTTP connectors is applicable to the AJP connectors as well. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1tWj0ACgkQ9CaO5/Lv0PBNLwCgmpEjzeX8lxu2+ac7yxP5BV95 9eYAn0SkImgJxKoqg15rqgk0pCBs2e6L =y6g9 -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, Good thing these are marked as [OT]... we have totally hijacked Bruce's thread. Maybe we should start another. On 3/1/2011 4:07 PM, Tony Anecito wrote: I am just trying to figure out what is the fastest was to handle my app. I was shooting for less than 1msec at Tomcat which I not have done. Now I want to get to 100 microseconds. Years ago from an logical architecture standpoint It was: 1. Apache web server - JBoss, then 2. Apache - Tomcat - JBoss 3. APR/Tomcat - JBoss. Do you mean you are using Tomcat out in front of JBoss? Why not just use JBoss directly? That'll probably buy you more than any other configuration change. I currently am using 200MB xmx, xms, -server, NUMA, and set my new generation to be large since my objects are short lived. I do not remember my other settings. I am beginning to think simpler is better for settings since at 1msec or less any time spent by the processor might be wasted time. Generally speaking, you should let the GC configure itself unless you really know what you are doing or have to work around some specific problem. I am very curious how you got 50K requests per second. You'll have to be more specific. Do you mean in my performance tests? Which one? Did you read all of the setup info in the earlier slides? I can get 1K per second on my AMD 6 core system. What was your client setup? It's all in the PDF. I ran my client on the same server as my APR/Tomcat-JBoss and I am setting up the client on a laptop so I am not sharing resources. For the client I am using ApacheHttp class running in Eclipse and launch each http request in a different thread. How many threads are you talking about using, here? I ended up configuring Tomcat for 400 connections which made a big difference. I still have alot more testing/tuning to do and I hope to get to it over the next couple of evenings. 100 microseconds seems like an arbitrary target. Where did it come from? - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1tYnoACgkQ9CaO5/Lv0PDVpwCgvlpUZcm4uZd/do+EeYuu/dte o2QAn3XHEdvKFVwFUR2VdLDnBghXlP03 =ov34 -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: [OT] IIS7/isapi/tomcat performance
Hi Chris, I guess you have not read my last email yet. I think of it as putting two 32-bit pieces of info on a 64-bit data bus whereas for two 64-bit pieces of information it takes two fetches or twice as long on the same hardware. Depending upon the number of bytes for each data type for 32-bit versus 64-bit 20% performance reduction makes sense. As for compressing the pointers all I read is it improves response time so that maybe running on 64-bit java the program is only 1% slower. I am assuming the pointers are compressed after the first pass or even before the byte code is run. Regards, -Tony - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
On 3/1/2011 4:07 PM, Tony Anecito wrote: Thanks Chris I will take a look at it. I am just trying to figure out what is the fastest was to handle my app. I was shooting for less than 1msec at Tomcat which I not have done. Now I want to get to 100 microseconds. Years ago from an logical architecture standpoint It was: 1. Apache web server - JBoss, then 2. Apache - Tomcat - JBoss 3. APR/Tomcat - JBoss. Then I drilled down into and refactored some of my code then finally looked at different types of web services and how fast and maybe why they might be slow. I currently am using 200MB xmx, xms, -server, NUMA, and set my new generation to be large since my objects are short lived. I do not remember my other settings. I am beginning to think simpler is better for settings since at 1msec or less any time spent by the processor might be wasted time. I am very curious how you got 50K requests per second. I can get 1K per second on my AMD 6 core system. What was your client setup? I ran my client on the same server as my APR/Tomcat-JBoss and I am setting up the client on a laptop so I am not sharing resources. For the client I am using ApacheHttp class running in Eclipse and launch each http request in a different thread. I ended up configuring Tomcat for 400 connections which made a big difference. I still have alot more testing/tuning to do and I hope to get to it over the next couple of evenings. Are you using the client or server jvm? I found a HUGE performance improvement when I went to the server jvm. D - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
Hi Chris, I used Tomcat separately because JBoss was always somewhat behind the current production version of Tomcat. Eventually I will remove JBoss and use JDBC from Tomcat to my database to reduce memory footprint and improve performance. I am only using EJB's in JBoss right now. Best practice regarding memory settings is set the min.max to be the same so the CPU is not busy allocating memory. There are other settings one can use just trial and error or keep testing till you get the best configuration for your app. I know each jvm release gets better so less tuning is needed as what I think you are trying to say. I went up to 1,000 client threads before I stopped. Since I met my first goal I like to get 10X better on the next one if possible and from what you told me I might be able to make it. I can get close if I went to a i7 980 or Sandy Bridge system instead of the slower AMD processor. To me that is cheating since I believe through tuning and code changes one should be able to get there. I will look for the pdf again if it is the one I am thinking of for ApacheHttp commons testing then I am on the same track regarding setup and usage of the client program. Regards, -Tony - Original Message From: Christopher Schultz ch...@christopherschultz.net To: Tomcat Users List users@tomcat.apache.org Sent: Tue, March 1, 2011 2:17:46 PM Subject: Re: IIS7/isapi/tomcat performance -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, Good thing these are marked as [OT]... we have totally hijacked Bruce's thread. Maybe we should start another. On 3/1/2011 4:07 PM, Tony Anecito wrote: I am just trying to figure out what is the fastest was to handle my app. I was shooting for less than 1msec at Tomcat which I not have done. Now I want to get to 100 microseconds. Years ago from an logical architecture standpoint It was: 1. Apache web server - JBoss, then 2. Apache - Tomcat - JBoss 3. APR/Tomcat - JBoss. Do you mean you are using Tomcat out in front of JBoss? Why not just use JBoss directly? That'll probably buy you more than any other configuration change. I currently am using 200MB xmx, xms, -server, NUMA, and set my new generation to be large since my objects are short lived. I do not remember my other settings. I am beginning to think simpler is better for settings since at 1msec or less any time spent by the processor might be wasted time. Generally speaking, you should let the GC configure itself unless you really know what you are doing or have to work around some specific problem. I am very curious how you got 50K requests per second. You'll have to be more specific. Do you mean in my performance tests? Which one? Did you read all of the setup info in the earlier slides? I can get 1K per second on my AMD 6 core system. What was your client setup? It's all in the PDF. I ran my client on the same server as my APR/Tomcat-JBoss and I am setting up the client on a laptop so I am not sharing resources. For the client I am using ApacheHttp class running in Eclipse and launch each http request in a different thread. How many threads are you talking about using, here? I ended up configuring Tomcat for 400 connections which made a big difference. I still have alot more testing/tuning to do and I hope to get to it over the next couple of evenings. 100 microseconds seems like an arbitrary target. Where did it come from? - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1tYnoACgkQ9CaO5/Lv0PDVpwCgvlpUZcm4uZd/do+EeYuu/dte o2QAn3XHEdvKFVwFUR2VdLDnBghXlP03 =ov34 -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: IIS7/isapi/tomcat performance
I'm just curious if anyone is using a 64 bit version of Linux, and has seen performance degradation. We are looking to move off the Windows platform eventually anyway. -Original Message- From: Tony Anecito [mailto:adanec...@yahoo.com] Sent: Tuesday, March 01, 2011 4:34 PM To: Tomcat Users List Subject: Re: IIS7/isapi/tomcat performance Hi Chris, I used Tomcat separately because JBoss was always somewhat behind the current production version of Tomcat. Eventually I will remove JBoss and use JDBC from Tomcat to my database to reduce memory footprint and improve performance. I am only using EJB's in JBoss right now. Best practice regarding memory settings is set the min.max to be the same so the CPU is not busy allocating memory. There are other settings one can use just trial and error or keep testing till you get the best configuration for your app. I know each jvm release gets better so less tuning is needed as what I think you are trying to say. I went up to 1,000 client threads before I stopped. Since I met my first goal I like to get 10X better on the next one if possible and from what you told me I might be able to make it. I can get close if I went to a i7 980 or Sandy Bridge system instead of the slower AMD processor. To me that is cheating since I believe through tuning and code changes one should be able to get there. I will look for the pdf again if it is the one I am thinking of for ApacheHttp commons testing then I am on the same track regarding setup and usage of the client program. Regards, -Tony - Original Message From: Christopher Schultz ch...@christopherschultz.net To: Tomcat Users List users@tomcat.apache.org Sent: Tue, March 1, 2011 2:17:46 PM Subject: Re: IIS7/isapi/tomcat performance -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, Good thing these are marked as [OT]... we have totally hijacked Bruce's thread. Maybe we should start another. On 3/1/2011 4:07 PM, Tony Anecito wrote: I am just trying to figure out what is the fastest was to handle my app. I was shooting for less than 1msec at Tomcat which I not have done. Now I want to get to 100 microseconds. Years ago from an logical architecture standpoint It was: 1. Apache web server - JBoss, then 2. Apache - Tomcat - JBoss 3. APR/Tomcat - JBoss. Do you mean you are using Tomcat out in front of JBoss? Why not just use JBoss directly? That'll probably buy you more than any other configuration change. I currently am using 200MB xmx, xms, -server, NUMA, and set my new generation to be large since my objects are short lived. I do not remember my other settings. I am beginning to think simpler is better for settings since at 1msec or less any time spent by the processor might be wasted time. Generally speaking, you should let the GC configure itself unless you really know what you are doing or have to work around some specific problem. I am very curious how you got 50K requests per second. You'll have to be more specific. Do you mean in my performance tests? Which one? Did you read all of the setup info in the earlier slides? I can get 1K per second on my AMD 6 core system. What was your client setup? It's all in the PDF. I ran my client on the same server as my APR/Tomcat-JBoss and I am setting up the client on a laptop so I am not sharing resources. For the client I am using ApacheHttp class running in Eclipse and launch each http request in a different thread. How many threads are you talking about using, here? I ended up configuring Tomcat for 400 connections which made a big difference. I still have alot more testing/tuning to do and I hope to get to it over the next couple of evenings. 100 microseconds seems like an arbitrary target. Where did it come from? - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1tYnoACgkQ9CaO5/Lv0PDVpwCgvlpUZcm4uZd/do+EeYuu/dte o2QAn3XHEdvKFVwFUR2VdLDnBghXlP03 =ov34 -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, On 3/1/2011 4:33 PM, Tony Anecito wrote: I used Tomcat separately because JBoss was always somewhat behind the current production version of Tomcat. Eventually I will remove JBoss and use JDBC from Tomcat to my database to reduce memory footprint and improve performance. I am only using EJB's in JBoss right now. You could look at OpenEJB and run your EJBs directly from Tomcat, too. Best practice regarding memory settings is set the min.max to be the same so the CPU is not busy allocating memory. No, that's so the memory manager isn't wasting time re-sizing the heap. I know each jvm release gets better so less tuning is needed as what I think you are trying to say. Generally, yes. I went up to 1,000 client threads before I stopped. If you have 1000 client threads and (therefore) 1000 server threads all operating one the same 6-core machine, you are probably pegging the CPU so badly that you are ruining your own test. Since I met my first goal I like to get 10X better on the next one if possible and from what you told me I might be able to make it. I can get close if I went to a i7 980 or Sandy Bridge system instead of the slower AMD processor. Switching processors is cheating :) To me that is cheating since I believe through tuning and code changes one should be able to get there. At some point, work must get done. You can't simply configure-away the need to allocate memory, copy buffers, parse the request, etc. There is very little Tomcat configuration that can be done to improve your observed performance: Tomcat has a great default configuration. Actually, most of the settings that could affect performance usually /degrade/ performance if changed from the default. You can also tweak the GC settings like sizing various pools and stuff, but that won't change the amount of time it takes to make a single request (or really even in aggregate, unless you are creating hundreds of thousands of temporary objects during a single request). What you really need to do is profile your code and figure out what /you/ are doing that's taking so long. :) - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1taQMACgkQ9CaO5/Lv0PBNFgCcDPbq2vLz2Ef7xxt1eB0itgFX OPYAniSvf0j00DjksQKiSpSIpICf/RwJ =nDqy -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Bruce, On 3/1/2011 4:42 PM, Bruce Pease wrote: I'm just curious if anyone is using a 64 bit version of Linux, and has seen performance degradation. We are looking to move off the Windows platform eventually anyway. I'm not using 64-bit, but I am on Linux (happens to be Debian). As of today, our uptime is 700 days for the OS on one production machine, our database has been up since March 2010, and our webapp has only been running a couple of days because we just had a production release. Before that, it had been running for nearly a year with zero downtime. I know Microsoft Windows admins who schedule nightly reboots because otherwise, their stuff doesn't work properly. Now, that was back in the Windows 2003 days, so things have have improved since then. I would highly recommend switching to *NIX to anyone considering doing it. I find *NIX smaller, cleaner, simpler, more scriptable and remotely administratable (is that a word? maybe administerable?) than Windows. I hear that Microsoft SQL Server is a really great RDBMS. Too bad they'll never port it to *NIX :) - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1ta3oACgkQ9CaO5/Lv0PCaUgCfRtK8WI5iGbKRJkN69OcVNFIH GO8Anj1ZOH7SrQ7zdRQFet+uUvJf5Cnj =3zbM -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: [OT] IIS7/isapi/tomcat performance
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, On 3/1/2011 4:19 PM, Tony Anecito wrote: I guess you have not read my last email yet. I think of it as putting two 32-bit pieces of info on a 64-bit data bus whereas for two 64-bit pieces of information it takes two fetches or twice as long on the same hardware. Are you saying that a 32-bit JVM running on a 64-bit machine somehow utilizes the 64-bit bus? Malarkey. Perhaps the CPU as part of its instruction re-ordering can do this, but I seriously doubt that a 32-bit process on a 64-bit CPU gains a performance boost over that same 32-bit process running on a 32-bit CPU (which is what the above would imply). As for compressing the pointers all I read is it improves response time I can't believe that for a second. It actually slows things down. The only reason to compress pointers is so that your heap size doesn't roughly double when switching to 64-bit. The problem is that while the transition from 32-bit to 64-bit architecture now allows many orders of magnitude more memory to be accessed by each process (this is especially important for Java heaps), the amount of memory installed in servers has not really changed. 5 years ago, it wasn't uncommon for a 32-bit server to have 32GiB of memory. These days, a similar 64-bit server might still only have 32GiB of memory. so that maybe running on 64-bit java the program is only 1% slower. I am assuming the pointers are compressed after the first pass or even before the byte code is run. The pointers are compressed as the objects (really the references to them) are created. The problem is that they must be uncompressed for every dereference. It has nothing to do with the bytecode. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1tbJUACgkQ9CaO5/Lv0PBZ3ACgrVFqcPNcIe+P3U1HW3QzRXpS L3oAnj82GTkXoQcOwxYskRLXWwsrFTcn =w2cy -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: [OT] IIS7/isapi/tomcat performance
From: Christopher Schultz [mailto:ch...@christopherschultz.net] Subject: Re: [OT] IIS7/isapi/tomcat performance Are you saying that a 32-bit JVM running on a 64-bit machine somehow utilizes the 64-bit bus? Malarkey. I wouldn't bet on that. Intel goes to great pains to insure all of the buses are fully utilized. On a 64-bit machine, all of the data paths from RAM up to the L1 operand cache will be able to move twice the number of items per cycle when the items are only 32 bits wide. Between the L1 cache and the superscalar execution core, there may be less of a gain, but since the core contains three ALUs and separate load and store sections to service them, memory operations are combined wherever possible to get data in and out as fast as possible. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.
RE: [OT] IIS7/isapi/tomcat performance
From: Christopher Schultz [mailto:ch...@christopherschultz.net] Subject: Re: [OT] IIS7/isapi/tomcat performance I don't understand why communicating a 64-bit value over a 64-bit bus would take longer than communicating a 32-bit value over a 64-bit bus: Because you get *two* 32-bit values for one transfer, not just one. BTW, it's somewhat pointless to use the unqualified term bus when referring to modern CPU architecture. Now that Intel has finally figured out how to make multi-processor systems run at a reasonable speed by using techniques we implemented back in the 1960s, along with the advent of multiple memory cache levels, there's no longer a single bus to be concerned with. Most of them are wider than 64 bits in order to move as much data as possible; even ten years ago, Intel was moving 64 _bytes_ at a time on most of the data paths. I also get that some processors (like Itanium) have an x84 processor core on the die (Presumably, you meant x86.) Sorry, Itanium was notoriously bad at running 32-bit apps. getting the data from point A to point B shouldn't matter Sure it does, if you can batch multiple operand accesses together (which current Intel cores do). I suppose of the CPU knew it was in a 32-bit mode, it could adjust the number of clock ticks it had to wait around for 32-bit data to go through an adder, but that seems overly complicated for a straightforward CPU task. Simple adders have only used one cycle for decades, regardless of the width. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.
Re: [OT] IIS7/isapi/tomcat performance
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Chuck, On 3/1/2011 5:42 PM, Caldarale, Charles R wrote: From: Christopher Schultz [mailto:ch...@christopherschultz.net] Subject: Re: [OT] IIS7/isapi/tomcat performance Are you saying that a 32-bit JVM running on a 64-bit machine somehow utilizes the 64-bit bus? Malarkey. I wouldn't bet on that. Intel goes to great pains to insure all of the buses are fully utilized. On a 64-bit machine, all of the data paths from RAM up to the L1 operand cache will be able to move twice the number of items per cycle when the items are only 32 bits wide. The question I have is how does the bus controller know that there are multiple 32-bit values coming down the line, and that it can send them simultaneously down the bus? There's more data to be sent over the bus than just pointers to other pieces of data. You have to move the instruction itself, etc. so there's lots of opportunities for other data to get in the way of this DRR-style data transfer across the bus. Between the L1 cache and the superscalar execution core, there may be less of a gain, but since the core contains three ALUs and separate load and store sections to service them, memory operations are combined wherever possible to get data in and out as fast as possible. I buy this argument, but that would only affect the processing of, say, a 64-bit pointer within the core... not the speed of passing that pointer around the rest of the machine. As you say, probably less of a gain. I'd love to see some real documentation and/or testing on this type of stuff. I certainly am somewhat naïve when it comes to details this low, but my intuition tells me that the CPU and bus aren't magic :) - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1tfa4ACgkQ9CaO5/Lv0PBxlQCgjvY/NcigAvD/jXIWfckKUbju tUgAn2bfMa3iEuQeUe0j2ZqmgVxGn+dx =Vubd -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
There is no code. All I did was create a servlet with a doGet method that had nothing in it. I did notice alot of Tomcat code being called. I have not supplied profiling until I get the separate client machine setup. That will be sometime over the next few evenings. -Tony - Original Message From: Christopher Schultz ch...@christopherschultz.net To: Tomcat Users List users@tomcat.apache.org Sent: Tue, March 1, 2011 2:45:39 PM Subject: Re: IIS7/isapi/tomcat performance -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, On 3/1/2011 4:33 PM, Tony Anecito wrote: I used Tomcat separately because JBoss was always somewhat behind the current production version of Tomcat. Eventually I will remove JBoss and use JDBC from Tomcat to my database to reduce memory footprint and improve performance. I am only using EJB's in JBoss right now. You could look at OpenEJB and run your EJBs directly from Tomcat, too. Best practice regarding memory settings is set the min.max to be the same so the CPU is not busy allocating memory. No, that's so the memory manager isn't wasting time re-sizing the heap. I know each jvm release gets better so less tuning is needed as what I think you are trying to say. Generally, yes. I went up to 1,000 client threads before I stopped. If you have 1000 client threads and (therefore) 1000 server threads all operating one the same 6-core machine, you are probably pegging the CPU so badly that you are ruining your own test. Since I met my first goal I like to get 10X better on the next one if possible and from what you told me I might be able to make it. I can get close if I went to a i7 980 or Sandy Bridge system instead of the slower AMD processor. Switching processors is cheating :) To me that is cheating since I believe through tuning and code changes one should be able to get there. At some point, work must get done. You can't simply configure-away the need to allocate memory, copy buffers, parse the request, etc. There is very little Tomcat configuration that can be done to improve your observed performance: Tomcat has a great default configuration. Actually, most of the settings that could affect performance usually /degrade/ performance if changed from the default. You can also tweak the GC settings like sizing various pools and stuff, but that won't change the amount of time it takes to make a single request (or really even in aggregate, unless you are creating hundreds of thousands of temporary objects during a single request). What you really need to do is profile your code and figure out what /you/ are doing that's taking so long. :) - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1taQMACgkQ9CaO5/Lv0PBNFgCcDPbq2vLz2Ef7xxt1eB0itgFX OPYAniSvf0j00DjksQKiSpSIpICf/RwJ =nDqy -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: [OT] IIS7/isapi/tomcat performance
I believe the effect of compression is relative. In other words for a big program with lots of 64-bit pointers and 64-bit longs it is helps but for small programs it does not. I would hope the full 64-bit data bus would be used. So you thing 32-pins on the processor are not used when running a 32-bit process? I am not saying you are not correct but I will check into it since I am curious and let you know what I find. I have never mentioned byte code as pointers all my referneces are to executable code or what the processor actually runs. Regards, -Tony - Original Message From: Christopher Schultz ch...@christopherschultz.net To: Tomcat Users List users@tomcat.apache.org Sent: Tue, March 1, 2011 3:00:53 PM Subject: Re: [OT] IIS7/isapi/tomcat performance -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tony, On 3/1/2011 4:19 PM, Tony Anecito wrote: I guess you have not read my last email yet. I think of it as putting two 32-bit pieces of info on a 64-bit data bus whereas for two 64-bit pieces of information it takes two fetches or twice as long on the same hardware. Are you saying that a 32-bit JVM running on a 64-bit machine somehow utilizes the 64-bit bus? Malarkey. Perhaps the CPU as part of its instruction re-ordering can do this, but I seriously doubt that a 32-bit process on a 64-bit CPU gains a performance boost over that same 32-bit process running on a 32-bit CPU (which is what the above would imply). As for compressing the pointers all I read is it improves response time I can't believe that for a second. It actually slows things down. The only reason to compress pointers is so that your heap size doesn't roughly double when switching to 64-bit. The problem is that while the transition from 32-bit to 64-bit architecture now allows many orders of magnitude more memory to be accessed by each process (this is especially important for Java heaps), the amount of memory installed in servers has not really changed. 5 years ago, it wasn't uncommon for a 32-bit server to have 32GiB of memory. These days, a similar 64-bit server might still only have 32GiB of memory. so that maybe running on 64-bit java the program is only 1% slower. I am assuming the pointers are compressed after the first pass or even before the byte code is run. The pointers are compressed as the objects (really the references to them) are created. The problem is that they must be uncompressed for every dereference. It has nothing to do with the bytecode. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1tbJUACgkQ9CaO5/Lv0PBZ3ACgrVFqcPNcIe+P3U1HW3QzRXpS L3oAnj82GTkXoQcOwxYskRLXWwsrFTcn =w2cy -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: [OT] IIS7/isapi/tomcat performance
Thanks Chuck I agree. I used to design hardware back in the 80-mid 90's so understand what you are saying but have not kept up with actual designs since then. I jumped over to software after that. I know I simplify some things but hope I still am correct. Feel free to correct me I will try to not get emotional about it but I do miss my 8080 and Z80. -Tony - Original Message From: Caldarale, Charles R chuck.caldar...@unisys.com To: Tomcat Users List users@tomcat.apache.org Sent: Tue, March 1, 2011 4:09:10 PM Subject: RE: [OT] IIS7/isapi/tomcat performance From: Christopher Schultz [mailto:ch...@christopherschultz.net] Subject: Re: [OT] IIS7/isapi/tomcat performance I don't understand why communicating a 64-bit value over a 64-bit bus would take longer than communicating a 32-bit value over a 64-bit bus: Because you get *two* 32-bit values for one transfer, not just one. BTW, it's somewhat pointless to use the unqualified term bus when referring to modern CPU architecture. Now that Intel has finally figured out how to make multi-processor systems run at a reasonable speed by using techniques we implemented back in the 1960s, along with the advent of multiple memory cache levels, there's no longer a single bus to be concerned with. Most of them are wider than 64 bits in order to move as much data as possible; even ten years ago, Intel was moving 64 _bytes_ at a time on most of the data paths. I also get that some processors (like Itanium) have an x84 processor core on the die (Presumably, you meant x86.) Sorry, Itanium was notoriously bad at running 32-bit apps. getting the data from point A to point B shouldn't matter Sure it does, if you can batch multiple operand accesses together (which current Intel cores do). I suppose of the CPU knew it was in a 32-bit mode, it could adjust the number of clock ticks it had to wait around for 32-bit data to go through an adder, but that seems overly complicated for a straightforward CPU task. Simple adders have only used one cycle for decades, regardless of the width. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: [OT] IIS7/isapi/tomcat performance
From: Christopher Schultz [mailto:ch...@christopherschultz.net] Subject: Re: [OT] IIS7/isapi/tomcat performance The question I have is how does the bus controller know that there are multiple 32-bit values coming down the line, and that it can send them simultaneously down the bus? A traditional bus controller hasn't been used in quite some time, and buses themselves are rapidly being replaced by point-to-point connections (finally), at least in terms of CPUs accessing memory. The interface between the L1 operand cache and the multiple ALUs is under control of a scheduler that's aware of the possible 72 simultaneous loads and stores going on, so it can combine accesses as it sees fit. Accesses between lower-level caches and actual RAM have always been wider than the data path within a core. There's more data to be sent over the bus than just pointers to other pieces of data. Of course - except there is no the bus. You have to move the instruction itself Not these days. The instruction will be loaded from memory once, broken (and combined) into micro-ops, and those are stored in the instruction cache. If you're getting i-cache much beyond single digit percentages, your performance will be horrible. so there's lots of opportunities for other data to get in the way of this DRR-style data transfer across the bus. Your continued use of the phrase the bus is rather quaint... that would only affect the processing of, say, a 64-bit pointer within the core... No, it affects all data, not just pointers. I'd love to see some real documentation and/or testing on this type of stuff. http://www.intel.com/products/processor/manuals/ Start with this one: http://www.intel.com/Assets/PDF/manual/253665.pdf my intuition tells me that the CPU and bus aren't magic :) Compared to just a few years ago, they are. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.
IIS7/isapi/tomcat performance
Good Afternoon: I am attempting to run a Windows x64 server with IIS7 and Tomcat 7. I have 64 bit versions of JDK (1.6.26) and Tomcat (7.0.8). The server is set up with IIS using ajp1.3 to a local cluster of Tomcat servers. In performance tests I have found the configuration runs dramatically slower than it's corresponding server in 32 bit Windows on 2000 Server and Tomcat 6. Is there a way to improve performance or is there an issue with this setup on Windows 64 IIS 7? Thanks, Bruce D. Pease Technical Team Lead - Web Applications CruiseOne(r) http://www.cruiseone.com/ Cruises Inc(tm) http://www.cruisesinc.com/ 1201 W. Cypress Creek Road, Suite 100 Fort Lauderdale, FL 33309-1955 954-958-3654 (direct) | 954-958-3665 (fax) bpe...@wth.com mailto:ssza...@wth.com
RE: IIS7/isapi/tomcat performance
From: Bruce Pease [mailto:bpe...@wth.com] Subject: IIS7/isapi/tomcat performance In performance tests I have found the configuration runs dramatically slower than it's corresponding server in 32 bit Windows on 2000 Server and Tomcat 6. Until you quantify dramatically, better describe your testing scenario (including configurations of all components), eliminate as many moving pieces as you can (e.g., try Tomcat standalone), and do some basic bottleneck analysis, there's not much anyone can help you with. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
I agree with Charles. I run a performance Testing group for a fortune 50 company and do alot of performance testing for different designs/implementation for my own startup and we can not help you without further info. Client side setup (Browser/version?) Test cases Network speed Tomcat Setup (startup command line with jdk options) Extending logging options such as request time for tomcat Make sure your logging is set to error and not debug level on your processes (IIS, Tomcat, Database?) I would use yslow with FF to get page sizes and other info. developers seem to forget that the bandwidth is limited and 1MB pages are too big. Sometimes images are small but the javascript is quite big especially when calling web services directly, For the middle tier a code profiler like visualvm helps quite a bit. The key thing is narrow it down tier by tier then focus on the tier where you see the biggest gains. If manually you see x seconds then that is the best it will be before you start tuning. Gains in code will always be larger than that by configuration tuning unless logging level is set to high especially for jdbc calls. Good luck, Tony Anecito (JavaOne 2010 I am the future of Java winner) Founder, MyUniPortal (JavaOne 2010 Duke's Award Winner) http://www.myuniportal.com - Original Message From: Caldarale, Charles R chuck.caldar...@unisys.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 11:15:40 AM Subject: RE: IIS7/isapi/tomcat performance From: Bruce Pease [mailto:bpe...@wth.com] Subject: IIS7/isapi/tomcat performance In performance tests I have found the configuration runs dramatically slower than it's corresponding server in 32 bit Windows on 2000 Server and Tomcat 6. Until you quantify dramatically, better describe your testing scenario (including configurations of all components), eliminate as many moving pieces as you can (e.g., try Tomcat standalone), and do some basic bottleneck analysis, there's not much anyone can help you with. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: IIS7/isapi/tomcat performance
Perhaps my point is being missed here. The issue is moving from 32 bit is slower in 64 bit (4-500% if you need a number). Components are the same, setup is the same, database is the same, environment is the same, tests are the same, network is the same. I'm basically looking to see if anyone is using a similar setup, and has been able to get it to perform well. -Original Message- From: Tony Anecito [mailto:adanec...@yahoo.com] Sent: Monday, February 28, 2011 1:40 PM To: Tomcat Users List Subject: Re: IIS7/isapi/tomcat performance I agree with Charles. I run a performance Testing group for a fortune 50 company and do alot of performance testing for different designs/implementation for my own startup and we can not help you without further info. Client side setup (Browser/version?) Test cases Network speed Tomcat Setup (startup command line with jdk options) Extending logging options such as request time for tomcat Make sure your logging is set to error and not debug level on your processes (IIS, Tomcat, Database?) I would use yslow with FF to get page sizes and other info. developers seem to forget that the bandwidth is limited and 1MB pages are too big. Sometimes images are small but the javascript is quite big especially when calling web services directly, For the middle tier a code profiler like visualvm helps quite a bit. The key thing is narrow it down tier by tier then focus on the tier where you see the biggest gains. If manually you see x seconds then that is the best it will be before you start tuning. Gains in code will always be larger than that by configuration tuning unless logging level is set to high especially for jdbc calls. Good luck, Tony Anecito (JavaOne 2010 I am the future of Java winner) Founder, MyUniPortal (JavaOne 2010 Duke's Award Winner) http://www.myuniportal.com - Original Message From: Caldarale, Charles R chuck.caldar...@unisys.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 11:15:40 AM Subject: RE: IIS7/isapi/tomcat performance From: Bruce Pease [mailto:bpe...@wth.com] Subject: IIS7/isapi/tomcat performance In performance tests I have found the configuration runs dramatically slower than it's corresponding server in 32 bit Windows on 2000 Server and Tomcat 6. Until you quantify dramatically, better describe your testing scenario (including configurations of all components), eliminate as many moving pieces as you can (e.g., try Tomcat standalone), and do some basic bottleneck analysis, there's not much anyone can help you with. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
JVM settings should not be the same. Regards, -Tony - Original Message From: Bruce Pease bpe...@wth.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 11:46:35 AM Subject: RE: IIS7/isapi/tomcat performance Perhaps my point is being missed here. The issue is moving from 32 bit is slower in 64 bit (4-500% if you need a number). Components are the same, setup is the same, database is the same, environment is the same, tests are the same, network is the same. I'm basically looking to see if anyone is using a similar setup, and has been able to get it to perform well. -Original Message- From: Tony Anecito [mailto:adanec...@yahoo.com] Sent: Monday, February 28, 2011 1:40 PM To: Tomcat Users List Subject: Re: IIS7/isapi/tomcat performance I agree with Charles. I run a performance Testing group for a fortune 50 company and do alot of performance testing for different designs/implementation for my own startup and we can not help you without further info. Client side setup (Browser/version?) Test cases Network speed Tomcat Setup (startup command line with jdk options) Extending logging options such as request time for tomcat Make sure your logging is set to error and not debug level on your processes (IIS, Tomcat, Database?) I would use yslow with FF to get page sizes and other info. developers seem to forget that the bandwidth is limited and 1MB pages are too big. Sometimes images are small but the javascript is quite big especially when calling web services directly, For the middle tier a code profiler like visualvm helps quite a bit. The key thing is narrow it down tier by tier then focus on the tier where you see the biggest gains. If manually you see x seconds then that is the best it will be before you start tuning. Gains in code will always be larger than that by configuration tuning unless logging level is set to high especially for jdbc calls. Good luck, Tony Anecito (JavaOne 2010 I am the future of Java winner) Founder, MyUniPortal (JavaOne 2010 Duke's Award Winner) http://www.myuniportal.com - Original Message From: Caldarale, Charles R chuck.caldar...@unisys.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 11:15:40 AM Subject: RE: IIS7/isapi/tomcat performance From: Bruce Pease [mailto:bpe...@wth.com] Subject: IIS7/isapi/tomcat performance In performance tests I have found the configuration runs dramatically slower than it's corresponding server in 32 bit Windows on 2000 Server and Tomcat 6. Until you quantify dramatically, better describe your testing scenario (including configurations of all components), eliminate as many moving pieces as you can (e.g., try Tomcat standalone), and do some basic bottleneck analysis, there's not much anyone can help you with. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
Since the memory pointers are larger you may need to increase your heap size but you can compress the address pointers. Also, if you use JNI and it is 32-bit then you will have unexpected issues same thing with any native libs your try to use. Generally it will be up to 20% slower due to the pointers. Recommend you stick to 32-bit if your app fits within the memory space for 32-bit. I have heard that 64-bit jvm for version 7 might be faster than 32-bit. Good Luck, -Tony - Original Message From: Tony Anecito adanec...@yahoo.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 12:40:43 PM Subject: Re: IIS7/isapi/tomcat performance JVM settings should not be the same. Regards, -Tony - Original Message From: Bruce Pease bpe...@wth.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 11:46:35 AM Subject: RE: IIS7/isapi/tomcat performance Perhaps my point is being missed here. The issue is moving from 32 bit is slower in 64 bit (4-500% if you need a number). Components are the same, setup is the same, database is the same, environment is the same, tests are the same, network is the same. I'm basically looking to see if anyone is using a similar setup, and has been able to get it to perform well. -Original Message- From: Tony Anecito [mailto:adanec...@yahoo.com] Sent: Monday, February 28, 2011 1:40 PM To: Tomcat Users List Subject: Re: IIS7/isapi/tomcat performance I agree with Charles. I run a performance Testing group for a fortune 50 company and do alot of performance testing for different designs/implementation for my own startup and we can not help you without further info. Client side setup (Browser/version?) Test cases Network speed Tomcat Setup (startup command line with jdk options) Extending logging options such as request time for tomcat Make sure your logging is set to error and not debug level on your processes (IIS, Tomcat, Database?) I would use yslow with FF to get page sizes and other info. developers seem to forget that the bandwidth is limited and 1MB pages are too big. Sometimes images are small but the javascript is quite big especially when calling web services directly, For the middle tier a code profiler like visualvm helps quite a bit. The key thing is narrow it down tier by tier then focus on the tier where you see the biggest gains. If manually you see x seconds then that is the best it will be before you start tuning. Gains in code will always be larger than that by configuration tuning unless logging level is set to high especially for jdbc calls. Good luck, Tony Anecito (JavaOne 2010 I am the future of Java winner) Founder, MyUniPortal (JavaOne 2010 Duke's Award Winner) http://www.myuniportal.com - Original Message From: Caldarale, Charles R chuck.caldar...@unisys.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 11:15:40 AM Subject: RE: IIS7/isapi/tomcat performance From: Bruce Pease [mailto:bpe...@wth.com] Subject: IIS7/isapi/tomcat performance In performance tests I have found the configuration runs dramatically slower than it's corresponding server in 32 bit Windows on 2000 Server and Tomcat 6. Until you quantify dramatically, better describe your testing scenario (including configurations of all components), eliminate as many moving pieces as you can (e.g., try Tomcat standalone), and do some basic bottleneck analysis, there's not much anyone can help you with. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
I forgot to mention new versions of Windows are slower than XP. So that would contribute to your issues. Windows 7 got better but not as fast as 32-bit. Also, you might want to measure from tomcat perspective so you have a new baseline. Regards, -Tony - Original Message From: Tony Anecito adanec...@yahoo.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 12:57:03 PM Subject: Re: IIS7/isapi/tomcat performance Since the memory pointers are larger you may need to increase your heap size but you can compress the address pointers. Also, if you use JNI and it is 32-bit then you will have unexpected issues same thing with any native libs your try to use. Generally it will be up to 20% slower due to the pointers. Recommend you stick to 32-bit if your app fits within the memory space for 32-bit. I have heard that 64-bit jvm for version 7 might be faster than 32-bit. Good Luck, -Tony - Original Message From: Tony Anecito adanec...@yahoo.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 12:40:43 PM Subject: Re: IIS7/isapi/tomcat performance JVM settings should not be the same. Regards, -Tony - Original Message From: Bruce Pease bpe...@wth.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 11:46:35 AM Subject: RE: IIS7/isapi/tomcat performance Perhaps my point is being missed here. The issue is moving from 32 bit is slower in 64 bit (4-500% if you need a number). Components are the same, setup is the same, database is the same, environment is the same, tests are the same, network is the same. I'm basically looking to see if anyone is using a similar setup, and has been able to get it to perform well. -Original Message- From: Tony Anecito [mailto:adanec...@yahoo.com] Sent: Monday, February 28, 2011 1:40 PM To: Tomcat Users List Subject: Re: IIS7/isapi/tomcat performance I agree with Charles. I run a performance Testing group for a fortune 50 company and do alot of performance testing for different designs/implementation for my own startup and we can not help you without further info. Client side setup (Browser/version?) Test cases Network speed Tomcat Setup (startup command line with jdk options) Extending logging options such as request time for tomcat Make sure your logging is set to error and not debug level on your processes (IIS, Tomcat, Database?) I would use yslow with FF to get page sizes and other info. developers seem to forget that the bandwidth is limited and 1MB pages are too big. Sometimes images are small but the javascript is quite big especially when calling web services directly, For the middle tier a code profiler like visualvm helps quite a bit. The key thing is narrow it down tier by tier then focus on the tier where you see the biggest gains. If manually you see x seconds then that is the best it will be before you start tuning. Gains in code will always be larger than that by configuration tuning unless logging level is set to high especially for jdbc calls. Good luck, Tony Anecito (JavaOne 2010 I am the future of Java winner) Founder, MyUniPortal (JavaOne 2010 Duke's Award Winner) http://www.myuniportal.com - Original Message From: Caldarale, Charles R chuck.caldar...@unisys.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 11:15:40 AM Subject: RE: IIS7/isapi/tomcat performance From: Bruce Pease [mailto:bpe...@wth.com] Subject: IIS7/isapi/tomcat performance In performance tests I have found the configuration runs dramatically slower than it's corresponding server in 32 bit Windows on 2000 Server and Tomcat 6. Until you quantify dramatically, better describe your testing scenario (including configurations of all components), eliminate as many moving pieces as you can (e.g., try Tomcat standalone), and do some basic bottleneck analysis, there's not much anyone can help you with. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e
RE: IIS7/isapi/tomcat performance
Thanks for the insight. It looks like we are going to go with server 2003 32 bit. I found some references that suggest ajp 1.3 has a performance issue in 64 bit server 2008. -Original Message- From: Tony Anecito [mailto:adanec...@yahoo.com] Sent: Monday, February 28, 2011 3:01 PM To: Tomcat Users List Subject: Re: IIS7/isapi/tomcat performance I forgot to mention new versions of Windows are slower than XP. So that would contribute to your issues. Windows 7 got better but not as fast as 32-bit. Also, you might want to measure from tomcat perspective so you have a new baseline. Regards, -Tony - Original Message From: Tony Anecito adanec...@yahoo.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 12:57:03 PM Subject: Re: IIS7/isapi/tomcat performance Since the memory pointers are larger you may need to increase your heap size but you can compress the address pointers. Also, if you use JNI and it is 32-bit then you will have unexpected issues same thing with any native libs your try to use. Generally it will be up to 20% slower due to the pointers. Recommend you stick to 32-bit if your app fits within the memory space for 32-bit. I have heard that 64-bit jvm for version 7 might be faster than 32-bit. Good Luck, -Tony - Original Message From: Tony Anecito adanec...@yahoo.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 12:40:43 PM Subject: Re: IIS7/isapi/tomcat performance JVM settings should not be the same. Regards, -Tony - Original Message From: Bruce Pease bpe...@wth.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 11:46:35 AM Subject: RE: IIS7/isapi/tomcat performance Perhaps my point is being missed here. The issue is moving from 32 bit is slower in 64 bit (4-500% if you need a number). Components are the same, setup is the same, database is the same, environment is the same, tests are the same, network is the same. I'm basically looking to see if anyone is using a similar setup, and has been able to get it to perform well. -Original Message- From: Tony Anecito [mailto:adanec...@yahoo.com] Sent: Monday, February 28, 2011 1:40 PM To: Tomcat Users List Subject: Re: IIS7/isapi/tomcat performance I agree with Charles. I run a performance Testing group for a fortune 50 company and do alot of performance testing for different designs/implementation for my own startup and we can not help you without further info. Client side setup (Browser/version?) Test cases Network speed Tomcat Setup (startup command line with jdk options) Extending logging options such as request time for tomcat Make sure your logging is set to error and not debug level on your processes (IIS, Tomcat, Database?) I would use yslow with FF to get page sizes and other info. developers seem to forget that the bandwidth is limited and 1MB pages are too big. Sometimes images are small but the javascript is quite big especially when calling web services directly, For the middle tier a code profiler like visualvm helps quite a bit. The key thing is narrow it down tier by tier then focus on the tier where you see the biggest gains. If manually you see x seconds then that is the best it will be before you start tuning. Gains in code will always be larger than that by configuration tuning unless logging level is set to high especially for jdbc calls. Good luck, Tony Anecito (JavaOne 2010 I am the future of Java winner) Founder, MyUniPortal (JavaOne 2010 Duke's Award Winner) http://www.myuniportal.com - Original Message From: Caldarale, Charles R chuck.caldar...@unisys.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 11:15:40 AM Subject: RE: IIS7/isapi/tomcat performance From: Bruce Pease [mailto:bpe...@wth.com] Subject: IIS7/isapi/tomcat performance In performance tests I have found the configuration runs dramatically slower than it's corresponding server in 32 bit Windows on 2000 Server and Tomcat 6. Until you quantify dramatically, better describe your testing scenario (including configurations of all components), eliminate as many moving pieces as you can (e.g., try Tomcat standalone), and do some basic bottleneck analysis, there's not much anyone can help you with. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
?Which performance issue 2011/2/28 Bruce Pease bpe...@wth.com Thanks for the insight. It looks like we are going to go with server 2003 32 bit. I found some references that suggest ajp 1.3 has a performance issue in 64 bit server 2008. -Original Message- From: Tony Anecito [mailto:adanec...@yahoo.com] Sent: Monday, February 28, 2011 3:01 PM To: Tomcat Users List Subject: Re: IIS7/isapi/tomcat performance I forgot to mention new versions of Windows are slower than XP. So that would contribute to your issues. Windows 7 got better but not as fast as 32-bit. Also, you might want to measure from tomcat perspective so you have a new baseline. Regards, -Tony - Original Message From: Tony Anecito adanec...@yahoo.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 12:57:03 PM Subject: Re: IIS7/isapi/tomcat performance Since the memory pointers are larger you may need to increase your heap size but you can compress the address pointers. Also, if you use JNI and it is 32-bit then you will have unexpected issues same thing with any native libs your try to use. Generally it will be up to 20% slower due to the pointers. Recommend you stick to 32-bit if your app fits within the memory space for 32-bit. I have heard that 64-bit jvm for version 7 might be faster than 32-bit. Good Luck, -Tony - Original Message From: Tony Anecito adanec...@yahoo.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 12:40:43 PM Subject: Re: IIS7/isapi/tomcat performance JVM settings should not be the same. Regards, -Tony - Original Message From: Bruce Pease bpe...@wth.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 11:46:35 AM Subject: RE: IIS7/isapi/tomcat performance Perhaps my point is being missed here. The issue is moving from 32 bit is slower in 64 bit (4-500% if you need a number). Components are the same, setup is the same, database is the same, environment is the same, tests are the same, network is the same. I'm basically looking to see if anyone is using a similar setup, and has been able to get it to perform well. -Original Message- From: Tony Anecito [mailto:adanec...@yahoo.com] Sent: Monday, February 28, 2011 1:40 PM To: Tomcat Users List Subject: Re: IIS7/isapi/tomcat performance I agree with Charles. I run a performance Testing group for a fortune 50 company and do alot of performance testing for different designs/implementation for my own startup and we can not help you without further info. Client side setup (Browser/version?) Test cases Network speed Tomcat Setup (startup command line with jdk options) Extending logging options such as request time for tomcat Make sure your logging is set to error and not debug level on your processes (IIS, Tomcat, Database?) I would use yslow with FF to get page sizes and other info. developers seem to forget that the bandwidth is limited and 1MB pages are too big. Sometimes images are small but the javascript is quite big especially when calling web services directly, For the middle tier a code profiler like visualvm helps quite a bit. The key thing is narrow it down tier by tier then focus on the tier where you see the biggest gains. If manually you see x seconds then that is the best it will be before you start tuning. Gains in code will always be larger than that by configuration tuning unless logging level is set to high especially for jdbc calls. Good luck, Tony Anecito (JavaOne 2010 I am the future of Java winner) Founder, MyUniPortal (JavaOne 2010 Duke's Award Winner) http://www.myuniportal.com - Original Message From: Caldarale, Charles R chuck.caldar...@unisys.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 11:15:40 AM Subject: RE: IIS7/isapi/tomcat performance From: Bruce Pease [mailto:bpe...@wth.com] Subject: IIS7/isapi/tomcat performance In performance tests I have found the configuration runs dramatically slower than it's corresponding server in 32 bit Windows on 2000 Server and Tomcat 6. Until you quantify dramatically, better describe your testing scenario (including configurations of all components), eliminate as many moving pieces as you can (e.g., try Tomcat standalone), and do some basic bottleneck analysis, there's not much anyone can help you with. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: IIS7/isapi/tomcat performance
Sure no problem. I also use Native APR with Tomcat 7 which eliminates AJP and supposidly is faster than Apache Web Server but then you use IIS probably for good reason so it would not help you to use APR. Good luck, -Tony - Original Message From: Bruce Pease bpe...@wth.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 1:08:19 PM Subject: RE: IIS7/isapi/tomcat performance Thanks for the insight. It looks like we are going to go with server 2003 32 bit. I found some references that suggest ajp 1.3 has a performance issue in 64 bit server 2008. -Original Message- From: Tony Anecito [mailto:adanec...@yahoo.com] Sent: Monday, February 28, 2011 3:01 PM To: Tomcat Users List Subject: Re: IIS7/isapi/tomcat performance I forgot to mention new versions of Windows are slower than XP. So that would contribute to your issues. Windows 7 got better but not as fast as 32-bit. Also, you might want to measure from tomcat perspective so you have a new baseline. Regards, -Tony - Original Message From: Tony Anecito adanec...@yahoo.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 12:57:03 PM Subject: Re: IIS7/isapi/tomcat performance Since the memory pointers are larger you may need to increase your heap size but you can compress the address pointers. Also, if you use JNI and it is 32-bit then you will have unexpected issues same thing with any native libs your try to use. Generally it will be up to 20% slower due to the pointers. Recommend you stick to 32-bit if your app fits within the memory space for 32-bit. I have heard that 64-bit jvm for version 7 might be faster than 32-bit. Good Luck, -Tony - Original Message From: Tony Anecito adanec...@yahoo.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 12:40:43 PM Subject: Re: IIS7/isapi/tomcat performance JVM settings should not be the same. Regards, -Tony - Original Message From: Bruce Pease bpe...@wth.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 11:46:35 AM Subject: RE: IIS7/isapi/tomcat performance Perhaps my point is being missed here. The issue is moving from 32 bit is slower in 64 bit (4-500% if you need a number). Components are the same, setup is the same, database is the same, environment is the same, tests are the same, network is the same. I'm basically looking to see if anyone is using a similar setup, and has been able to get it to perform well. -Original Message- From: Tony Anecito [mailto:adanec...@yahoo.com] Sent: Monday, February 28, 2011 1:40 PM To: Tomcat Users List Subject: Re: IIS7/isapi/tomcat performance I agree with Charles. I run a performance Testing group for a fortune 50 company and do alot of performance testing for different designs/implementation for my own startup and we can not help you without further info. Client side setup (Browser/version?) Test cases Network speed Tomcat Setup (startup command line with jdk options) Extending logging options such as request time for tomcat Make sure your logging is set to error and not debug level on your processes (IIS, Tomcat, Database?) I would use yslow with FF to get page sizes and other info. developers seem to forget that the bandwidth is limited and 1MB pages are too big. Sometimes images are small but the javascript is quite big especially when calling web services directly, For the middle tier a code profiler like visualvm helps quite a bit. The key thing is narrow it down tier by tier then focus on the tier where you see the biggest gains. If manually you see x seconds then that is the best it will be before you start tuning. Gains in code will always be larger than that by configuration tuning unless logging level is set to high especially for jdbc calls. Good luck, Tony Anecito (JavaOne 2010 I am the future of Java winner) Founder, MyUniPortal (JavaOne 2010 Duke's Award Winner) http://www.myuniportal.com - Original Message From: Caldarale, Charles R chuck.caldar...@unisys.com To: Tomcat Users List users@tomcat.apache.org Sent: Mon, February 28, 2011 11:15:40 AM Subject: RE: IIS7/isapi/tomcat performance From: Bruce Pease [mailto:bpe...@wth.com] Subject: IIS7/isapi/tomcat performance In performance tests I have found the configuration runs dramatically slower than it's corresponding server in 32 bit Windows on 2000 Server and Tomcat 6. Until you quantify dramatically, better describe your testing scenario (including configurations of all components), eliminate as many moving pieces as you can (e.g., try Tomcat standalone), and do some basic bottleneck analysis, there's not much anyone can help you with. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its
RE: Tomcat performance under low load
Hi Chris Sorry about the delay in replying. I've been a bit busy with performance issues :) The issue has come down to the vendor code persisting the cache as serialized objects to the file system and taking time to load it back, based on the decompiled code. The cache seems to be sufficiently tuned but for some reason, the file access is slow. We haven't yet got the exact reason yet, so have to wait and see. Vijay From: vijay_me...@hotmail.com To: users@tomcat.apache.org Subject: RE: Tomcat performance under low load Date: Sun, 17 Oct 2010 08:42:30 +1000 Thanks for the replies. Based on that, we did change the connectors to use executor threads. However, based on profiling the app, it turned out to be a code issue. Thanks again. From: vijay_me...@hotmail.com To: users@tomcat.apache.org Subject: Tomcat performance under low load Date: Thu, 14 Oct 2010 09:35:14 +1000 Hi all Thanks for reading this post. We are currently having 2 requirements that are opposites. The first requirement is performance under high loads and the other one is equivalent performance for 1 request. Our prod env currently uses Apache with mod_jk and ajp 1.3 to Tomcat 6.0.26 and jdk 1.6.0_18 on solaris. We're scaling to satisfactory loads of 250 concurrent requests serving pages in 0.5 seconds. The other test scenario is where the tomcat instance is kept idle and a single request is sent in every 90 or so seconds. In this case, the response takes about 8 seconds out of which about 6 seconds cannot be tracked. As the result, what we're finding is that under high loads, it performs well but under very low loads, it does not. This definitely happens in the tomcat layer as we've used the FastCommonAccessLogValve logger which gives the time for the request in Tomcat. The connector properties are protocol=AJP/1.3 maxThreads=150 minSpareThreads=25 maxSpareThreads=75 acceptCount=100 connectionTimeout=2 disableUploadTimeout=true useBodyEncodingForURI=true. I was wondering whether anyone would be able to help with this issue. Thanks in advance VM
Re: Tomcat performance under low load
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Vijay, On 10/16/2010 6:42 PM, Vijay Menon wrote: Thanks for the replies. Based on that, we did change the connectors to use executor threads. However, based on profiling the app, it turned out to be a code issue. Glad you solved your problem. Can you tell us what your app was doing that caused it to perform poorly under only low load? That seems like an interesting situation. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAky8OeIACgkQ9CaO5/Lv0PBcOQCgpAfQyYx5KKbu9OwhfU5eKgC0 tAYAoLQB9VFGBr3GeOCJmTbbHzVsKqPb =2L8d -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Tomcat performance under low load
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Vijay, On 10/13/2010 7:35 PM, Vijay Menon wrote: We're scaling to satisfactory loads of 250 concurrent requests serving pages in 0.5 seconds. Excellent (assuming that 0.5 seconds is acceptable to your team). The other test scenario is where the tomcat instance is kept idle and a single request is sent in every 90 or so seconds. In this case, the response takes about 8 seconds out of which about 6 seconds cannot be tracked. As the result, what we're finding is that under high loads, it performs well but under very low loads, it does not. :( This definitely happens in the tomcat layer as we've used the FastCommonAccessLogValve logger which gives the time for the request in Tomcat. I'd like to echo Chuck's suggestion: take Apache httpd out of the equation and run your load test against Tomcat directly. The connector properties are protocol=AJP/1.3 maxThreads=150 minSpareThreads=25 maxSpareThreads=75 acceptCount=100 connectionTimeout=2 disableUploadTimeout=true useBodyEncodingForURI=true. If you want your server to be as efficient as possible, you should use an Executor which will allow the request processing threads to be destroyed during times of low activity. It's not really that big of a deal, but it's worth mentioning. A couple more questions: 1. How large are the requests you are processing? Is the usage profile the same for high load versus low load situations -- other than the actual frequency of requests, of course. 2. Are you using a database of any kind? If so, can you post the configuration for that (minus any sensitive information, of course)? 90 seconds would be a very low timeout for a database connection, but it's possible that you have a bottleneck in your application that somehow only appears when you're nearly idle. 3. Is some other process running on the server during these low-load times? Maybe some cron job or heavy reporting operation or something? - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAky3HvUACgkQ9CaO5/Lv0PDK4gCeOJaCAXqQfB4C9EA0kYdrjRpt 0pAAn2EURuQAExb7lfBahaSdG5u2cshc =Sw5F -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Tomcat performance under low load
Hi all Thanks for reading this post. We are currently having 2 requirements that are opposites. The first requirement is performance under high loads and the other one is equivalent performance for 1 request. Our prod env currently uses Apache with mod_jk and ajp 1.3 to Tomcat 6.0.26 and jdk 1.6.0_18 on solaris. We're scaling to satisfactory loads of 250 concurrent requests serving pages in 0.5 seconds. The other test scenario is where the tomcat instance is kept idle and a single request is sent in every 90 or so seconds. In this case, the response takes about 8 seconds out of which about 6 seconds cannot be tracked. As the result, what we're finding is that under high loads, it performs well but under very low loads, it does not. This definitely happens in the tomcat layer as we've used the FastCommonAccessLogValve logger which gives the time for the request in Tomcat. The connector properties are protocol=AJP/1.3 maxThreads=150 minSpareThreads=25 maxSpareThreads=75 acceptCount=100 connectionTimeout=2 disableUploadTimeout=true useBodyEncodingForURI=true. I was wondering whether anyone would be able to help with this issue. Thanks in advance VM
RE: Tomcat performance under low load
From: Vijay Menon [mailto:vijay_me...@hotmail.com] Subject: Tomcat performance under low load The other test scenario is where the tomcat instance is kept idle and a single request is sent in every 90 or so seconds. In this case, the response takes about 8 seconds out of which about 6 seconds cannot be tracked. What do you measure if you send such requests directly to Tomcat, not via httpd? - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Tomcat performance tuning
Support, I Installed tomcat 5.5.20 version in my Windows 2008 server and the java version is Java 1.6.0.b105.We are using 2 Mbps Bandwidth Leased line.In tomcat we hosted around 5(five) application.When the no of seesion increases more than 1600 session the total application is slow and not able to open the application sometime. 1) How can I tune this application in server side for better performance in tomcat side as well as java? 2) I noticed that the current thread busy count is less but the number session is more.What might be the problem? 3)More over for a IP more sessions are opened(noticed via Lambda probe).Is there any problem in that? 4)What is mean by serilizable? For my application it is showing as No 5)What is mean by a)Max Threads b)Min and Max spare threads c)current thread count and current thread busy? Please help me Regards Rujinraj. System Administrator
Re: Tomcat performance tuning
Rujin, I Installed tomcat 5.5.20 version in my Windows 2008 server and the java version is Java 1.6.0.b105.We are using 2 Mbps Bandwidth Leased line.In tomcat we hosted around 5(five) application.When the no of seesion increases more than 1600 session the total application is slow and not able to open the application sometime. In order to solve your problem, you must first determine what is the bottleneck of your system. Is it a) network, b) RAM, c) CPU, or d) hard disk? Use appropriate tools to figure that out first. I must notice that 1600 sessions is quite a large number for 2mbps link. Do you invalidate sessions and do you have a session timeout setting? Some frameworks, like JSF implementations, might introduce extensive session creation if not used properly. Please explain when is your session created and when is destroyed. 1) How can I tune this application in server side for better performance in tomcat side as well as java? That depends on the reason for slow down. Most of the time it is not JVM or Tomcat's fault, but faulty webapp. For start, I would recommend to analyze JVM memory consumption, memory dump, session content, and to tweak with -Xmx and -Xms parameters, if you didn't already do that. Also watch for garbage collection, how often it happens and when. 2) I noticed that the current thread busy count is less but the number session is more.What might be the problem? Those two are not directly related. Active busy thread count is related to the number of *simultaneous* requests, while active sessions might not issue requests at all (just waiting to be invalidated upon timeout). 3)More over for a IP more sessions are opened(noticed via Lambda probe).Is there any problem in that? Sorry, I don't understand this question. 4)What is mean by serilizable? For my application it is showing as No That means that Tomcat will be able to persist your sessions to hard disk in case of shutdown, and to reload them upon start up. Which means that if your sessions are serializable, you will be able to keep them across Tomcat restarts, while if they are not, they will be lost. 5)What is mean by a)Max Threads b)Min and Max spare threads c)current thread count and current thread busy? a. Maximum number of threads Tomcat will create to answer your clients request. That should be over of predicted maximum number of simultaneous requests (not sessions!). b. Minimum and maximum of threads that are currently not answering any requests. Minimum will ensure that there is available thread when new request comes, and maximum will ensure that JVM does not keep too many threads doing nothing and eating up resources. c1. Current number of active threads processing requests, or waiting to process requests. c2. Current number of active threads processing requests. They relate like this: thread_busy = thread_busy + spare_min = thread_active = thread_busy + spare_max = max_threads -Ognjen - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Required Help in tomcat performance optimization.
Hi, I want to optimize the performance of tomcat. Can anyone please point to some docs/wiki/direct answer. Regards Harpreet - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: Required Help in tomcat performance optimization.
From: Harpreet singh Wadhwa [mailto:harpreetsingh.wad...@gmail.com] Subject: Required Help in tomcat performance optimization. I want to optimize the performance of tomcat. You probably want to optimize the performance of your webapp first. Can anyone please point to some docs/wiki/direct answer. Let's see what's in the FAQ: http://wiki.apache.org/tomcat/FAQ/Performance_and_Monitoring That wasn't too hard to find. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
tomcat performance differences between windows and linux
I have created a simple web service which simulates 250 msec worth of work when called. When I test this service from jmeter I make a SOAP request with 50 threads. If I run this test against a Windows hosted tomcat all threads pretty much start at the same time and end within 10-20 msec of each other. When I run the test against a linux hosted tomcat the first 30 or so threads are fine, the remaining pause for 1000-3000 msec and then finish. I have the connector settings set to: Connector protocol=HTTP/1.1 port=8080 address=${jboss.bind.address} maxThreads=250 minSpareThreads=50 maxSpareThreads=100 enableLookups=false redirectPort=8443 acceptCount=500 debug=0 connectionTimeout=2 disableUploadTimeout=true / I'm using the embedded tomcat in RH SOA-P 5.0.0 GA. I believe SOA-P hosts a version 5.5, I can verify. I did have the opportunity to try it on a vanilla jboss server and it behaved the same way. Windows - Windows 7 64bit Linux - SMP x86_64 x86_64 x86_64 GNU/Linux - Red Hat Enterprise Linux Server release 5.5 (Tikanga) * Ulimit nofile is default (1024), however doesn't climb beyond 600 during testing. * The linux server isn't doing much of anything when I'm testing. Regards, Dave
Re: tomcat performance differences between windows and linux
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Dave, On 5/28/2010 8:25 AM, Dave Siracusa wrote: If I run this test against a Windows hosted tomcat all threads pretty much start at the same time and end within 10-20 msec of each other. When I run the test against a linux hosted tomcat the first 30 or so threads are fine, the remaining pause for 1000-3000 msec and then finish. I have the connector settings set to: Connector protocol=HTTP/1.1 port=8080 address=${jboss.bind.address} maxThreads=250 minSpareThreads=50 maxSpareThreads=100 enableLookups=false redirectPort=8443 acceptCount=500 debug=0 connectionTimeout=2 disableUploadTimeout=true / I'm using the embedded tomcat in RH SOA-P 5.0.0 GA. I believe SOA-P hosts a version 5.5, I can verify. When you do, please post the complete version number 5.5.what? I did have the opportunity to try it on a vanilla jboss server and it behaved the same way. Windows - Windows 7 64bit Linux - SMP x86_64 x86_64 x86_64 GNU/Linux - Red Hat Enterprise Linux Server release 5.5 (Tikanga) * Ulimit nofile is default (1024), however doesn't climb beyond 600 during testing. * The linux server isn't doing much of anything when I'm testing. What about network configuration? Are both servers the same distance from you on the network? - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkv/zegACgkQ9CaO5/Lv0PDPBQCgqur1TGKEZF02hTv9z9pB4QrM l9oAn3CnbhQAIFWecypjfDoy77GYwNmQ =OosH -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: tomcat performance differences between windows and linux
Yes both are on the same network and same distance. If I limit it to 30 threads their behavior is the same. As far as the version, it's an embedded 5.5 runing in jboss app server. Regards, Dave Date: Fri, 28 May 2010 10:06:32 -0400 From: ch...@christopherschultz.net To: users@tomcat.apache.org Subject: Re: tomcat performance differences between windows and linux -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Dave, On 5/28/2010 8:25 AM, Dave Siracusa wrote: If I run this test against a Windows hosted tomcat all threads pretty much start at the same time and end within 10-20 msec of each other. When I run the test against a linux hosted tomcat the first 30 or so threads are fine, the remaining pause for 1000-3000 msec and then finish. I have the connector settings set to: Connector protocol=HTTP/1.1 port=8080 address=${jboss.bind.address} maxThreads=250 minSpareThreads=50 maxSpareThreads=100 enableLookups=false redirectPort=8443 acceptCount=500 debug=0 connectionTimeout=2 disableUploadTimeout=true / I'm using the embedded tomcat in RH SOA-P 5.0.0 GA. I believe SOA-P hosts a version 5.5, I can verify. When you do, please post the complete version number 5.5.what? I did have the opportunity to try it on a vanilla jboss server and it behaved the same way. Windows - Windows 7 64bit Linux - SMP x86_64 x86_64 x86_64 GNU/Linux - Red Hat Enterprise Linux Server release 5.5 (Tikanga) * Ulimit nofile is default (1024), however doesn't climb beyond 600 during testing. * The linux server isn't doing much of anything when I'm testing. What about network configuration? Are both servers the same distance from you on the network? - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkv/zegACgkQ9CaO5/Lv0PDPBQCgqur1TGKEZF02hTv9z9pB4QrM l9oAn3CnbhQAIFWecypjfDoy77GYwNmQ =OosH -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: tomcat performance differences between windows and linux
On 5/28/10 10:06 AM, Christopher Schultz wrote: What about network configuration? Are both servers the same distance from you on the network? That's a reasonable question. The only thing I can add - and I wish I knew more about this than I do - is that Linux is configurable to a fault when it comes to process/thread management and it may be that RHEL 5.5 just isn't set up to be very good at this with the default kernel, kernel config, and /sys parameters. Perhaps someone else has gone the rest of the way down the same road and written up what they did. You may have other things in the mix on RHEL that are superfluous, like LVM2 or SELinux. It might be a more fair comparison if you don't use and/or disable that stuff. - Jeff - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: tomcat performance differences between windows and linux
On 5/28/10 10:27 AM, Dave Siracusa wrote: Yes both are on the same network and same distance. If I limit it to 30 threads their behavior is the same. By this do you mean that the timing of both systems more closely match each other if you produce just 30 threads on each? As far as the version, it's an embedded 5.5 runing in jboss app server. I think there still ought to be a third number there...it may be important. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: tomcat performance differences between windows and linux
I think you're spot on. I suspect the default configuration may be causing problems. The box is locked down, I will need to go over it with the sysadmin. I found: http://www.mastertheboss.com/en/jboss-application-server/113-jboss-performance-tuning-1.html Regards, Dave Date: Fri, 28 May 2010 10:35:07 -0400 From: jhubbsl...@att.net To: users@tomcat.apache.org Subject: Re: tomcat performance differences between windows and linux On 5/28/10 10:06 AM, Christopher Schultz wrote: What about network configuration? Are both servers the same distance from you on the network? That's a reasonable question. The only thing I can add - and I wish I knew more about this than I do - is that Linux is configurable to a fault when it comes to process/thread management and it may be that RHEL 5.5 just isn't set up to be very good at this with the default kernel, kernel config, and /sys parameters. Perhaps someone else has gone the rest of the way down the same road and written up what they did. You may have other things in the mix on RHEL that are superfluous, like LVM2 or SELinux. It might be a more fair comparison if you don't use and/or disable that stuff. - Jeff - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: httpd vs. Tomcat performance
Hassan Schroeder wrote: Just to get this into the archives for the next time it comes up http://tomcatexpert.com/blog/2010/03/24/myth-or-truth-one-should-always-use-apache-httpd-front-apache-tomcat-improve-perform because I don't know if the author (a certain mthomas) will mention it here. :-) Might this not also be worth preserving in the Tomcat FAQ/wiki ? - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: httpd vs. Tomcat performance
2010/3/27 André Warnier a...@ice-sa.com: http://tomcatexpert.com/blog/2010/03/24/myth-or-truth-one-should-always-use-apache-httpd-front-apache-tomcat-improve-perform Might this not also be worth preserving in the Tomcat FAQ/wiki ? There is http://wiki.apache.org/tomcat/FAQ/Performance_and_Monitoring and it can be updated. Best regards, Konstantin Kolinko - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: httpd vs. Tomcat performance
Thanks for the link. au http://www.xprad.org/ Hassan Schroeder-2 wrote: Just to get this into the archives for the next time it comes up http://tomcatexpert.com/blog/2010/03/24/myth-or-truth-one-should-always-use-apache-httpd-front-apache-tomcat-improve-perform because I don't know if the author (a certain mthomas) will mention it here. :-) (via @springsource on Twitter) -- Hassan Schroeder hassan.schroe...@gmail.com twitter: @hassan - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org -- View this message in context: http://old.nabble.com/httpd-vs.-Tomcat-performance-tp28023360p28056376.html Sent from the Tomcat - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: httpd vs. Tomcat performance
Very entertaining reading! Thanks Chris and Mark for re-benchmarking, explaining, and giving your opinions on the results. I'm not entirely sure how I missed Chris' benchmark results email, almost exactly one year ago now. Chris: there are no units on your results numbers, and I'm not seeing any procedure you used, nor any configurations you used, so I'm not sure how to interpret the numbers. It would be great to get more information about how the benchmark was conducted, which HTTP client was used, and what server hardware was used. I tried to write my benchmark such that it is fully documented and repeatable all the way down to the configuration used on both the client and the server, etc. I also wanted to be completely clear and up front about the specific scenarios I was benchmarking -- there are many more that I wasn't -- so I wrote the explanations into the text as well. The results are, of course, only about the kinds of requests we're benchmarking, and also about the configuration(s) used. I did try to think up and benchmark the most likely use cases for serving typical webapp content, but anyone can say their webapp isn't like that. :) Plus, I tried to write my benchmark to both inspire others to conduct and publish more benchmarks, and also to show a detailed example of one that others could modify and re-use. I was hoping to see more published benchmarks by now, but each one I find is really entertaining. I'm happy to see that Chris' independent benchmark numbers help to show that it is indeed a myth that Tomcat needs HTTPD in front of it in order to get good performance serving static files. And, it's great to see benchmark results for file sizes that I wasn't able to benchmark. Mark: I like your text about some of the other reasons people want to use HTTPD -- it is spot on, and in fact there are so many modules out there for it, there are countless logical reasons to use it. Thanks for the additional analysis. It helps. -- Jason On Wed, Mar 24, 2010 at 5:50 PM, Mark Thomas ma...@apache.org wrote: On 25/03/2010 00:26, Hassan Schroeder wrote: Just to get this into the archives for the next time it comes up http://tomcatexpert.com/blog/2010/03/24/myth-or-truth-one-should-always-use-apache-httpd-front-apache-tomcat-improve-perform because I don't know if the author (a certain mthomas) will mention it here. :-) (via @springsource on Twitter) Chris deserves a lot of the credit. Without his figures, it is just opinion. I'll have to see if I can get the graph to display as well. It is nice to have the hard figures but the graph gives you a quicker handle on the data. Mark
Re: httpd vs. Tomcat performance
Hi , We have a online shop developed as a suite of JSR168 portlets. On some portlets we list products and images (so there are about 25 images per page + other images). One image has around 250k. Performance was greatly improved after we put apache httpd in front (images served by apache gzipped response for js, html, css). We did not note numbers, but the improvement could be seen with naked eye. Now, reading the article, I think we should have tried APR also :) But hei, there are other reasons too for using httpd, such as handful apache modules (e.g. mod rewrite or gzip compression) Note: tomcat 6.0.18, NOT configured with APR running on debian linux sun jdk6 Regards, Marian Simpetru On Thu, 2010-03-25 at 02:39 +0100, Rémy Maucherat wrote: On Thu, Mar 25, 2010 at 1:50 AM, Mark Thomas ma...@apache.org wrote: Chris deserves a lot of the credit. Without his figures, it is just opinion. That's the second benchmark that I see today that has odd numbers. Rémy - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: httpd vs. Tomcat performance
On 25/03/2010 01:39, Rémy Maucherat wrote: On Thu, Mar 25, 2010 at 1:50 AM, Mark Thomas ma...@apache.org wrote: Chris deserves a lot of the credit. Without his figures, it is just opinion. That's the second benchmark that I see today that has odd numbers. What did you think was odd? Mark - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: httpd vs. Tomcat performance
On 25/03/2010 07:01, Jason Brittain wrote: Very entertaining reading! Thanks Chris and Mark for re-benchmarking, explaining, and giving your opinions on the results. I'm not entirely sure how I missed Chris' benchmark results email, almost exactly one year ago now. Chris: there are no units on your results numbers, and I'm not seeing any procedure you used, nor any configurations you used, so I'm not sure how to interpret the numbers. It would be great to get more information about how the benchmark was conducted, which HTTP client was used, and what server hardware was used. Chris's original thread had most, if not all, of that info. I did have a reference to that in the blog post but it looks like it got garbled somewhere in the publishing process. I'll get that fixed. In the meantime, MarkMail should be able to find it. I tried to write my benchmark such that it is fully documented and repeatable all the way down to the configuration used on both the client and the server, etc. I also wanted to be completely clear and up front about the specific scenarios I was benchmarking -- there are many more that I wasn't -- so I wrote the explanations into the text as well. The results are, of course, only about the kinds of requests we're benchmarking, and also about the configuration(s) used. I did try to think up and benchmark the most likely use cases for serving typical webapp content, but anyone can say their webapp isn't like that. :) Indeed. Benchmarks are useful guides to general trends but nothing is going beat benchmarking your own web application with realistic usage patterns. Plus, I tried to write my benchmark to both inspire others to conduct and publish more benchmarks, and also to show a detailed example of one that others could modify and re-use. I was hoping to see more published benchmarks by now, but each one I find is really entertaining. I think the time it takes to do a really good benchmark is a significant barrier. I wanted to do a new benchmark for the blog post but just didn't have the time. It is on the todo list but things like Tomcat 7 and bug fixes keep getting in the way :) Mark - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: httpd vs. Tomcat performance
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Mark, On 3/24/2010 8:50 PM, Mark Thomas wrote: On 25/03/2010 00:26, Hassan Schroeder wrote: Just to get this into the archives for the next time it comes up http://tomcatexpert.com/blog/2010/03/24/myth-or-truth-one-should-always-use-apache-httpd-front-apache-tomcat-improve-perform because I don't know if the author (a certain mthomas) will mention it here. :-) (via @springsource on Twitter) Chris deserves a lot of the credit. Without his figures, it is just opinion. Hey, I could have been making all that stuff up. BTW: the link on that page to performance testing doesn't seem clickable to me (ff 3.6.2). I'll have to see if I can get the graph to display as well. It is nice to have the hard figures but the graph gives you a quicker handle on the data. I'd be happy to give you my raw data plus the graphs I already did. OOo format okay? - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkuroZQACgkQ9CaO5/Lv0PBulACgwHCDOu1ZeXP1Sufks7zQMWU3 dR8AnjKKnNR/FmYzyP8l3FKsazqAHiyo =WbBv -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org